Pascal – if Mgr. Lenka Švancarová
if vývojový diagram Úplné větvení Neúplné větvení Podmínka Podmínka + - + - Příkaz(y) Příkaz(y) Příkaz(y)
if syntaxe if (podmínka) begin jeden nebo více příkazů pravdivé větve end else begin jeden nebo více příkazů nepravdivé větve end; Před else nesmí být středník (Pro lepší zapamatování: „V if před else nelze“). Pokud je v pravdivé či nepravdivé větvi jeden příkaz, je na nás, zda použijeme begin end či nikoliv. V případě více příkazů jsou begin end povinné.
if sémantika Jestliže je splněna podmínka, vykonají se příkazy pravdivé větve, když není, vykonají se příkazy nepravdivé větve. Část else není povinná (if může mít jen pravdivou větev). Pokud má if jen pravdivou větev, jedná se o neúplné větvení, pokud má obě, jedná se úplné větvení.
if úplné větvení Start Stop readln(x) readln(y) x > y + - writeln(’Vetsi cislo je: ’,x) writeln(’Vetsi cislo je: ’,y) Stop
if úplné větvení var x,y:real; begin write(’Zadej prvni cislo: ’); readln(x); write(’Zadej druhe cislo: ’); readln(y); if x > y then writeln(’Vetsi cislo je: ’,x) else writeln(’Vetsi cislo je: ’,y); end.
if neúplné větvení Start Stop readln(x) x < 0 - + x:=x*(-1) writeln(’|x| =’, x) Stop
if neúplné větvení var x:real; begin write(’Zadej cislo: ’); readln(x); if x < 0 then x:=x*(-1); writeln(’|x| =’, x); end.
writeln(’|x| =’, x*(-1)) if úplné větvení Start readln(x) x < 0 + - writeln(’|x| =’, x*(-1)) writeln(’|x| =’, x) Stop
if úplné větvení var x:real; begin write(’Zadej cislo: ’); readln(x); if x < 0 then writeln(’|x| =’, x*(-1)) else writeln(’|x| =’, x); end.
If vnořování Ve větvi then či else může být libovolný příkaz, tedy i další if. Předchozí věta nám říká, že příkazy if lze do sebe zanořovat. Je-li v sobě vnořeno několik if, patří else k poslednímu if bez else.
if vnořování var x,y:real; begin write(’Zadej prvni cislo: ’); readln(x); write(’Zadej druhe cislo: ’); readln(y); if x > y then begin writeln(’Vetsi cislo je: ’,x); writeln(’Mensi cislo je: ’,y); end else if x=y then writeln(’Cisla jsou stejna.’) else begin writeln(’Vetsi cislo je: ’,y); writeln(’Mensi cislo je: ’,x); end; end.
Pascal – if Uživatel zadá, zda chce u kruhu vypočítat obsah či obvod a pak jeho celočíselný poloměr. Program spočte požadované. Uživatel zadá reálné číslo, jeden ze znaků +, –, * nebo / a poté druhé reálné číslo. Program vypíše výsledek. Jsou zadána tři čísla. Napište program, který určí největší z nich. Napište program, který vypočte kvadratickou rovnici.