Sunteți pe pagina 1din 33

Instrucțiuni

Instrucțiuni
Instrucţiunea reprezintă o unitate de îndeplinire a programului. Instrucţiuni pot fi simple,
compuse și blocuri.
Instrucțiuni simple
Simplă se numeşte instrucţiunea, care nu conţine în componenţa sa o altă instrucţiune. La
instrucţiunile simple se referă:
• instrucţiunea – expresie
• instrucţiunea continuării continue
• instrucţiunea de terminare break
• instrucţiunea de întoarcere return
• instrucţiunea de salt necondiţionat goto
Instrucțiuni Compuse
Compusă se numeşte instrucţiunea, ce conţine în componenţa sa alte instrucţiuni. La
instrucţiunile compuse se referă:
• instrucţiunea condiţională if – else
• instrucţiunea de selecţie switch
• instrucţiunile ciclului for, while, do while
Instrucțiuni bloc
Bloc – se numeşte un şir de instrucţiuni luate în acolade ({}). Instrucţiunile blocului se
îndeplinesc consecutiv în ordinea înscrierii lor în interiorul blocului. La începutul blocului pot fi
descrise variabilele interioare. În aşa caz se spune, că aceste variabile sunt localizate în interiorul
blocului, există şi lucrează numai în interiorul blocului şi se pierd în afara lui.
Instrucţiuni etichetate (instrucţiunea goto)
Instrucţiunile etichetate posedă etichete ca prefixe şi au forma:
etichetă: instrucţiune;

Vorbind la general instrucţiunea goto are următorul format:


goto etichetă

etichetă: instrucţiune;
Instrucţiunea goto
La întâlnirea instrucţiunii goto, se realizează un salt la instrucţiunea prefixată de etichetă
Exemplu:
#include <stdio.h>
void main(void)
{
int nr=1;
eticheta: printf(”%d”, nr++);
...
goto eticheta;
}
Instrucţiuni expresie
Cele mai multe instrucţiuni sunt instrucţiunile expresie, care au forma: [ expresie ];
Deci, o instrucţiune expresie constă dintr-o expresie urmată de caracterul ";".

Exemplu: a = b * c + 3;
printf(“Hello World !”);
Instrucţiuni de selecţie. Instrucţiunea if
Forma generală a instrucțiunii if:

if (conditie) instrucțiune1;
else instrucțiune2;

Se interpretează în următorul mod: Dacă condiție este adevărată adică 1 se execută instrucțiune1
dacă este falsă adică 0 se execută instrucțiune2.
Instrucţiunea if

false
If
true

Block of code
Instrucţiunea if
Exemplu:

#include <stdio.h>
int main (void) {
int x, y;
printf("Introduceți două numere întregi: \n");
scanf ("%d %d", &x, &y);
if (x > y)
printf ("Cel mai mare este : %d\n",x);
else
printf("Cel mai mare este : %d\n", y);
return 0;
}
Instrucţiuni de selecţie multiplă: if - else if
if (condiție1)
instrucțiune1;
else if (condiție2)
instrucțiune2;
else if (condiție3)
instrucțiune3;
................
else if (condițieN)
instrucțiuneN;
else
instrucțiuneN+1;
Instrucţiuni if - else
false
If
true
else
Block of code

