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

Verifică cunoștințele