Sign in Join
Wiki copytemporary

*/fi: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: */fi

OldNewLine
1+[[ASCII/fi|ASCII]]:ssa ja [[UTF-8]]:ssa desimaalisen merkkikoodin `42` (tai [[Hexadecimal/fi|heksadesimaalisena]]`2A`) määritellään olevan `*`
2+
3+*
4+
5+## Standardi Pascal
6+
7+Symbolia `*`, joka lausutaan “tähdeksi tai kertomerkiksi”, käytetään [[Pascal/fi|Pascal]]:ssa
8+
9+- numeroiden kertolaskuna tai
10+- [[Set|Joukkojen]] leikkauksen merkkinä.
11+
12+``` pascal
13+program asteriskDemo(input, output, stderr);
14+
15+type
16+ day = (monday, tuesday, wednesday,
17+ thursday, friday, saturday, sunday);
18+
19+var
20+ i: longint;
21+ n: real;
22+ m: set of day;
23+
24+begin
25+ // kertolasku operaattori
26+ i := 6 * 7; // i saa arvokseen 42
27+ n := 6.0 * 7.0; // n saa arvokseen 42.0
28+
29+ // leikkaus operaattori
30+ m := [saturday, sunday] * [sunday, monday];
31+ // m on nyt {sunday}
32+end.
33+```
34+
35+## Potenssiinkorotus
36+
37+Lisäksi [[FPC]]:ssä on kaksi peräkkäistä tähtimerkkiä `**` sisältävä potenssiin korotus operaattori. Perusmäärittelyissä sitä ei kuitenkaan ole määritelty millekään tyypille. Sen sijaan sinulla on mahdollisuus tehdä se itse.
38+
39+``` pascal
40+program exponentiation(input, output, stderr);
41+
42+// laitetaan operaattorin ylikuormitus saataville
43+{$mode objfpc}
44+
45+operator ** (const base: integer; const exponent: integer): integer;
46+begin
47+ result := trunc(exp(ln(base) * exponent));
48+end;
49+
50+begin
51+ writeLn(2 ** 10); // tulostaa 1024
52+end.
53+```
54+
55+Saat helposti saataville ylikuormitukset [`math`](https://www.freepascal.org/docs-html/rtl/math/index.html) ja [`matrix` unit](https://www.freepascal.org/docs-html/rtl/math/index.html) ne [[Uses|otetaan käyttöön]].
56+
57+## Muut esiintymiset
58+
59+Pascalin alkuvuosina kaikki tietokoneet eivät välttämättä tunteneet [[Comments/fi|kommenttien]] avaavaa ja sulkevaa alltosulkua `{ }`. Jotta tällaisiin järjestelmiin olisi mahdollista saada lohko kommentteja vaihtoehtoisesta syntaksista, myös kahden merkin `(*` ja `*)` sallitaan, mutta niitä ei saa laittaa keskenään ristiin: `(*` *täytyy* löytää `*)`, eikä huomio tällöin `}` vaikka se lopettaa lohkokommentin myös.
60+
61+Jos C-kielen kaltaiset operaattorit sallittiin kääntäjädirektiivillä [[sCoperator|{$COperator on}]] niin voidaan käyttää syntaksin `i := i * n` tilalla `i *= n`. Mutta tekemällä näin, poistut Pascalin pääsuunnasta. Koodi toimii teknisesti, mutta matemaattisesti se tulee vääräksi.
62+
63+---
64+*From the Free Pascal wiki, page "*/fi", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history