Block of code
Instrucţiuni if - else if
# include <stdio.h>
# include <conio.h>
void main(void) {
const float fact = 2.54;
float x,in,cm;
char ch = 0;
printf ("\nIntroduceti numarul: \n");
scanf("%f",&x);
printf("\nIntroduceti unitatea: \n");
ch = getche(); /* se introduce un caracter de la tastatura care se afiseaza pe ecran */
Instrucţiuni if - else if
if (ch == 'i') {

in = x;
cm = x * fact; }
else if(ch == 'c') {
in = x/fact;
cm = x; }
else in = cm = 0;
printf("\n%5.2f in = %5.2f cm \n",in,cm);
}
Instrucţiunea switch
Forma generală a instrucţiunii switch este:
switch (variabila) {
case constanta1 :
secventa_instructiuni_1
break;
...
case constantaN :
secventa_instructiuni_N
break;
default :
secventa_instructiuni_N+1
}
Instrucţiunea switch
Exemplu:
# include <stdio.h>
# include <conio.h>
void main(void) {
const float fact = 2.54;
float x, in, cm;
char ch = 0;
printf ("\nIntroduceti numarul: \n");
scanf("%f", &x);
printf("\nIntroduceti unitatea: \n");
ch = getche();
Instrucţiunea switch
switch(ch) {

case 'i': in = x; cm = x * fact;


break;
case 'c': in = x/fact;
cm = x;
break;
default: in = cm = 0;
break; }
printf("\n%5.2f in = %5.2f cm \n",in,cm);
}
Instrucţiuni repetitive. Instrucţiunea for
Forma generală a instrucţiunii for este:
for (inițializare; condiție; incrementare)
instrucțiune; 
unde:
- initializare este o instrucţiune de atribuire utilizată pentru iniţializarea variabilei de control a
ciclului. Nu există nici o restricţie privitoare la tipul său;
- condiţie este o expresie relaţională care se testează înaintea fiecărei iteraţii: dacă condiţia este
adevărată (diferită de 0), ciclul se continuă; dacă condiţia este falsă (egală cu 0), instrucţiunea
for se încheie;
- incrementare se evaluează după fiecare iteraţie specificând astfel reiniţializarea ciclului.
Instrucţiunea for
i=0 Init

i <= 100 false


cond

print() true

Block of code

i++
Increment
Instrucţiunea for
Exemplu: for (i = 1; i <= 100; i++) printf("%d ", x);
for (i =100; i > 0; i--) printf("%d", x);
Instrucţiunea while
Forma generală a instrucţiunii repetitive while este:
while (condiție)
instrucțiune;
unde instrucțiunea se execută atât timp cât este valabilă condiția
Instrucţiunea while
int i = 1;
while(i <= 100)
{
printf(“%d”, i);
i++;
}
Instrucţiunea while

i <= 100 false


cond

true

Block of code
Instrucţiunea do-while
Forma generală a buclei do-while este:
do {
instrucțiune;
} while (condiție);
unde mai întâi se execută instrucțiunea apoi se verifică condiția și dacă mai este valabilă
condiția se mai repetă instrucțiunea.
Instrucţiunea do-while
int i = 1;
do {
printf(“%d”, i);
i++;
} while(i <= 100)
Instrucţiunea do-while

Block of code

true
cond
i <= 100
false
Instrucţiunea break
Instrucţiunea break are două utilizări. Prima utilizare constă în terminarea unui case în cadrul
instrucţiunii switch. A doua utilizare constă în terminarea imediată a unui ciclu.
Exemplu:
int t;
for (t = 0; t < 100; t++) {
printf (" %3d ", t);
if (t == 10) break;
}
Instrucţiunea continue
Instrucţiunea continue, executată într-un ciclu, determină oprirea iteraţiei curente şi asigură trecerea
imediată la iteraţia următoare.
Exemplu:
# include <stdio.h>
void main (void)
{ int x;
for (x = 0; x < 100; x++) {
if (x % 2) continue;
printf (" %d ", x); }
}
Bucle încuibate
Când o buclă este introdusă în altă buclă, bucla interioară se spune a fi inclusă (nested, încuibată) în bucla
exterioară.
Exemplu:
# include <stdio.h>
void main (void)
{ int i, j, k, p;
printf ("i i^2 i^3 i^4 \n ");
for (i = 1; i < 10; i++) {
for (j = 1; i < 5; j++) {
p = 1;
for (k = 1; i < j; k++)
p = p * i;
printf (" %9d ", p); }
printf (" \n "); }
}
Rezultat:
i i^2 i^3 i^4
1 1 1 1
2 4 8 16
3 9 27 81
...........
9 81 729 6561
Laborator
1. Să se determine dacă numărul introdus de la tastaură este par sau impar, utilizând if-else.
2. Să se calculeze media aritmetică a primelor 100 numere, folosind cele 3 cicluri: for, while, do
while.
Exerciții individuale
1. Să se elaboreze un semafor utilizând instrucțiunea if-else.
2. Să se afișeze mesajul ”Limbajul C e foarte interesant!” de 100 de ori, utilizând cel 3 cicluri:
for, while, do while.

S-ar putea să vă placă și