Sunteți pe pagina 1din 7

Ce stim pana acum In cursul de astazi

• Tipuri de date • Instructiunea simpla

• Functii de intrare/iesire • Instructiunea compusa

• Operatori • Instructiuni conditionale (if, switch)


• Instructiuni repetitive (while)

PCLP5- 1 PCLP5- 2

Instructiuni (1) Instructiuni (2)


• structuri fundamentale: secventa, selectia, iteratia 3. Instructiunea compusa
{ instructiune;
1. Instructiunea vida instructiune;
; …
- utilizata cand se cere prezenta unei instr. dar nu instructiune;
}
trebuie sa se execute nimic - utilizata cand se cere prezenta unei instr. si procesul de
int x,y;
2. Instructiunea simpla calcul necesita mai multe instr.
x=10*y+23;
- instructiunea expresie Exemplu: permutarea valorilor a doua variabile.
y++; { t= y;
expresie;
- instructiunea de apel a unei functii y=x;
x=t;
printf(″Apel de functie\n″); x; ? }
PCLP5- 3 PCLP5- 4

1
Instructiuni conditionale (1) Instructiuni conditionale (2)
A. Instructiunea if
T
conditie
F Exemplu: Sa se scrie un
if(conditie) program care citeste un START

instructiune1; instructiune1 instructiune2


numar intreg de la consola Citeste n
else
instructiune2; si afiseaza FALS daca A F
n!= 0
numarul este zero si
sau Scrie Scrie
T F
ADEVARAT daca numarul “ADEVARAT” “FALS”
conditie
if(conditie) este diferit de zero.
instructiune; instructiune
STOP

PCLP5- 5 PCLP5- 6

Instructiuni conditionale (3) Instructiuni conditionale (4)


#include <stdio.h>
#include <conio.h> START

void main()
{ int n; Citeste n

printf(″introduceti un numar intreg:″); Un alt mod de rezolvare a F A


scanf(″%d″, &n);
n == 0
aceleiasi probleme !!!
if(n!=0) Scrie
“ADEVARAT”
Scrie
“FALS”
printf(″ADEVARAT\n″);
else
printf(″FALS\n″); STOP

getch();
}
PCLP5- 7 PCLP5- 8

2
Instructiuni conditionale (5) Instructiuni conditionale (6)
START
#include <stdio.h> Exemplu: Sa se scrie un program
#include <conio.h> care calculeaza valoarea Citeste x
void main()
{ int n; functiei f pentru o valoare A
x<2
F

printf(″introduceti un numar intreg:″); introdusa de la consola, f = x-2


f=2*x*x-4*x+10
scanf(″%d″, &n); unde:
if(n==0)
printf(″FALS\n″); 2x2-4x+10, daca x < 2; Scrie
f
else f(x)=
x-2, daca x ≥ 2.
printf(″ADEVARAT\n″); STOP
getch();
}
PCLP5- 9 PCLP5- 10

Instructiuni conditionale (7) Instructiuni conditionale (8)


#include <stdio.h> START

#include <conio.h> Exemplu: Rezolvarea


void main() ecuatiei de gradul I. Citeste a, b

{ double x, f; A
a!=0
F

printf(″introduceti valoarea lui x:″); ax + b = 0 =>


scanf(″%lf″, &x); -b/a, daca a≠0
x=-b/a A
b == 0
F

if(x<2) x= nedeterminat, daca a=b=0 Scrie Scrie “sol. Scrie “sol.

f = 2*x*x-4*x+10; inexistent, daca a=0, b≠0


x nedeterminata” inexistenta”

else
f = x-2;
printf(″x=%.2lf, f(x)=%.2lf\n″, x, f);
getch(); STOP
}
PCLP5- 11 PCLP5- 12

3
Instructiuni conditionale (9) Instructiuni conditionale (10)
#include <stdio.h>
#include <conio.h> 2. Instructiunea switch
void main() switch(expresie)
{ double a, b, x;
printf(″introduceti coeficientii ecuatiei:″);
{ case c1: instructiune;
scanf(″%lf %lf″, &a, &b); break;
if(a!=0) case c2: instructiune;
{ x=-b/a; break; Ce se intampla daca
printf(″Solutia ecuatiei %.2lfx+%.2lf=0 este %lf\n″, a, b, x); …
}else lipseste un break?
case cn: instructiune;
if(b==0)
printf(″Solutia ecuatiei este nedeterminata\n″);
break;
else default: instructiune;
printf(″Ecuatia nu are solutie\n″); }
getch();
}
PCLP5- 13 PCLP5- 14

Instructiuni conditionale (11) Instructiuni conditionale (12)


