|
Pana acum am folosit ca exemple programe
simple, care contineau doar functiile de intrare / iesire
si operatorul de atribuire. Atunci cand elaboram programe ceva mai
complexe este necesar ca, intr-un anumit punct al programului, sa decidem
continuarea acestuia in functie de o conditie. In primul laborator am
dat ca exemplu de algoritm rezolvarea ecuatiei de gradul 1 (pseudocod
si schema logica). Intr-o schema logica ni se permitea utilizarea unui
bloc de decizie de urmatorul tip:
cu semnificatia: daca este adevarata conditia se executa prelucrarea B, altfel se executa prelucrarea A.
In limbajul C este utilizata instructiunea IF, cu urmatoarea sintaxa:
if (expresie) instructiune1;
[else instructiune2;}
unde:
expresie - orice expresie valida in limbajul C
instructiune1, instructiune2 - orice instructiune corecta din limbajul C ;
Mod de functionare:
se evalueaza expresia
daca expresia este ne nula (conventia pentru adevarat) se executa instructiune1
daca expresia este nula (falsa) se executa instructiune2
se trece la urmatoarea instructiune a programului
Observatie: alternativa else instructiune2 poate sa lipseasca.
Exemplul 4: Sa se scrie un program pentru calcularea maximului a doua numere.
#include <iostream.h>
void main(void)
Exemplul 5: Scrieti un program care calculeaza maximul a 3 numere.
#include <iostream.h>
void main (void)
Observatie: Dupa cum se vede din exemplu, instructiune1 si instructiune2 pot fi de asemenea instructiuni if. Spunem ca sunt instructiuni if imbricate. A se observa si modul cum a fost scris programul, astfel incat sa se vada clar carei instructiuni if ii apartine fiecare else.
Exemplul 6: Se dau trei numere intregi a,b,c. Sa se testeze daca numerele date pot fi lungimile laturilor unui triunghi.
#include <iostream.h>
void main (void)
Observatie: Nu am mai verificat daca a, b , c sunt pozitive.
Exemplul 7. Reluam exemplul precedent cu intentia de a folosi mai putine instructiuni if.
#include <iostream.h>
void main (void)
Observatie: Am folosit o singura instructiune if, cele trei conditii anterioare fiind conectate prin operatorul SI logic. Dupa cum se stie, daca avem propozitiile p,q,r, atunci propozitia p&&q&&r va fi adevarata daca toate propozitiile componente sunt adevarate si falsa daca una dintre propozitiile componente este falsa.
Este indicata aceasta scriere pentru ca sporeste lizibilitatea programului.
Exemplul 8: Rezolvarea ecuatiei de gradul I.
#include <iostream.h>
void main(void)
else
if (b==0) cout<<"n x apartine lui R ";
else cout <<"n Ecuatia nu are solutii";
Observatie: In cazul in care a este ne nul avem de realizat doua operatii: atribuirea valorii -b/a variabilei x si afisarea valorii radacinii. Atunci cand se realizeaza mai multe operatii acestea trebuiesc incluse intre .