int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o...

36
Instructiuni Instrucţiune = şir de cuvinte cheie cu sintaxa corespunzătoare sau de expresii evaluabile terminat cu punct şi virgulă ; Sintaxa: cuvinte cheie sau/şi expresii ; Exemplu: int a = 5; a += 10; int b; b = a + 100;

Transcript of int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o...

Page 1: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instructiuni

Instrucţiune = şir de cuvinte cheie cu sintaxa corespunzătoare sau de expresii evaluabile terminat cu punct şi virgulă ;

Sintaxa: cuvinte cheie sau/şi expresii ;

Exemplu:

int a = 5;

a += 10;

int b;

b = a + 100;

Page 2: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiune compusă (bloc de instrucţiuni) = succesiune de instrucţiuni incluse între acolade { }.

poate contine (oriunde in bloc) declaratii/definitiivariabile locale (ce vor exista numai în interiorul aceluibloc)

Sintaxa: { [lista declaraţii variabile locale ]

instrucţiune_1 . . . . . . . . . . . . . . .

instrucţiune_n[ lista declaraţii variabile locale ] instrucţiune_m. . . . . . . . . . .

}

Observatie: Blocul de instrucţiuni se foloseşte acolo unde sintaxa limbajului aşteptă o singură instrucţiune, iar utilizatorul doreşte să folosească mai multe

Instructiuni

Page 3: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea goto

Instructiune de salt neconditionat = se intrerupe executareasecventiala (la rand) a instructiunilor si se trece direct, fara alta conditie, la executarea instructiunii precedata de eticheta.

Sintaxa: goto etichetă;

. . . . . . . . . . .

etichetă: instrucţiune

Observatie: Instrucţiunea goto trebuie evitată, pe cât este posibil,

deoarece prin salturile pe care le introduce face ca urmărirea şi depanarea unui program să se facă mai greu

Instructiuni

Page 4: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea vida ;

nu are nici un efect.

se foloseste în cazul în care sintaxa cere o instrucţiune, iar utilizatorul nu doreşte să folosească una.

Instructiuni

Page 5: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiuni de decizie

Folosite pentru ramificarea caii de executie a programului în funcție de anumite condiții.

Instructiuni

Page 6: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea if

Sintaxa: if (expresie)

instrucţiune_1[compusă]else

instrucţiune_2[compusă]

Efect: dacă expresie este adevărată atunci

execută instrucţiune_1 altfel

execută instrucţiune_2

Instrucțiuni. Instrucțiuni de decizie

Page 7: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea if

expresie trebuie sa ofere ca rezultat o valoare logică, în caz contraracesta este convertit la o valoare logica cu regula cunoscuta (0 = false)

Exemplu 1:

float a, b;

cin>>a>>b;

if (b==0) // conditia b este un numar real

cout<<"Numitor zero";

else

cout<<"Rez=”<<a/b<<endl;

Instrucțiuni. Instrucțiuni de decizie

Page 8: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea if

Exemplu 2:

char a;

cin>>a;

if (a>='a' && a<='z')

cout<<a<<" este litera mica"<<endl;

else if (a>='A' && a<='Z')

cout<<a<<" este majuscula"<<endl;

else

cout<<a<<" nu este litera"<<endl;

Instructiuni. Instrucțiuni de decizie.

Page 9: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea if

Observatie: Înlănţuirea instrucţiunilor if-else introduce

ambiguitate referitor la împerecherea blocurilor if cu cele else.

Regula este ca o ramură else se asociază întotdeauna

cu if-ul imediat anterior.

Exemplu : (scrierea neidentata a fost voită)

if (n>0)

if (a>b)

z=a ;

else

z=b ;

if (n>0) {

if(a>b)

z=a; }

else

z=b;

Instructiuni. Instrucțiuni de decizie.

Page 10: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea if

Tema:

int main()

{ int a=0,b=0,x;

cin>>x; // de ex. x=5 apoi x=0

if((a=x)||(b=x+2))

cout<<"a= " << a <<"b= " << b << endl);

cout<<"a= " << a <<"b= " << b << endl);

return 0;

}

Instructiuni. Instrucțiuni de decizie.

Page 11: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea switch

pentru ramificăre multipla = în urma evaluării unei expresii, în funcţie de rezultat, putem avea mai multe alternative de urmat

Sintaxa:switch (expresie)

{ case constanta_1: [ instrucţiune_1 [compusă] ] [ break; ]

case constanta_2: [ instrucţiune_2 [compusă] ] [ break; ]

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

case constanta_n: [ instrucţiune_2 [compusă] ] [ break; ]

[ default: instrucţiune [compusă] ]

}

Instructiuni. Instrucțiuni de decizie.

Page 12: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea switch Sintaxa:switch (expresie)

