Sign in Join
Wiki copytemporary

^/fi: what changed

Revision 3 to 4. 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 `*`
2-
3-<div style="float:right; margin: 0 25px 20px 0; padding:50px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">
1+<div style="float:left; margin: 0 25px 20px 0; padding:50px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">
42
5-*
3+;
64
75</div>
86
9-## Standardi Pascal
7+Puolipisteen [[ASCII/fi|ASCII]] tai unicode arvo on 59 ([[Hexadecimal/fi|Heksadesimaalisena]] \$3B).
108
11-Symbolia `*`, joka lausutaan “tähdeksi tai kertomerkiksi”, käytetään [[Pascal/fi|Pascal]]:ssa
9+**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.
1210
13-- numeroiden kertolaskuna tai
14-- [[Set|Joukkojen]] leikkauksen merkkinä.
11+(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.)
1512
16-``` pascal
17-program asteriskDemo(input, output, stderr);
13+Puolipiste on yleensä pakollinen ja sitä tarvitaan jokaisen lauseen jälkeen. Paikat, joissa se on valinnainen, ovat
1814
19-type
20- day = (monday, tuesday, wednesday,
21- thursday, friday, saturday, sunday);
15+- ennen [[End|END]] lausetta
16+- ennen ohjelman [[Program|PROGRAM]] tai käännösyksikön [[Unit/fi|UNIT]] päättymispistettä
2217
23-var
24- i: longint;
25- n: real;
26- m: set of day;
18+Paikat joissa puolipiste on kielletty, ovat
2719
28-begin
29- // kertolasku operaattori
30- i := 6 * 7; // i saa arvokseen 42
31- n := 6.0 * 7.0; // n saa arvokseen 42.0
32-
33- // leikkaus operaattori
34- m := [saturday, sunday] * [sunday, monday];
35- // m on nyt {sunday}
36-end.
37-```
20+- Ennen [[Begin|BEGIN]]-lausetta, joka kokoaa yhdistelmälauseen
21+- Ennen välittömästi [[Else|ELSE]]-lausetta, joka kuuluu sisäkkäiseen IF-lauseseen
3822
39-## Potenssiinkorotus
23+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ä.
4024
41-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.
25+## If lause ja puolipiste
4226
27+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
28+
4329``` pascal
44-program exponentiation(input, output, stderr);
4530
46-// laitetaan operaattorin ylikuormitus saataville
47-{$mode objfpc}
31+ (*0001*) if continuance then
32+ (*0002*) if separated then
33+ (*0003*) Condition(a)
34+ (*0004*) else
35+ (*0005*) if combined then
36+ (*0006*) Condition(b)
37+ (*0007*) else
38+ (*0008*) Condition(c);
39+ (*0009*) Calculate_fee;
40+```
4841
49-operator ** (const base: integer; const exponent: integer): integer;
50-begin
51- result := trunc(exp(ln(base) * exponent));
52-end;
42+Tässä esimerkissä puolipiste on kielletty rivillä 3 (muussa tapauksessa ELSE rivillä 4 sovellettaisiin IF: lauseeseen rivillä 1).
5343
54-begin
55- writeLn(2 ** 10); // tulostaa 1024
56-end.
57-```
44+Jos rivien 1 ja 2 välissä olisi BEGIN-rivi ja rivin 8 jälkeen END-rivi, niin puolipiste olisi kielletty rivillä 1.
5845
59-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]].
46+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.
6047
61-## Muut esiintymiset
48+Kuitenkin jos halutaan että ELSE-osa koskee riviä 1 niin puolipiste olisi pakollinen rivillä 6, joka "sulkee" IF:n rivillä 5.
6249
63-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.
50+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.
6451
65-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.
52+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.
6653
6754---
68-*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).*
55+*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