Sign in Join
Wiki copytemporary

Program/fi

Bahasa Indonesia · Deutsch · English · Français · Italiano · Português · Suomi · Русский

Program on joko suoritettava ohjelma, eli täydellinen ajettava sovellus, tai se on Pascal -lähdekooditiedoston tai tiedostojen osa, jotka voidaan kääntää ja joita ei määritelty käännösyksikköksi (unit) tai kirjastoksi. Tätä kutsutaan joskus pääohjelmaksi.

Pääohjelma

Sana program on varattu sana sillä voidaan esitellä klassisen ohjelman lähdekoodin:

pascal
program hiWorld(input, output, stderr);

begin
    writeLn('Hi!');
end.

Koska FPC hylkää ohjelman otsikon, eli ensimmäisen rivin. Käännöstiedoston nimi määräytyy lähdekooditiedoston nimen perusteella. Ohjelman nimestä tulee kuitenkin varattu tunniste. Jos edellä olevassa esimerkissä, esim. yritetään määritellä joku muu hiWorld-niminen tunniste niin se aiheuttaa kaksoiskappale käännösaikaisen virheen.

Tiedoston kuvauksen luettelo jätetään kokonaan huomiotta, paitsi {$mode ISO}. Text muuttujat input, output ja stderr avataan aina ja niiden nimiä ei voi muuttaa muissa tiloissa. (vrt. SysInitStdIO kutsutaan aina rtl/linux/system.pp)

Näin ollen FPC:ssa seuraava kokonainen lähdekoodin esimerkki kääntyy identtisesti kuten edellinen esimerkki.

pascal
begin
    writeLn('Hi!');
end.

Ohjelman rakenne

Ohjelmatiedoston on noudatettava tiettyä rakennetta.

  1. Program otsikko (Riippuen käytetystä kääntäjästä. Voi olla mahdollisesti valinnainen).
  2. Käytössä voi olla enintään yksi uses-lauseke ja sen on oltava ohjelman yläosassa heti ohjelman otsikon (program) jälkeen.
  3. Vain yksi lohko, joka päättyy end. (huomaa piste). Tämä lohko voi sisältää - toisin kuin tavallisissa lohkoissa - resourcestring-osion(osiot)

Eri osioiden tarkka järjestys ja lukumäärä (vapaaehtoinen) uses-lausekkeen jälkeen, kunnes lopullinen kokoomalauseke begin…end. on vapaa. On kuitenkin joitakin huomioitavia näkökohtia.

Kun otetaan huomioon kaikki näkökohdat niin karkea ohjelmarakenne näyttää tältä (paitsi label ja {$goto on}, jotka mainitaan vain täydellisyyden vuoksi):

pascal
program sectionDemo(input, output, stderr);

// global compiler directives ----------------------------
{$mode objfpc}
{$goto on}

uses
    sysutils;

const
    answer = 42;

resourcestring
    helloWorld = 'Hello world!';

type
    primaryColor = (red, green, blue);

procedure doSomething(const color: primaryColor);
begin
end;

// M A I N -----------------------------------------------
var
    i: longint;

threadvar
    z: longbool;

label
    42;
begin
end.

[Esimerkissä tietoisesti jätetään huomiotta mahdollisuus kirjoittaa “typed constants”, eli tartutaan pikemminkin perinteisiin käsitteisiin kuin tarpeettomasti sekoitetaan aloittelijoita]

Katso myös


From the Free Pascal wiki, page "Program/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.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.