{ case constanta_1: [ instrucţiune_1_1; ]

[ instrucţiune_1_2; ]

[ . . . . . . . . ]

[ break; ]

case constanta_2: [ instrucţiune_2_1; ]

[ instrucţiune_2_2; ]

[ . . . . . . . . . ]

[ break; ]

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

case constanta_n: [ instrucţiune_n_1; ]

[ instrucţiune_n_2; ]

[ . . . . . . . . . ]

[ break; ]

default:[ instrucţiune_d_1;]

[ instrucţiune_n_2;]

[ . . . . . . . . . ]

}

Instructiuni. Instrucțiuni de decizie.

Page 13: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea switch

Observație:

expresie obligatoriu = rezultat de tip întreg (sau caracter).

Efect:

daca rezultatul = una dintre

constanta_1, constanta_2,…, constanta_n,

atunci

executa ramura case din dreptul constantei respective şi

continuă până la întâlnirea primei comenzi

break => iese din blocul instrucţiunii switch.

dacă rezultat expresiei nu se regăseşte printre constante,

atunci

execută ramura default, dacă există!!

Instructiuni. Instrucțiuni de decizie.

Page 14: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea switch Observatii:

Dacă nu avem break după execuţia instrucţiunii desemnate de rezultatul expresie, atunci se vor executa şi instrucţiunile ce vor

urma, deci cele asociate următoarelor constante, până la întâlnirea primului break sau a ultimei acolade }.

Exemplu: Numararea inversa de la n (intre 1 si 5) la 1

int a;

cin>>a;

switch (a)

{ case 5: cout<<5<<endl;

case 4: cout<<4<<endl;

case 3: cout<<3<<endl;

case 2: cout<<2<<endl;

case 1: cout<<1<<endl;

break; // TREBUIE ???

default: cout<<” Numar intre 1 si 5!!”;

}

Instructiuni. Instrucțiuni de decizie.

Page 15: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea switch Observatii:

Instrucţiunea asociată unei constante poate să lipsească, caz în care va fi executată instrucţiunea etichetei imediat următoare.

Astfel, mai multe constante conduc la execuţia aceleiaşi instrucţiuni

Exemplu: Determină numere pare/impare între 1 si 6

int a;

cin>>a;

switch (a)

{ case 2:

case 4:

case 6: cout<<”Numar par”<<endl;

break;

case 1:

case 3:

case 5: cout<<”Numar impar”<<endl;

break; // TREBUIE ???

default: cout<<” Numar intre 1 si 6!!”;

Instructiuni. Instrucțiuni de decizie.

Page 16: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instructiuni

Instrucţiuni de buclare (ciclare)

folosite in cazul in care un bloc de instructiuni trebuie executat de mai multe ori, relativ la un anumit criteriu

Page 17: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea while = ciclu cu test iniţial

Sintaxa: while(expresie)

instrucţiune [compusă]

Efect: cât timp expresie este adevărată

execută instrucţiune [compusă]

Page 18: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea while

Observatii:

1. Datorită testarii înainte intrarii in ciclu:

daca expresia este falsă de la început

atunci instrucţiunea nu se execute niciodată.

2. Dacă în locul expresiei se pune valoarea 1 se obţine un ciclu infinit.

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Page 19: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea while

Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor

int main()

{ int nr = 0, suma = 0; //initializare nr si suma

while( nr < 10 ) //cit timp nr e mai mic decat 10

{ suma += nr;

cout<<"nr="<<nr++<<"suma="<<suma<<endl;

}

return 0;

}

Tema: se poate?

while( nr < 10)

cout<<"nr="<<nr++<<"suma="<<suma+=nr<<endl;

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Page 20: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea while

Exemplu: determina tipul unui caracter (litera/cifra), ciclu infinit

int main()

{ char a;

while(1)

{ cin>>a;

if(a>=‘a’ && a<=‘z’ || a>=‘A’ && A<=‘Z’)

cout << ”Litera” << endl;

else if(a>=‘0’ && a<=‘9’)

cout<<”Cifra”<<endl;

else if(a == 27)

return 0;

else

cout<<”Caracter special”;

}

return 0;

}

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Page 21: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucţiunea while

Exemplu: calcul n factorial

int main()

{ int nr;

long fact;

while(1)

{ cout<<“nr= ”;

cin >> nr;

fact = 1;

while(nr)

fact = fact * nr--;

cout << “factorial = ” << fact << endl;

}

return 0;

}

Tema: Ce valori se pot introduce pentru nr ?

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Page 22: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea do while = ciclu cu test final

Sintaxa: do

instrucţiune [compusă]

while(expresie);

Efect: execută

instrucţiune [compusă]

cât timp expresie este adevărată

Observație: Condiția de ieșire din ciclu este

expresie este falsă

Page 23: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea do while

Observatii:

1. Datorită testarii la sfârșitul ciclului, chiar daca la prima testare expersie este falsă, blocul de instrucțiuni se execută cel puțin o

data:

execută

instrucţiune [compusă]

cât timp ... Dacă expersie este falsă, se iese

din ciclu abia la sfârșit dupa execiția blocului

2. Dacă în locul expresiei se pune valoarea 1 se obţine un ciclu infinit.

Page 24: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea do while

Exemplu: Program care aşteptă introducerea de la tastatură a anumitor caractere, de exemplu d sau D

int main()

{ char c;

cout<<"Doriti sa continuati? (da/nu) ");

do

c = getch();

while( c!='d' && c!='D' );

cout<<"Programul s-a terminat!!"<<endl;

}

