Curs 3

You might also like

Download as docx or pdf
Download as docx or pdf
You are on page 1of 7
Operatori logici >» Fie expresia relationala "a < b". Daca valoarea lui a este mai mica decat valoarea lui b, atunci expresia va avea valoarea 1, pe care 0 gandim ca fiind “adevarata’("true’). Daca valoarea lui a este mai mare decat valoarea lui b, atunci expresia va avea valoarea 0, pe care o gandim ca Sind “falsa” ("faise’). » Folosind precedenta operatorilor aritme' "a » Se mai spune cA operatorii && gi || sunt lazy (lenesi). if, if-else > Instructiunea "if-else" este foarte apropiata de instructiunea "if" Forma sa general: if (expresie) instructiunel else instructiune2 ff Ge =< y) else min = yi printf£("Valoarea minima = %f\n", mindz while >» while, for gi do suntcele trei instructiuni repetitive din limbajul C. while (expresie) instructiune instructiunea_urmatoare » Intai se evalueazd expresice. Corpul buclei se executa atata vreme cat expres ie se evalueaza la "true". Terminarea buclei are loc cand expresie ia valoarea zero (adica "false"). In acest punct, controlul se paseaza catre instructiunea_urmatoare. while (i <= 10) eis 5 while() » Exemplu: adunarea numerelor intregi de la 1 la 10. #include main() { while (i<=10) ‘ suma = suma + i; eaitay } printf ("Suma primelor 10 numere intregi este $d\n",suma); , for » Casi while, instructiunea for se foloseste pentru descrierea structurilor iterative (repetitive). for (expresiel; expresie2; expresie3) instructiune instructiunea_urmatoare este semantic echivalenta (ca inteles si ca rezultat) cu expresiel; while (expresie2) { instructiune; expresie3; } instructiunea_urmatoare; for » Se va evalua expresiel (de obicei, aceasta se foloseste pentru initializarea buctei). Apoi, se evalueazi expresie2. Daci aceasta este "true" atunci se executd instruct iune, se evalueaz4 expresie3, si controlul se transmite la fnceputul buclei (unde NU se mai evalueaza iar expres iei). Acest proces continua pana cand expresie2 este 0 (false), punct in care se transmite controlul cdtre instructiunea_urmatoare. factorial=l; for (i = 1; i <= ne its) factorial *- for » Oricare dintre expresiile unei instructiuni for pot lipsi (por lipsi toate!!. Nu pot lipsi cele doua semne “;”. i z suma = 0; for ( i <= 10; i++) » Echivalent: suma for (47 i <= 10; ) suma += itt; » Daca lipseste expresie2, atunci obtinem o bucla infinita. for » Operatorul "," are cea mai mica prioritate dintre toti operatorii din C. Intr-o expresie de forma expresiel , expre se evalueazd expresiel, apoi expresie2. Expresia intoarce valoarea si tipul operandului din dreapta. >» De exemplu dac& a si b sunt intregi, atunci os 0 b= 2 intoarce valoarea 1 de tipul int. » Operatorul "," este deseori folosit in for. for (factorial factorial ns itt) for » Revenim asupra unui exemplu precedent (suma primelor N numere naturale) for (suma = 0, i = 1; i <= nz ++i) suma > se poate scrie, echivalent, in for (suma = 0, i = 1; i <= n; suma += i, do » do poate fi considerata o varianta a instructiunii while. Deosebirea consta in faptul cé pentru while testul se face la inceputul ciclului, iar pentru do la sfarsit. ao instructiune while (expresie); uctiun rmatoare dot scanf("%a", si); }while (i > 0); goto » goto (salt neconditionat) este considerata opusa programiarii structurate. Sfatul general valabil este evitarea acestei instructiuni. 0 instructiune de etichetare are forma: eticheta : instructiune unde eticheta este un identificator. bye: exit(1); etichetal: a= b+ c; break si continue > break si continue intrerup controlul normal al programelor. break va cauza iesirea din bucla in care se afla sau din switch. continue poate aparea numai in for, while sau do. Are rolul de a trasmite controlul la sfarsitul buclei. while (1) { scanf("$1f£", &x); if (x < 0.0) break; print£("$1£\n", sqrt (x)); d while(conter < n) { scant ("$1f", Af (x<0) continue; 8x) 7 +tcontor; suma + }

You might also like