Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




INSTRUCTIUNEA IF

c


INSTRUCŢIUNEA IF

Instructiunea if este instructiunea de decizie.

Format 1: Format 2 :

if (expresie) if (expresie)



instructiune-1 instructiune-1

else

instructiune-2

Instructiunea functioneaza astfel:

- se determina valoarea de adevar pentru expresie; daca este diferita de zero este adevarata, iar daca este zero este falsa;

- daca expresia este adevarata, atunci si īn formatul 1 si īn formatul 2 se executa instructiunea-1;

- daca expresia este falsa, atunci īn formatul 1 nu se executa nimic, iar īn formatul 2 se executa instructiunea -2.

Deoarece o expresie este considerata adevarata daca este diferita de zero īn limbajul C īn loc de:

if (expresie! = 0 )

este suficient sa scriem:

if (expresie)

pentru a face o oarecare prescutare, cu toate ca unii programatori obisnuiti sa lucreze īn alte limbaje ar fi tentati sa foloseasca prima forma.

Se pot utiliza si secvente de instructiuni if imbricate. O astfel de constructie apare atunci cānd instructiune-1 si/sau instructiune-2 reprezinta tot o instructiune if. Deoarece partea de else a unei instructiuni if este optionala sunt situatii cānd pot apare ambiguitati. Īn aceste cazuri trebuie cunoscuta conventia ca else se asociaza cu cel mai apropiat if. Pentru a observa mai usor asocierea si pentru o mai mare claritate a programului se recomanda scrierea acestuia folosind alinierea prin identatie.

Aceste ambiguitati se rezolva folosind acoladele cu ajutorul carora se poate face asocierea dorita.

Pentru a exemplifica cele de mai sus, īn continuare este dat un exemplu de secventa de program care calculeaza maximul a trei numere a, b, c:

/ * Gresit */ / * Corect */

.................. ...................

max = c; max = c;

if (a>b) if (a > b)

if (a > c) if (a > c)

max = a; max = a;

else else

if (b > c) if (b > c)

max = b; max = b;

.................... .....................

Primul exemplu este gresit deoarece else se asociaza cu al doilea if nu cu primul asa cum este corect si cum indica si alinierea. Aceasta ambiguitate este rezolvata īn secventa din partea dreapta utilizānd acoladele (deci blocul) si astfel se asociaza corect else cu primul if.

Pentru a īntelege mai bine instructiunea if urmariti programul urmator, care verifica daca trei numere a, b, c pot fi laturile unui triunghi, si īn caz afirmativ determina ce fel de triunghi este : echilateral, isoscel sau scalen.

Exemplu 3.3.1.

# include <stdio.h>

main ( )

float a, b, c;

print f(" Laturile triunghiului (a, b, c):");

scanf ("% f, % f, % f", &a, &b, &c);

if (a+b>c && b+c > a&& c+a >b)

if (a = = b && b = = c && c = = a)

printf (" Triunghi echilateral \ n");

else

if (a = = b b = = c c = = a)

printf (" Triunghi isoscel \ n");

else

printf (" Triunghi scalen \ n");

else

printf (" Nu pot fi laturile unui triunghi \ n");

Exemplu 3.3.2.

Rezolvarea ecuatiei de gradul 2 : ax2 + bx +c = 0

# include "stdio.h"

# include "math.h"

main ( )

double a, b,c,d,r,re, im,x1,x2;

printf (" Rezolvarea ecuatiei de gradul 2 \n ");

printf (" Introduceti coef. a, b, c: ");

scanf("%1f, %1f, %1f",&a, &b, &c);

if (a = = 0)

if(b = = 0)

if(c == 0)

printf(" Ecuatie nedetermniata \n");

else

printf("Ecuatie imposibila \n");

else

printf("Ecuatie de gr.1: x= %f \n", -c/b);

else

r = ((d = b b -4 a c)) = 0? sqrt (d) (-d)); if (d>0)

x1 = (-b +r)/2/a ; x = (-b-r)/2/a;

printf ("Rad. reale distincte: x1 = %f x2= %f\n", x1,x2);

else

if (d = = 0)

printf("Rad. reale egale: x1=x2=%f \n", -b/2/a);

else

re = -b/2/a; im =r/2/a;

printf("Rad. complexe conjugate :re =%f im = %f \n", re im);



Document Info


Accesari: 6966
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )