Programy v Pascalu (alespoň ty naše) jsou psány pro DOS. Uživateli se sice zdá, že program píše na obrazovku a čte z klávesnice, ale ne vždy je to zcela pravda. Program totiž čte ze standardního vstupu a píše do standardního výstupu. Problémem je to, že většinou je standardním vstupem klávesnice a standardním výstupem obrazovka. Pokud chceme, aby byl výstup vždy na obrazovce, stačí uvést v záhlaví programu
Uses CRT;
a výstup bude vždy na obrazovku, vstup vždy z klávesnice.
Naopak, pokud v hlavičce programu toto neuvedeme a napíšeme na první řádek
Program Jméno( Input, Output );
můžeme například místo na obrazovku psát do souboru.
Do programu mohou vstupovat parametry, tedy hodnoty, zadané při spuštění programu. Kolik parametrů bylo zadáno lze zjistit pomocí funkce ParamCount:
pocet:= ParamCount;
Jednotlivé parametry lze jako text (string) načítat následovně:
parametr:= ParamStr( 1 ); {načte první parametr programu}
Pokud se pokusím číst „nultý" parametr programu: jmeno:= ParamStr( 0 ); dozvím se jméno, kterým byl program spuštěn — tedy většinou jméno programu.
Číst parametry dál, než kolik jich je jest nesmysl. Ani nevím, jestli nastane chyba (asi ne) nebo dostanu nějaký nesmysl. Doporučuji vyzkoušet, zapamatovat a dávat si pozor.
Aby bylo možné spouštět programy „přeložené", tedy mimo prostředí Turbo Pascalu, je třeba nastavit v menu Compile–Destination stav Disk.
Samozřejmě, že není nutné se vždy vracet do DOSu pokaždé, když chci zkoušet parametry, neboť ty je možné zadat přímo v prostředí Turbo Pascal: Run–Parameters.
Podmínka
Je snad každému jasné, že program většinou neběží „přímo" od začátku na konec. Většinou na něco reaguje, rozhoduje se: když tohle, tak udělám támhleto, jinak nic. V Pascalu se taková podmínka zapisuje:
If podmínka then příkaz
If a=1 then WriteLn( 'jedna' );
If p=0 then
Begin
WriteLn('Nesmí být nula! Nastavuji na jedničku.' );
p:= 1;
end;
If a>b then WriteLn( 'A je větší.' )
else WriteLn( 'A není větší.' );
Poznamenávám, že před else se nepíše středník!
Příklad:Program Suma( Input, Output ); { Suma Sečte čísla - parametry programu} Var Par: String; {Parametr} Poc: Integer; {Počítadlo} Pom: Integer; {Pomocná prom.} Cis: Real; {Číslo} Sum: Real; {Suma - výsledek} Begin Sum:= 0; {Vynulovat sumu} If ParamCount>=1 then {Když jsou parametry..} Begin For Poc:=1 to ParamCount do { Od prvního do posledního} Begin Par:= ParamStr( Poc ); Val( Par, Cis, Pom ); { Převod textu na číslo} Sum:= Sum+Cis; { Přičíst} end; WriteLn( Output,'Suma = ',Sum:6:3 ); { Výpis výsledku} end else {..když nebyly parametry..} WriteLn( Output, 'SUMA cislo1 cislo2..'); { Nápověda} End.
|
|