Exemplul 1: Se citeste un numar de la 1 la7 si se afiseaza ziua sapt. Exemplul 2: Se citeste operatia dorita si doi operanzi reali. Sa se
evalueze expresia respectiva. switch(op)
#include <stdio.h> case 4: printf(″joi\n″);
#include <conio.h> #include <stdio.h> { case ′+′: a += b;
break; break;
case 5: printf(″vineri\n″); #include <conio.h>
void main() case ′-′: a -= b;
{ int zi; break; break;
void main()
printf(″introduceti nr. zilei:″); case 6: printf(″sambata\n″);
{ char op; case ′*′: a *= b;
scanf(″%d″, &zi); break; double a,b; break;
switch(zi) case 7: printf(″duminica\n″); printf(″Operatia dorita (+,-,*,/): ″); case ′/′: a /= b;
{ case 1: printf(″luni\n″); break; op = getchar(); break;
break; default: printf (″nr. nu este in printf(″Introduceti operanzii: ″); default: printf (″operator eronat\n″);
case 2: printf(″marti\n″); intervalul [1,7]\n″); scanf(″%lf %lf″, &a, &b); }
break; } printf(″\n%.2lf%c%.2lf=″, a, op, b); printf(″%.2lf\n″, a);
case 3: printf(″miercuri\n″); getch(); getch();
break; } }
PCLP5- 15 PCLP5- 16

4
Instructiuni repetitive - while (1) Instructiuni repetitive - while (2)
Exemplul 1: Sa se calculeze si sa se afiseze valoarea
polinomului p(x)= 3x2+7x-10 pentru x=1,2,3,…,10.
while(expresie)
instructiune; #include <stdio.h>
F
expresie A void main()
{ int x;
instructiune x=1;
while(x <= 10)
{ printf(″x = %d\tp(x)=%d\n″, x, 3*x*x+7*x-10);
x++;
}
!!!bucle infinite }
PCLP5- 17 PCLP5- 18

Instructiuni repetitive - while (3) Instructiuni repetitive - while (4)


x=1 p(x)=0 #include <stdio.h>
x=2 p(x)=16 void main()
x=3 p(x)=38 { int x=0;
x=4 p(x)=66 x=1; while(++x <= 10)
x=5 p(x)=100 while(x <= 10) printf(″x = %d\tp(x)=%d\n″, x, 3*x*x+7*x-10);
x=6 p(x)=140 { printf(″x = %d\tp(x)=%d\n″,\ }
x=7 p(x)=186 x, 3*x*x+7*x-10); sau
x=8 p(x)=238 x++; #include <stdio.h>
x=9 p(x)=296 } void main()
x=10 p(x)=360 { int x=0;
while(x++ < 10)
printf(″x = %d\tp(x)=%d\n″, x, 3*x*x+7*x-10);
}
PCLP5- 19 PCLP5- 20

5
Instructiuni repetitive - while (5) Instructiuni repetitive - while (6)
Exemplul 2: Sa se afiseze valorile functiei sin(x) cu • Directiva #define
pasul de 1 grad sexagesimal xє[0,360).
#define nume succesiune_de_caractere
#include <stdio.h>
#include <math.h> - substitutii de succesiuni de caractere
#define PI 3.14159265 - la procesare se substitue numele cu sirul de caractere
void main() - succesiunea de caractere poate continua pe mai multe
{ int x;
double pas; randuri (\)
pas = PI/180; - utilizata frecvent pentru definirea constantelor
x = -1;
while(++x < 360)
printf(″sin(%d)=%.16lf\n″, x, sin(x*pas) ); #undef nume
} - dezactiveaza substitutia
PCLP5- 21 PCLP5- 22

Instructiuni repetitive - while (7) Instructiuni repetitive - while (8)


Sa se afiseze doar 30 de linii o data pe ecran. Exemplul 3: Sa se calculeze media aritmetica a
#include <stdio.h>
#include <math.h> numerelor de la 11 la 15.
#include <conio.h>
#define PI 3.14159265 #include <stdio.h>
void main() void main()
{ int x;
double pas; { int numar, suma;
pas = PI/180; numar = 11;
x = -1; !!!! Bucla infinita
while(++x < 360) suma = 0;
{ printf(″sin(%d)=%.16lf\n″, x, sin(x*pas) ); while(numar != 15)
if(x%30 == 0)
{ printf(″Pentru a continua apasati o tasta.″); suma += numar;
getch();
} /* sfarsit if */ printf(″media aritmetica este %.2lf\n″, suma/5.0 );
} /* sfarsit while */ }
} /* sfarsit main */
PCLP5- 23 PCLP5- 24

6
Instructiuni repetitive - while (9)
Modificarea buclei infinite. numar suma
#include <stdio.h> 10 0
11 11
void main() 12 23
{ int numar, suma; 13 36
numar = 10; 14 50
suma = 0; 15 65
while(numar++ != 15) 16
suma += numar;
printf(″media aritmetica este %.2lf\n″, suma/5.0 );
}
PCLP5- 25

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