Kirjautuminen

Tunnus
Salasana

Haku

Pikalinkit

Avoin ohjelmointikurssi

Helsingin yliopiston avoin ohjelmointikurssi

Opasarkisto: Pascal-ohjelmointi: Osa 1 - Mistä Pascal alkaa?

  1. Osa 1 - Mistä Pascal alkaa?
  2. Osa 2 - Vakiot, muuttujat ja tietueet
  3. Osa 3 - Silmukat ja ehtolauseet
  4. Osa 4 - Tiedostot
  5. Osa 5 - Funktiot, aliohjelmat ja omat moduulit

Kirjoittaja: Metabolix. Vuosi: 2004.

Tässä opassarjassa käydään pikaisesti läpi joitakin Pascal-ohjelmointikielen perusasioita kuten muuttujia, silmukoita ja ehtolauseita.

Välineitä etsimässä

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ää.

Itse kielestä

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.

Ohjelman rakenne

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!

Loppuhuomauksia

Lauri Kenttä, 9.8.2004


Kommentit

zigilii [21.09.2004 18:36:26]

Lainaa #

Mistä Pascal alkaa?

vastaus
P:stä
:)

varmasti hyödyllisiä oppaita
täytyy lukea ajatuksen kanssa joskus kun on aikaa

Gwaur [22.09.2004 19:51:04]

Lainaa #

Mitä yhteistä on elefantilla ja puhelinkopilla?
Molemmat alkaa peellä paitsi elefantti.

omg lol xd

Stume [24.09.2004 18:24:55]

Lainaa #

Hyvä opas. Tulee tarpeen.

BlueByte [28.09.2004 15:36:09]

Lainaa #

kiitos paljon!
Olen ettinyt pascal opasta mutta ainoat jota olen löytänyt googlesta on olleet huonoja :)

Metabolix [28.09.2004 16:37:36]

Lainaa #

Joo, tiesinkin, että Pascal-oppaat ovat aika harvassa. Juuri siksi tämä on nyt täällä.

BlueByte [28.09.2004 18:02:06]

Lainaa #

kiitos kiitos :)

Latska [08.10.2004 13:51:29]

Lainaa #

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.

Bermod [31.10.2004 18:09:41]

Lainaa #

Miten tuon ikkunan saisi jäämään paikoilleen niin kauaksi aikaa ennen kuin painaa enteriä?
Minulla se vain välähtää ja sitten sulkeutuu itsestäään.

Metabolix [01.11.2004 06:42:53]

Lainaa #

Tuosta pitää syyttää Windowsia, joka sulkee konsoli-ikkunan automaattisesti. "Oikea Tapa" olisi ajaa ohjelma komentoriviltä. Ylimääräinen Readln tai pari ohjelman lopussa on kuitenkin helpompi tapa.

Bermod [01.11.2004 14:32:04]

Lainaa #

Ennnen tuota postaustani kokeilinkin ajaaa sen ensin komentoriviltä, mutta se sulkeutui silti heti.
Readln -rivin lisäys auttoi asiaa.

kotsku [02.12.2004 17:35:56]

Lainaa #

moi!! tietääks kukaan mistä sais turbo pascalin kouluversion... sen mitä peruskouluissa käytetään???

Metabolix [03.12.2004 15:26:17]

Lainaa #

No en tiedä, mitä kouluissa käytetään, mutta Turbo Pascal 5.5 löytyy Borlandin sivuilta osoitteesta http://bdn.borland.com/article/0,1410,20803,00.html

nikkenakkerton [15.02.2005 00:03:59]

Lainaa #

niin tuota tuli tässä sama mieleen kuin bermodilla, että miten tuon ikkunan saisi jäämään näyttöön?

olisin kiitollinen jos joku kertoisi ;)

Metabolix [15.02.2005 05:49:25]

Lainaa #

Johan se lukee tuossa? Silmä käteen vain :)

Metabolix kirjoitti:

"Oikea Tapa" olisi ajaa ohjelma komentoriviltä. (Käynnistä => Suorita => command / cmd) Ylimääräinen Readln tai pari ohjelman lopussa on kuitenkin helpompi tapa.

nikkenakkerton [15.02.2005 11:28:59]

Lainaa #

no nyt toimii :P

Kaffir [28.02.2005 18:48:56]

Lainaa #

Toimisiko tälläinen:

[code]
begin
repeat
ClickMouse(500,500, true)
Wait(300);
until(False);
end.program New;
end.

Kaffir [28.02.2005 18:53:31]

Lainaa #

Tarkoitan

begin
repeat
ClickMouse(500,500, true)
Wait(300);
until(False);
end.program New;
end.

Metabolix [01.03.2005 20:51:46]

Lainaa #

Täysin järjetön koodinpätkä.

Kaffir [12.03.2005 21:26:11]

Lainaa #

Selvä. Tuo on vain copypaste yhdestä ohjelmasta nimeltä SCAR, se on runescape cheating ohjelma, joak en koodattu delhpillä. Siihen on taidettu sitten tehdä ihan omat komennot (ohjelma on ns. "Scriptable") ja siinä tuo toimii. Kunhan kysyin.

Kaffir [12.03.2005 21:27:08]

Lainaa #

Voi hitsi tämän kannettavan koneen näppäimiä. Vietävästi tulee kirjoitus virheitä öaukeen ottsaa pååähnän. :P

NanoSoft [07.04.2006 00:00:16]

Lainaa #

jos joku tarvitsee delphi opasta(en) niin tässä olisi osoite:
http://freepgs.com/wille/Delphi.doc

Dude [01.08.2007 11:24:45]

Lainaa #

googlesta löytyy heleposti turbopascal 7.0

Kirjoita kommentti

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.

Muista lukea keskustelun ohjeet.
Tietoa sivustosta