Kirjoittaja: Metabolix (2004).
⚠ Huomio! Tämä opas on vanhentunut. Oppaan sisältöön ei voi enää luottaa. Opas on säilytetty vain sen historiallisen arvon vuoksi. ⚠
Tässä opassarjassa käydään pikaisesti läpi joitakin Pascal-ohjelmointikielen perusasioita kuten muuttujia, silmukoita ja ehtolauseita.
Yleisesti käytetty ilmainen Pascal-kääntäjä on Free Pascal, joka toimii Windowsissa, Linuxissa ja monissa muissa käyttöjärjestelmissä. Windowsissa editoriksi kelpaa Bloodshedin Dev-Pascal, Linuxissa on lukuisia vaihtoehtoja (mm. Kate). Lazarus on hieman raskaampi ja monipuolisempi kehitysympäristö, joka myöskin käyttää Free Pascal -kääntäjää.
Pascalia on nykyisin karkeasti kahta laatua: "tavallista" Pascalia ja Object Pascalia. Näistä ensimmäinen viittaa yleensä 1990-luvun alun Extended Pascal -standardiin ja sen perillisiin. Jälkimmäinen puolestaan käsittää kaikki Pascalin murteet, joihin on lisätty erityinen tuki olio-ohjelmoinnille. Monet kääntäjät tuovat tullessaan myös muita omia erikoisuuksiaan: esimerkiksi Borlandin Turbo Pascal sisältää laajan valikoiman DOSiin liittyviä apuvälineitä, jotka eivät kuulu Pascaliin. Tämä opassarja keskittyy tavalliseen Pascaliin ja paikoin Delphin laajennoksiin; olio-ohjelmointi jääköön myöhemmäksi, samoin käyttöjärjestelmäkohtaiset ominaisuudet ja muut apukirjastot.
Pascal on hyvin helppo kieli. Jos osaa englantia, se on vielä helpompi. Rakenteet ovat selkeitä, kunhan niiden selkeyteen kiinnittää hetkisen huomiota, ja loogisia, jos niitä ei väkisin muuksi väännä. Pascal suunniteltiin alun perin ohjelmoinnin opiskelemista varten, ja siihen se on edelleenkin erittäin hyvä. Sen perusteet on helppo oppia, mutta kuitenkin kieli on kyllin monipuolinen ja tehokas. Se on monin paikoin lähempänä C:tä tai C++:aa kuin esimerkiksi Basicin sukuiset kielet, mutta sulkujen ja symboliikan sijaan kielessä käytetään paljon selviä sanoja, minkä takia se ulkonäöltään muistuttaa etäisesti Basiceja.
Jokainen Pascal-ohjelma alkaa sanalla program
, jota seuraa ohjelman nimi. Esimerkiksi näin:
program Ohjelma;
Lauseet erotetaan toisistaan puolipisteellä (;), joka tyypillisesti merkitään, aivan kuten tuossa esimerkissä, lauseen (useimmiten rivin) loppuun.
Tämän jälkeen luetellaan ohjelman käyttämät moduulit. Tällä tavoin säästytään kirjoittamasta uudelleen esimerkiksi järjestelmän perusfunktioita. Isommissa ohjelmissa kannattaa myös jakaa koodi useampaan osaan, jotta sitä on helpompi selata. Hyvin yleisesti ohjelmaan sisällytetään SysUtils-moduuli, graafisiin Windows-ohjelmiin tarvitaan Windows-moduuli. Esimerkiksi näin:
uses SysUtils, Windows;
Tähän väliin voisi määrittää omia tietueita ja Object Pascalissa luokkia, jos niitä ei haluta määrittää omissa tiedostoissaan. Luokista ja tietueista kerrotaan lisää myöhemmin.
Seuraavaksi tulee määritellä koko ohjelman laajuiset muuttujat ja vakiot. Tavallisimpia muuttujatyyppejä ovat kokonaisluvut, liukuluvut (desimaaliluvut) ja tekstimuuttujat sekä Boolean
- eli totuusarvomuuttujat, joiden arvo on True
tai False
(tosi tai epätosi). Useimmissa kääntäjissä Integer
tarkoittaa "tavallista" eli 32-bittistä kokonaislukua LongInt
, joka kattaa lukualueen -2147483648 .. 2147483647, mutta vanhemmat kääntäjät saattavat käyttää tässä 16-bittistä kokonaislukua SmallInt
, joka kattaa lukualueen -32768 .. 32767. Kattavamman luettelon muuttujista löydät Pascal-hakemistosta ja opassarjan toisesta osasta. Muuttujat määritellään sanan var
jälkeen, vakiot puolestaan sanan const
jälkeen.
Muuttujien ja vakioiden määrittely voisi näyttää vaikkapa tältä:
var Luku: Integer; PieniLuku: SmallInt; Teksti: String; const Onnennumero = 13; TarkeaTekstivakio = 'Tekstin kummassakin päässä on heittomerkki';
Ohjelmat voivat sisältää vapaasti kommentteja, ohjelmoijan muistiinpanoja ohjelman toiminnasta.
{ Kommentit kirjoitetaan aaltosulkuihin. } (* Oli myös aika, jolloin ei ollut aaltosulkuja; silloin kommentti oli tällainen. *)
Seuraavaksi voidaan aloittaa itse ohjelma, vaikka tähän voitaisiin laittaa paljon muutakin. Itse suoritettava ohjelma, kuten myös kaikki ohjelman sisäiset kokonaisuudet, alkaa sanalla begin
ja päättyy sanaan end
. Koska tämä on koko ohjelman loppu, tulee sanan end
perään piste.
Kokonainen ohjelma voisi näyttää tältä:
program Testi; begin { Tulostetaan käyttäjälle viesti. } Writeln('Pascal on hieno kieli!'); end.
Kun ohjelma ajetaan, se tulostaa ruudulle yhden rivin:
Pascal on hieno kieli!
Jos esimerkkiohjelma sammuu heti eikä tekstiä ehdi nähdä, ohjelman loppuun voi lisätä rivin ReadLn
:
program Testi; begin { Tulostetaan käyttäjälle viesti. } Writeln('Pascal on hieno kieli!'); { Odotetaan, että painetaan Enter. } Readln; end.
Pascal-kääntäjät hyväksyvät sanat kirjoitusasusta riippumatta. Voit siis kirjoittaa ohjelman alkuun vaikkapa pRogRam
, mutta yleensä tämä ei ole suotavaa koodin selkeyden kannalta.
Sisennyksiä saa koodissaan käyttää myöskin mielensä mukaan, mutta yleensä kannattaa käyttää niitä selkeästi ja erotellen. Rivinvaihdot ovat usein myös selkeyttäviä.
Koska heittomerkki on tekstin alun ja lopun merkkinä, sen saa tekstiin laittamalla niitä kaksi peräkkäin:
Writeln('Tässä ('') on heittomerkki');
Koska Windows ja MS-DOS käyttävät erilaisia merkistöjä, on koodi kirjoitettava jollakin sopivalla editorilla jotta kaikki merkit näkyisivät oikein. Toinen vaihtoehto on laittaa kyseiset merkit tekstin sekaan #-merkillä:
Writeln('T'#132'ss'#132' on '#132'-kirjain.');
Tässä muutamia yleisimpiä:
Merkki | Merkkikoodi DOSissa |
---|---|
å | #134 |
ä | #132 |
ö | #148 |
Å | #143 |
Ä | #142 |
Ö | #153 |
Lauri Kenttä, 9.8.2004
Mistä Pascal alkaa?
vastaus
P:stä
:)
varmasti hyödyllisiä oppaita
täytyy lukea ajatuksen kanssa joskus kun on aikaa
Mitä yhteistä on elefantilla ja puhelinkopilla?
Molemmat alkaa peellä paitsi elefantti.
omg lol xd
Hyvä opas. Tulee tarpeen.
kiitos paljon!
Olen ettinyt pascal opasta mutta ainoat jota olen löytänyt googlesta on olleet huonoja :)
Joo, tiesinkin, että Pascal-oppaat ovat aika harvassa. Juuri siksi tämä on nyt täällä.
kiitos kiitos :)
Opas kirjoitti:
* Pascal-kääntäjät hyväksyvät sanat kirjoitusasusta riippumatta. Voit siis kirjoittaa ohjelman alkuun vaikkapa pRogRam
Mutta pascal ei varmaan hyväksy peelottuja sanoja. Esim Pr0gR4m saattaisi näittää pökelöltä. :)
Osasin muuten pascalia suunnilleen tämän + seuraavan oppaan verran.
Hyvä :) Paras pascal-opassarja, jota suomeksi löytyy
Huomio! Kommentoi tässä ainoastaan tämän oppaan hyviä ja huonoja puolia. Älä kirjoita muita kysymyksiä tähän. Jos koodisi ei toimi tai tarvitset muuten vain apua ohjelmoinnissa, lähetä viesti keskusteluun.