Pokud je potřeba rozhodnout mezi více možnostmi, nebývá vhodné používat příkaz If–then. Pro tyto případy existuje v pascalu podmínka Case:
Case podmínka of
Hodn1: Příkaz;
Hodn2: Příkaz;
else Příkaz;
end;
Např.:
Case i of
1: WriteLn('Jedna');
2: WriteLn('Dva');
end;
Case Ch of
'A': WriteLn('Ano');
'N': WriteLn('Ne');
else WriteLn('Nevím');
end;
Pro opakování nějaké činnosti do splnění podmínky je v Pascalu vhodné používat cyklus. Existuje cyklus s podmínkou na začátku (While) a cyklus s podmínkou na konci:
Repeat
Příkazy;
Until podmínka;
Opakuje příkazy dokud není splněna podmínka.
Repeat
WriteLn('Stiskni [Escape]!');
Until Readkey=#27;
Repeat Until KeyPressed; {Čeká na stisk libovolné klávesy}
Program Kalkulacka; { Kalkulacka I Case, Repeat - Until } Uses Crt; { Práce s obrazovkou a klávesnicí } Var A, B : Real; { Čísla } Oper : Char; { Operace } Binar: Set of Char; { Binární operace } Begin ClrScr; WriteLn('Kalkulacka'); { Hlavička } WriteLn('~~~~~~~~~~'); WriteLn('Cislo [Enter]'); WriteLn('operace'); WriteLn('cislo [Enter]'); { Nápověda } WriteLn; Binar:= ['+','-','*','/']; { Množina bin. operací } Readln( A ); { Načíst číslo } Repeat { Opakuj..} Oper:= ReadKey; { Načíst operaci } Oper:= UpCase( Oper ); { Převést na velká písmena } WriteLn( Oper ); { Vypsat na obrazovku } If Oper<>#27 then { Pokud není [Esc]...} Begin If Oper in Binar then { Pokud je operace binární } Readln( B ); { načti druhé číslo } Case Oper of '+': A:= A+B; '-': A:= A-B; '*': A:= A*B; '/': A:= A/B; 'S': A:= Sqrt( A ); end; WriteLn( 'Vysledek: ', A:5:3 ); end; { Oper<>[Esc] } Until Oper=#27; { ..dokud není operace=[Esc] } End.
|
|