Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE
Instrucțiunile (en. statements) reprezintă pașii efectuați de un program. Fiecare instrucțiune
este un pas computațional ce are un anumit efect colateral (side-effect): modificarea stării progra-
mului.
Controlul fluxului (flow control) este ordinea de execuție a intrucțiunilor. Dacă nu sunt in-
strucțiuni repetitive sau de salt, programul se execută secvențial.
Domeniul (namespace) de definiție a unei variabile este zona din program în care o variabilă
rămâne definită. Domeniul de valabilitate al variabilelor declarate este limitat la bloc . Timpul de
viață al unei varibile este dat de durata de execuție a blocului Dacă anumiți identificatori au fost
declarați anterior, atunci declarația anterioară este salvată pe durata blocului, după care îşi reia
sensul său la ieșirea din bloc.
INSTRUCȚIUNEA IF
if(expresie){
set_instr1;
}
[else{
set_instr2;
}]
expresie are o valoare de tip scalar. Dacă expresie are valoare nenulă (adevarată) se execută
instr1, altfel se execută instr2. Ramura else poate să lipsească! Acoladele pot să lipsească atunci
când e o singură instrucțiune executată! !!!
Doar o ramură este executată. La final se trece la execuția instrucțiunii ce urmează după if-else,
cu excepția instrucțiunilor if-else ce conțin instrucțiunile break, continue sau goto.
INSTRUCȚIUNEA SWITCH
switch(expresie)
{
case const1 :
set_instructiuni1;
[break];
case const2 :
set_instructiuni2;
[break;]
...
© Adriana Stan, Ligia Chiorean, Mircea Vaida 1 Programarea Calculatoarelor - Limbaje
[default:]
set_instructiuni
//[break;]
}
Permite selecția multiplă dacă aceasta e controlată de valoarea unei singure expresii. expresie
are o valoare întreagă sau constantă. Nu poate fi float, double sau de tip structurat. const sunt
constante cu valori distincte ale rezultatului expresiei. break determină ieșirea din instrucțiunea
switch. Absența instrucțiunii break alterează funcționarea switch. Pot exista oricâte ramuri case.
Ramura default se execută dacă nu s-a intrat pe nici o ramură de case și poate să lipsească!!
INSTRUCȚIUNEA FOR
for (initializare; verificare; actualizare){
instructiuni;
}
INSTRUCȚIUNEA WHILE
while (expresie){
instructiuni;
}
INSTRUCȚIUNEA DO...WHILE
do {
set_instructiuni
} while (expresie)
Se folosește: în instrucțiunea switch pentru a marca încheierea unei ramuri case și ieșirea din
instrucțiune; în instrucțiuni repetitive pentru ieșiri forțate, indiferent de valoare condiției.
NOTĂ: în cazul instrucțiunilor imbricate, break forțează ieșirea doar din bucla curentă, nu și cea
externă.
INSTRUCȚIUNEA CONTINUE
continue
INSTRUCȚIUNEA RETURN
return;
return (expresie);
Termină execuția unei funcții şi dă controlul funcției apelante. Poate să apară oriunde în blocul
unei funcții. Funcțiile ce returnează o valoare trebuie să includă neapărat instrucțiunea return. ex-
presie trebuie să aibă tipul declarat în prototipul funcției. Valoarea expresiei (cu unele conversii im-
plicite) este transmisă funcției apelante. Funcția apelantă poate neglija rezultatul returnat de
funcția apelată.
EXEMPLE
1. Domeniul de definiție a variabilelor
#include <stdio.h>
int main(void){
int a = 3, b =7, c=22, max = 0;
if (a>b)
if (a>c)
max = a;
else
max = c;
else if (b>c)
max = b;
else
max = c;
printf("Maximul este: “,max);
return 0;
}
3. Instrucțiunea switch fără break
int main(void){
int a = 2;
switch (a) {
case 1:
a = a+4;
break;
case 2:
a = a+3;
case 3:
a = a+2;
break;
}
printf("a este: %d",a);
}
4. Adună valorile date de la tastatură cu confirmarea continuării după fiecare număr introdus
#include <stdio.h>
int main(void){
int c, suma=0;
int key;
do{
printf("Introduceti un numar: ");
scanf("%d",&c);
suma += c;
printf("Continuati ? (d/n) \n");
key =_getch();
}
while (!((key == 'n')||(key=='N')));
printf("Suma numerelor introduse este %d\n", suma);
}
5. Determinare număr prim (fără optimizare)
#include <stdio.h>
int main(void){
int contor = 100000;
while (contor--);
}
7. Exemplu instrucțiunea break
int main(void){
for (int i=0; i<5; i++){
if (i==3)
break;
for (int j=0; j<3; j++){
if (j == 2)
break;
printf("%d %d", i,j);
}
}
}
8. Exemplu instrucțiunea continue
#include <stdio.h>
int main(void){
int i = 10;
while (i>=0){
if (i%2){
i--;
continue;
}
printf("%d", i);
i--;
}
TEME
1. Se citesc trei numere de la tastatură (a, b şi c). Să se determine aria dreptunghiului ale cărui
laturi sunt a şi b şi verificaţi dacă diagonala dreptunghiului este egală cu c.
2. Să se scrie un program care verifică dacă un număr citit de la tastatură este pătrat perfect.
8. Să se scrie un program care determină câtul împărţirii a doi întregi folosind scăderi succesive.
10. Să se scrie un program care determină numărul de cifre care compun un număr întreg citit de
la tastatură.
11. Să se scrie un program care citeşte de la tastatură n numere întregi. Afişaţi toate numerele
impare din şir.
12. Să se citească un număr întreg n de la tastatură. Se citesc apoi numere reale, până când
suma lor depăşeşte valoarea lui n. Să se afişeze suma numerelor citite, cu o precizie de 2 zeci-
male şi numărul lor (câte s-au introdus).
13. Să se scrie un program care determină cmmmc a două numere citite de la tastatură.
14. Scrieţi un program care citeşte n numere întregi de la tastatură şi le afişează pe cele diviz-
ibile cu 3.
15. Să se scrie un program care citeşte de la tastatură un caracter, pe care îl afişează pe n rân-
duri, câte n caractere pe un rând.
16. Să se scrie o aplicaţie C în care se introduc de la tastatură numere întregi, până ce utiliza-
torul apasă tasta <Esc>. Să se determine şi să se afişeze media numerelor impare pozitive.