Page 25: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Sintaxa: for(expr_1; expr_2; expr_3)

instrucţiune [compusă]

Efect: execută expr_1;

cât timp expr_2 este adevărată

execută { instrucţiune [compusă]

expr_3;

}

Observație: Condiția de ieșire din ciclu este

expr_2 este falsă

Page 26: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Observație: Față de alte limbaje, în C++, instrucțiunea for are un

caracter mai general, în sensul ca cele 3 expresii pot fi de orice formă, evaluarea lor se face în ordinea descrisă anterior

Page 27: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Observație: Față de alte limbaje, în C++, instrucțiunea for are un

caracter mai general, în sensul ca cele 3 expresii pot fi de orice formă, evaluarea lor se face în ordinea descrisă anterior

În cazul particular: ciclu cu contor, sintaxa devine:

Sintaxa: for(expr_init; expr_stop; expr_incr)

instrucţiune [compusă]

în care: expr_init se folosește pentru inițializarea contorului

expr_stop verifică dacă contorul a ajuns la sfârșitul

domeniului de variație

expr_incr actualizează contorul, de obicei îl

incrementează

Page 28: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Exemplu: Folosirea unui ciclu for (cu contor )pentru afișarea

numerelor de la 1 la 10

int main()

{ int i;

for( i = 1; i < 11; i++ )

cout << i << endl;

}

Page 29: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Observații: Ciclul infinit se obține când lipsește expr_2 , deci cu

sintaxa:

for( expr_1; ;expr_3 )

Caz particular, foarte des utilizat:

for( ; ; )

Page 30: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Exemplu: Funcţie pentru calcularea factorialului

int main()

{ int f=1;

int n=10;

for ( ; n; )

f *= n--;

return 0;

}

Page 31: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Exemplu: Program care citeşte o frază de la tastatură, terminarea ei fiinddeterminată de apăsarea tastei Escape. În timp ce se introduce textul se numără de câte ori apare caracterului a

int main()

{ char c; int i;

for(i=0,c=getche();c!='\x1b';i+=c=='a'?1:0,c=getche());

cout << endl << "S-au introduse " << i << " litere a";

return 0;

}

Page 32: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni. Instrucțiuni de bulcare (ciclare)

Instrucţiunea for

Exemplu: Program care tipăreşte tabla înmulţirii. Folosește cicluri imbricate

int main()

{ int col, rand;

cout << endl; //linie noua

for(rand=1; rand<13; rand++) //bucla externa

{ for(col=1; col<13; col++) //bucla interna

cout << col*rand << “ “; //tipareste produsul

cout << endl; //linie noua

}

}

Page 33: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni.

Instrucţiunea break

Sintaxa: break;

Utilizare: oprirea execuţiei unui ciclu într-un anumit moment sau

pentru terminarea unei instrucţiuni switch

Observație: Folosirea instrucţiunii break în ciclurile imbricate

conduce numai la părăsirea ciclului de nivel curent, încare se află instrucțiunea.

Page 34: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni.

Instrucţiunea break

Exemplu / Tema: Ce afișează programul:

int main()

{ int i,k;

i=k=1;

while(i++<10)

{ cout << i << endl;

while( k++ )

{ cout << k << endl;

if ( k == i ) break;

}

}

return 0;

}

Page 35: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni.

Instrucţiunea continue

Sintaxa: continue;

Utilizare: reluarea ciclului de la condiţia de testare, prin urmare nu se

mai execută instrucţiunile din ciclu care se află întreinstrucțiunea continue şi sfârşitul ciclului.

Într-un ciclu for saltul se face la executarea expresiei de

incrementare.

Page 36: int a = 5; a += 10; int b; b = a + 100; · se foloseste în cazul în care sintaxa cere o instrucţiune, ... Exemplu: tipărirea numerele de la 0 la 9 si calcularea sumei lor int

Instrucțiuni.

Instrucţiunea continue

Exemplu:

Program care adună numerele pare introduse de la tastatură până cândsuma depăşeşte 25. Dacă în timp ce se calculează suma ajunge zece, atunci se

reia procesul de la capăt.

int main()

{ int s=0,n;

while(1)

{ cout << “n=”;

cin >> n;

if( s == 10 )

{ s = 0;

continue;

}

s += n%2 ? 0 : n;

if( s > 25 )

break;

}

return 0;

}