Sign in Join
Wiki copytemporary

^/fi: what changed

Revision 7 to 8. Removed lines have a minus sign; added lines have a plus sign.

Title: */fi ;/fi

OldNewLine
1-[[ASCII/fi|ASCII]]:ssa ja [[UTF-8]]:ssa desimaalisen merkkikoodin `42` (tai [[Hexadecimal/fi|heksadesimaalisena]]`2A`) määritellään olevan `*`
1+;
22
3-*
3+Puolipisteen [[ASCII/fi|ASCII]] tai unicode arvo on 59 ([[Hexadecimal/fi|Heksadesimaalisena]] \$3B).
44
5-## Standardi Pascal
5+**Puolipistettä**, ***;*** käytetään erottamaan lauseita (toisin kuin jossain muissa ohjelmointikielissä, jossaa sitä käytetään lauseen lopettamiseen ). Sitä on pakko käyttää useimmissa lauseissa, vapaaehtoisesti joissakin lauseissa ja sen käyttö on kiellettyä tietyssä lauseissa.
66
7-Symbolia `*`, joka lausutaan “tähdeksi tai kertomerkiksi”, käytetään [[Pascal/fi|Pascal]]:ssa
7+(Jotta selitettäisiin käyttö, jossa Pascalin avainsanoja viitataan tämän artikkelin tekstissä, ne on kirjoitettu isoilla kirjaimina. Ohjelmalistaukset käyttävät pieniä kirjaimia.)
88
9-- numeroiden kertolaskuna tai
10-- [[Set|Joukkojen]] leikkauksen merkkinä.
9+Puolipiste on yleensä pakollinen ja sitä tarvitaan jokaisen lauseen jälkeen. Paikat, joissa se on valinnainen, ovat
1110
12-``` pascal
13-program asteriskDemo(input, output, stderr);
11+- ennen [[End|END]] lausetta
12+- ennen ohjelman [[Program|PROGRAM]] tai käännösyksikön [[Unit/fi|UNIT]] päättymispistettä
1413
15-type
16- day = (monday, tuesday, wednesday,
17- thursday, friday, saturday, sunday);
14+Paikat joissa puolipiste on kielletty, ovat
1815
19-var
20- i: longint;
21- n: real;
22- m: set of day;
16+- Ennen [[Begin|BEGIN]]-lausetta, joka kokoaa yhdistelmälauseen
17+- Ennen välittömästi [[Else|ELSE]]-lausetta, joka kuuluu sisäkkäiseen IF-lauseseen
2318
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-```
19+Se on yleensä kielletty ennen ELSE-lausetta [[If/fi|IF]] lauseessa tai [[Case/fi|CASE]] lauseessa. Jos kyseessä on kuitenkin sisäkkäinen IF-lause, sitä voidaan vaatia ennen ELSE-lausetta, jos ELSE:ä käytetään johonkin muuhun IF-lausekkeeseen aikaisemmin ohjelmassa ja varsinainen IF ei ole päättynyt ELSE-lauseeseen. Tätä tarkastellaan jäljempänä.
3420
35-## Potenssiinkorotus
21+## If lause ja puolipiste
3622
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.
23+Puolipiste on kielletty ennen ELSE lauseketta, joka koskee välittömästi IF-lausetta, jotta kääntäjä voi tietää, missä IF-lauseke päättyy. Esimerkiksi
3824
3925``` pascal
40-program exponentiation(input, output, stderr);
4126
42-// laitetaan operaattorin ylikuormitus saataville
43-{$mode objfpc}
27+ (*0001*) if continuance then
28+ (*0002*) if separated then
29+ (*0003*) Condition(a)
30+ (*0004*) else
31+ (*0005*) if combined then
32+ (*0006*) Condition(b)
33+ (*0007*) else
34+ (*0008*) Condition(c);
35+ (*0009*) Calculate_fee;
36+```
4437
45-operator ** (const base: integer; const exponent: integer): integer;
46-begin
47- result := trunc(exp(ln(base) * exponent));
48-end;
38+Tässä esimerkissä puolipiste on kielletty rivillä 3 (muussa tapauksessa ELSE rivillä 4 sovellettaisiin IF: lauseeseen rivillä 1).
4939
50-begin
51- writeLn(2 ** 10); // tulostaa 1024
52-end.
53-```
40+Jos rivien 1 ja 2 välissä olisi BEGIN-rivi ja rivin 8 jälkeen END-rivi, niin puolipiste olisi kielletty rivillä 1.
5441
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]].
42+Koska rivillä 6 ei ole puolipistettä niin ELSE-arvo rivillä 7 koskee IF: tä rivillä 5. Jos rivi 6 päättyisi puolipisteeseen, niin ELSE rivillä 7 olisikin voimassa IF:n rivillä 1 kanssa (ELSE rivillä 4 koskee IF: tä rivillä 2). Näin puolipiste on tässä yhteydessä kielletty saadakseen tämän tuloksen.
5643
57-## Muut esiintymiset
44+Kuitenkin jos halutaan että ELSE-osa koskee riviä 1 niin puolipiste olisi pakollinen rivillä 6, joka "sulkee" IF:n rivillä 5.
5845
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.
46+Jos rivin 1 yläpuolella oli IF-lause niin puolipiste rivillä 8 sulkee IF-lausekkeen rivillä 1 ja jos ELSE sijoitettaisiin rivin 8 jälkeen niin se ei koske IF-lauseketta rivillä 1.
6047
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.
48+Usein on suositeltavaa liittää kaikki lauseet IF-lauseen sisällä BEGIN / END-lohkolla, jos saattaa olla kysymys siitä, mihin ELSE-arvoon sovelletaan mitäkin IF lausetta sisäkkäisten IF-lausekkeiden joukossa.
6249
6350---
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).*
51+*From the Free Pascal wiki, page ";/fi", as it stood on 2020-02-01 after a change by GAN, 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