Sunteți pe pagina 1din 4

Instructiunea IF n viaa de zi cu zi de foarte multe ori folosim expresii ca: Sau Dac plou merg cu taxi.

i. Dac plou atunci merg cu taxi altfel o s merg pe jos pe traseul stabilit.

Instruciunea if urmrete s cuprind n algoritm tocmai astfel de situaii condiionale. Pe marginea exemplului de mai sus putem s deducem sitaxa instruciunii n pseudocod: Dac <condiie> atunci instruciune1 altfel instruciune2 Dac <condiie> atunci instruciune1

Prin urmare, observm c forma lui Dac poate mbraca dou forme: cu i fr altfel. n C++ sintaxa instruciunii if este urmtoarea. if (<condiie>) instruciune1; if (<condiie>) then instruciune1; else instruciun e2; Compilatorul va executa instruciunea if n felul urmtor: Evaluez condiia. Dac condiia este adevrat atunci execut instruciune1. Dac ramura else exist i condiia nu este adevrat se va executa instruciune2. Se trece la urmtoarea instruciune dup if. De exemplu, dac dorim s verific dac un numr a este nul vom folosi instruciunea if in felul urmtor: Daca a=0 atunci scrie (`numarul e nul`) altfel scrie (`numarul nu este nul`); if (a==0) cout<<numar nul; else cout<<numarul nu e nul ;

Calculatorul va verifica dac valoarea lui a este 0. Dac este, va afia numar nul. Dac a are o valoare diferit de 0 se va afianumrul nu e nul. De exemplu dac a=7 se va afia numarul nu e nul. Observaii: Instruciunea if este o structur de control Instruciunea if este o instruciune de decizie (condiional) simpl Ramura else nu e obligatorie Condiia trebuie pus ntre () . 1. S se verifice dac un numr este pozitiv. #include<iostream> using namespace std; int main()

