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): modi carea stării progra-
mului.
Controlul uxului ( ow 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 de niție a unei variabile este zona din program în care o variabilă
rămâne de nită. 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 identi catori 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 nal 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 # Programarea Calculatoarelor - Limbaje
fl
fi
fl
fi
fi
fl
fi
fi
[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 oat, 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 de niț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: %f",max);
return 0;
}
3. Instrucțiunea switch fără break
! Adriana Stan, Ligia Chiorean, Mircea Vaida & Programarea Calculatoarelor - Limbaje
#include <stdio>
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 con rmarea continuării după ecare număr introdus
#include <stdio.h>
int main(void){
int c, suma=0;
char key;
do{
printf("Introduceti un numar: ");
scanf("%d",&c);
suma += c;
printf("Continuati ? (d/n) \n");
scanf(" %c", &key);
}
while (!((key == 'n')||(key=='N')));
printf("Suma numerelor introduse este %d\n", suma);
}
5. Determinare număr prim (fără optimizare)
! Adriana Stan, Ligia Chiorean, Mircea Vaida ' Programarea Calculatoarelor - Limbaje
fi
fi
#include <stdio.h>
int NrPrim(int);
int main(void){
int nr;
printf("\nIntroduceti un numar : ");
scanf("%d", &nr);
if(NrPrim(nr) > 0)
printf("\nNumarul %d este prim\n", nr);
else
printf("\nNumarul %d nu este prim\n", nr);
}
#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 veri caţi dacă diagonala dreptunghiului este egală cu c.
2. Să se scrie un program care veri că 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. A ş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 a ş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 a şează pe cele diviz-
ibile cu 3.
15. Să se scrie un program care citeşte de la tastatură un caracter, pe care îl a ş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 a şeze media numerelor impare pozitive.