Extras din curs
5. Instructiuni. 5.1. Instructiunea expresie. O instructiune expresie se obtine punând terminatorul de instructiune (punct-virgula) dupa o expresie: expresie; Exemple: a++; scanf(…); max=a>b ? a : b; Exemplul 1: Un numar real, introdus de la tastatura reprezinta masura unui unghi exprimata în radiani. Sa se scrie un program pentru conversia unghiului în grade, minute si secunde sexagesimale. #include <stdio.h> #define PI 3.14159265 void main(void){ float rad, gfr, mfr; int g, m, s; printf(“Introduceti numarul de radiani: “); scanf("%f", &rad); g=gfr=rad*180/PI; m=mfr=(gfr-g)*60; s=(mfr-m)*60; printf("%5.2f radiani=%4d grade %02d min %02d secn", rad, g, m, s); } 5.2. Instructiunea compusa (blocul). Forma generala: { declaratii_si_definitii; instructiuni; } Se foloseste în situatiile în care sintaxa impune o singura instructiune, dar codificarea impune prezenta unei secvente de instructiuni. Blocul de instructiuni conteaza ca o singura instructiune. 5.3. Instructiunea vida. Forma generala: ; Sintaxa impune prezenta unei instructiuni, dar logica problemei nu necesita nici o prelucrare. In acest mod se introduc unele relaxari în sintaxa. 5.4. Instructiunea if. Forma generala: if (expresie) instructiune1; else instructiune2; Se evalueaza expresia; daca este diferita de 0 se executa instructiune1 altfel instructiune2 O forma simplificata are instructiune2 vida: if (expresie) instructiune;
În problemele de clasificare se întâlnesc decizii de forma: if (expr1) instr1; else if (expr2) instr2; … else instrn; De exemplu dorim sa contorizam caracterele citite pe categorii: litere mari, litere mici, cifre, linii si altele: if (c == ‘n’) linii++; else if (c>=’a’ && c<=’z’) lmici++; else if (c>=’A’ && c<=’Z’) lmari++; else if (c>=’0’ && c<=’9’) cifre++; else altele++; Exemplul 2 Sa se scrie un program pentru rezolvarea cu discutie a ecuatiei de grad 2: ax2+bx+c=0 folosind operatorul conditional. #include <stdio.h> #include <math.h> void main(void){ float a, b, c, d; printf(“Introduceti coeficientii ecuatiei: a,b,cn”); scanf("%f %f %f", &a,&b,&c); a? d=b*b-4*a*c, d>=0? printf("x1=%ftx2=%fn",(-b- sqrt(d))/2/a, (-b+sqrt(d))/2/a): printf("x1=%f+i*%ftx2=%f-i*%fn",-b/2/a, sqrt(-d)/2/a,-b/2/a, sqrt(-d)/2/a)): b? printf("x=%fn",-b/2/a): c? printf("0 solutiin"): printf("identitaten");
Preview document
Conținut arhivă zip
- Programarea Calculatoarelor.pdf