Instrucțiunea IF
Deseori în viaţa cotidiană ne confruntăm cu situaţii în care trebuie să alegem o variantă potrivită din 2 alternative propuse.
Pentru a programa o astfel de acţiune vom folosi instrucţiunea if, pe care o vom studia în continuare.
Instrucţiunea if este o instrucţiune condiţionată, deoarece urmăreşte să conţină în algoritm situaţii condiţionate. Din engleză "if " se traduce "dacă".
În viaţa de zi cu zi de foarte multe ori folosim expresii ca:
Dacă plouă atunci merg cu taxi.
sau
Dacă plouă atunci merg cu taxi, altfel merg pe jos.
În mod algoritmic aceste exemple se pot structura astfel:
caz I:
dacă plouă atunci
merg cu taxi
caz II:
dacă plouă atunci
merg cu taxi
altfel
merg pe jos
În ambele cazuri plouă reprezintă o condiţie, iar merg cu taxi şi respectiv merg pe jos reprezintă instrucţiuni.
Pe marginea exemplelor de mai sus ajungem la concluzia că instrucţiunea if are 2 forme.
Sintaxa instrucţiunei if
Pe marginea exemplelor analizate mai sus am ajuns la concluzia că instrucţiunea if are 2 forme. Să transcriem exemplele analizate în limbajul Pascal:
caz I:
dacă plouă atunci ======= if condiţie then
merg cu taxi instructiune
Această formă reprezintă forma scurtă a instrucţiunei if sau instrucţiunea de ocolire.
caz II:
dacă ploua atunci if conditie then
merg cu taxi ====== instructiune1
altfel else
merg pe jos instructiune2
Această formă reprezintă forma lungă a instrucţiunei if sau forma IF-ELSE.
Principiul de lucru a instrucţiunei if
Principiu de lucru a instrucţiunei if este:
1. se evaluează condiţia, în rezultat se obţine valoarea true sau false
2. dacă rezultatul evaluării este true sau adevărat, atunci se execută instrucţiunea situată după cuvîntul-cheie then, mai apoi execuţia se transmite la următoarea instrucţiune după end
3. dacă rezultatul evaluării este false , atunci fie că se execută instrucţiune situată după cuvîntul-cheie else (dacă există), fie că se execută instrucţiunea după end.
Schematic principiul de lucru a instrucţiunei if se reprezintă astfel:
Exemple rezolvate
1. Să se elaboreze un program care citeşte de la tastatură un număr şi să stabilească paritatea lui.
Program P1;
{Determinarea parităţii unui număr}
var x: integer;
begin
writeln ('Daţi numărul: ');
write ('x=');
readln (x);
if x mod 2=0 then writeln ('numar par') else writeln ('numar impar');
readln;
end.
2. Să se elaboreze un program care introduce de la tastatură 2 numere întregi care reprezintă valorile a 2 temperaturi. Să se afişeze temperatura minimă şi mesajul "Este frig" dacă temperatura minimă este mai mică decît 4 grade.
Program P2;
var t1, t2: integer;
tmin:integer;
begin
writeln ('Dati valorile temperaturilor: ');
write ('t1='); readln(t1);
write ('t2='); readln(t2);
if t1< t2 then tmin := t1 else tmin :=t2;
writeln ('temperatura minima este ', tmin);
if tmin < -4 then writeln ('Este frig');
readln;
end.
De reținut
- ramura else nu este obligatorie
- după cuvîntul-cheie then nu se pune simbolul ";" , deoarece instrucţiunea după then va fi exrecutată indiferent de valoarea condiţiei.
Incorect: if B then; S
Corect: if B then S
- instrucţiunea plasată înaintea cuvîntului-cheie else nu se finisează cu simbolul ";", deoarece instrucţiunea după else nu se va executa, ci va fi o instrucţiune ce urmează celei condiţionale.
Incorect: if B then S; else P
Corect: if B then S else P