{ long a; //citim numarul cout<<"a="; cin>>a; //verificam daca numarul este pozitiv if(a>=0) cout<<"s-a citit un numar pozitiv"; else cout<<"s-a citit un numar negativ"; return 0; } 2. S se verifice dac un numr aparine intervalului [a,b]. a i b sunt numere reale citite de la tastatur. #include<iostream> using namespace std; int main() { float a,b,n; //citim datele de intrare: a,b si numarul dat cout<<"a=";cin>>a; cout<<"b=";cin>>b; cout<<"n=";cin>>n; //verificam daca numarul n apartine intervalului [a,b] if(n>=a and n<=b)cout<<n<<" apartine intervalului [a,b]"; else cout<<n<<" nu apartine intervalului [a,b]"; return 0; } 3. S se verifice daca 3 numere citite de la tastatura sunt nule. #include<iostream> using namespace std; int main() { float a,b,c; //citim datele de intrare: a,b si numarul dat cout<<"a=";cin>>a; cout<<"b=";cin>>b; cout<<"c=";cin>>c; //verificam daca numerele sunt nule if(a==0 && a==0 && c==0)cout<<" toate numerele sunt nule"; else cout<<" nu sunt toate nule"; return 0; } 4. Se citesc de la tastatura 3 numere. S se verifice dac s-au citit n ordine cresctoare. #include<iostream> using namespace std; int main() { float a,b,c; //citim datele de intrare: a,b si numarul dat cout<<"a=";cin>>a; cout<<"b=";cin>>b; cout<<"c=";cin>>c; //verificam daca numerele sunt in ordine crescatoare if(a<=b && b<=c)cout<<" cele 3 numere sunt in ordine crescatoare"; else cout<<" nu sunt in ordine crescatoare"; return 0; }

5. Se citesc de la tastatur 4 numere. Cte dintre ele sunt numere pare? #include<iostream> using namespace std; int main() {int a,b,c,d,nr; //citim datele de intrare: a,b,c si d cout<<"a=";cin>>a; cout<<"b=";cin>>b; cout<<"c=";cin>>c; cout<<"d=";cin>>d; //initializam un contor cu 0 pe care il vom mari cu 1 de fiecare data cand gasim un numar par nr=0; if(a%2==0)nr++; if(b%2==0)nr++; if(c%2==0)nr++; if(d%2==0)nr++; cout<<"s-au citit "<<nr<<" numare pare"; return 0; } 6. Se citesc de la tastatura 3 numere reale. S se verifice dac pot forma laturile unui triunghi. #include<iostream> using namespace std; int main() {float a,b,c; //citim cele 3 date de intrare cout<<"a="; cin>>a; cout<<"b=";cin>>b; cout<<"c=";cin>>c; //verificam daca cele 3 numere pot forma laturile unui triunghi if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a) if(a==b&&b==c)cout<<"triunghi echilateral"; else if(a==b || b==c || c==a) cout<<"triunghi isoscel"; else cout<<"triunghi oarecare"; else cout<<"cele 3 numere nu pot forma laturile unui triunghi"; return 0; } 1. Se citesc de la tastatur dou numere. Care este valoarea celui mai mic? De exemplu dac a=5 i b=7 se va afia 5. 2. Se introduc vrstele a trei copii. Care este vrsta celui mai mare i care este diferena de vrst dintre cel mai mare i cel mai mic. De exemplu v1=5, v2=8, v3=3 se va afia vrsta cea mai mare este 8 i diferena de vrt este 5. 3. Se introduc punctajele obinute de doi sportivi. Afiai-le n ordine descresctoare. De exemplu dac se introduc p1=4 i p2=10 se afieaz 10 4. 4. Se introduc de la tastatur mediile a 3 elevi. Afiai mediile n ordine cresctoare. De exemplu dac se introduc m1=8.60, m2=6.90 i m3=5.90 se va afia 5.90 6.90 8.60. 5. Se citesc de la tastatur 3 numere ntregi reprezentnd valoarea numerelor care se gsesc ntr-o cutie. Din cutie se extrag dou numere. Cunoscnd suma numere extrase, s se afieze numrul rmas n cutie. S se trateze i cazurile n care suma introdus este greit i nu se poate gsi adevrata valoare a celui de-al treilea numr. De exemplu dac se citesc a1=2, a2=4, a3=6 i s=8 se va afia 4..

6. Se citesc de la tastatur patru numere. S se dubleze valoarea celui mai mare i s se tripleze valoarea celui mai mic. De exemplu a=4 b=6 c=2 d=3 se va afia 4 12 6 3. 7. Se introduc de la tastatur dou numere. S se verifice dac cele dou numere sunt consecutive. 8. Se citesc de la tastatur dou numere naturale reprezentnd lungimile razelor a dou cercuri i un numr d reprezentnd distana ntre cele dou cercuri. Care este pozitia celor dou cercuri unul fa de altul: tangente, inersectate, disjuncte? 9. Se citesc coordonatele a dou puncte din spaiu. Care este distana dintre ele? 10. Se citesc de la tastatur coordonatele a 3 puncte din spaiu. Ce fel de triunghi formeaz? 11. S se rezolve ecuaia de gradul I ax+b=0 dac se citesc de la tastatur valorile lui a i b. 12. S se rezolve ecuaia de gradul II ax2+bx+c=0 dac se citesc de la tastatur valorile pentru a, b i c. 13. S se afieze |ax+b| dac se cunosc valorile pentru a,b i x. 14. Fie sistemul de ecuaii liniare Ax+By=C Dx+Ey=F. S se scrie un program care citete coeficienii A, B, C, D, E, F ai unui sistem de dou ecuaii liniare cu dou necunoscute. Care este soluia sistemului? 15. S se verifice dac toate cele 3 numere citite de la tastatur sunt numere pare. 16. Se citesc de la tastatur 2 numere cu cel mult 4 cifre. Care dintre ele are suma cifrelor mai mare? 17. Se citete de la tastatur un numr cu trei cifre. S se afieze cifrele numrului n ordine cresctoare. 18. Se citesc de la tastatur dou numere. Care este valoarea expresiei: ab/(a-b) ? 19. Se citesc de la tastatur dou numere reale. Care este media lor aritmetic? Dar gerometric? 20. Se citesc de la tastatur valorile a trei numere reale. S se verifice dac pot forma laturile unui triunghi iar n caz afirmativ s se afieze aria i perimetrul triunghiului.