Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrare de laborator Nr.2
la Programarea Calculatoarelor
A verificat: lect.univ.
M. Potlog
0
Chişinău 2014
Varianta VII:
Datele iniţiale:
a ln x pentru x - 2 > 0 si a = 0
sin c b
2
x sin( x 1)
F pentru x - 2 < 0 si a≠ 0
b
ax c
cos 2 x
in alte cazuri
Mersul lucrării:
Se cunosc mai multe structuri de algoritmi, şi anume:
Structura liniară
Structura ramificată
Structura iterativă (ciclică)
Ciclul este o parte a algoritmului care poate fi repetată de mai multe ori. Fiecare
ciclu trebuie să aibă condiţie. În dependenţă de aceasta ciclurile se divizează în:
1. ciclu precondiţionat (anterior)
2. ciclu postcondiţionat (posterior)
Pentru crearea ciclurilor se utilizează următoarele 3 instrucţiuni:
Instrucţiunea while
Format:
while (expresie)
instrucţiune
Instrucţiunea se execută repetat atîta timp cît valoarea expresiei este diferită de
zero. Testul are loc înaintea fiecărei execuţii a instrucţiunii. Prin urmare ciclul este
următorul: se testează condiţia din paranteze dacă ea este adevărată, deci expresia
din paranteze are o valoare diferită de zero, se execută corpul instrucţiunii while,
se verifică din nou condiţia, dacă ea este adevărată se execută din nou corpul
instrucţiunii. Cînd condiţia devine falsă, adică valoarea expresiei din paranteze este
1
zero, se face un salt la instrucţiunea de după corpul instrucţiunii while, deci
instrucţiunea while se termină.
Instrucţiunea do
Format:
do instrucţiune while
(expresie);
Instrucţiunea se execută repetat pînă cînd valoarea expresiei devine zero. Testul
are loc după fiecare execuţie a instrucţiunii.
Instrucţiunea for
Format:
for (expresie-1opt; expresie-2opt; expresie-3opt)
instrucţiune
Analiza datelor:
2
Start
clrscr();
Introduceti datele
a,b,c,xi,xf,dx
a,b,c,xi,xf,dx
y=y1;
n=0;
Rezultatele
obtinute
x<=xf
NO YES
x-2<0 && a!=0 x-2>0 && a=0 F = (a+log(x))/(sin(c))-b*b
NO
YES
F = (a*x+c)/(cos(2*x)) F= (x-sin(x+1)/b)
n=n+1
Stop
3
Textul programului in limbajul „C”
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
//Declaram variabilile
float x,a,b,c,xi,xf,dx,F;
int n;
//Curatirea ecranului
clrscr();
//Afisarea propozitiei de dialog si introducerea datelor
printf("Introduceti datele initiale a,b,c,xi,xf,dx \n");
scanf("%f%f%f%f%f%f",&a,&b,&c,&xi,&xf,&dx);
x=xi;
n=0;
printf("Rezultatele obtinute: \n");
//Calcularile
while (x<=xf)
{
if (x-2>0 && a==0)
{F = (a+log(x))/(sin(c))-b*b;}
n=n+1;
x=x+dx;
}
//Retinerea rezultatelor pe ecran
getch();
return 0;
}
4
Rezultatele obtinute:
Am introdus datele:
a=2 , b=4, c=2, xi=2, xf=32, dx=4
1. x=2 f=-12.239
2. x=6 f=23.701
3. x=10 f=78.416
4. x=14 f=-45.789
5. x=18 f=-437.624
6. x=22 f=68.011
7. x=26 f=-490.825
8. x=30 f=-96.597
Concluzie:
În această lucrare am elaborat un program ce conţine procese de calcul cu
cicluri şi ramificaţii realizate cu diferite instrucţiuni posibile. Din rezultatele
obţinute observăm că x se măreşte cu o unitate întrucît xi, adică pasul este 4, pe
cînd variabila de ieşire F îşi modifică valorile doar pîna în momentul cînd x atinge
valoarea 32.
Bibliografie: