Sunteți pe pagina 1din 6

Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Informatică și Ingineria Sistemelor

RAPORT
Lucrarea de laborator nr.2
la Programarea Calculatoarelor

A efectuat:
st. gr. C-171 A.Miron

A verificat:
dr., conf.univ. M. Kulev

Chişinău -2017
Lucrarea de laborator nr.3

Tema: Programarea algoritmilor cu structură ciclică

Scopul lucrării: Elaborarea schemei block al algoritmului si programului


pentru rezolvarea problemei ce urmeaza.

Condiţia problemei (sarcina de lucru) : Conform variantei individuale de


calculat valorile variabilelor indicate după formulele de calcul şi datele iniţiale
indicate. De introdus datele iniţiale de la tastatură. De afişat rezultatele obţinute pe
ecran.

Varianta 6:
Formulele de calcul:
Daca (h>a), C=1.8*cos2(h)+a;
Daca (h=a), C=1.8*3.14*a*h;
Daca (h<a), C= cos(h)+a*sin2(h);

Mersul lucrării:
Se cunosc mai multe structuri de algoritmi , si anume:
 Structura liniara
 Structura ramificata
 Structura interactiva(ciclica)
Ciclul este o parte a algoritmului care poate fi repetata de mai multe ori .
Fiecare ciclu trebue sa aiba conditie. In dependenta de acesta ciclurile se
divizeaza in:
1. Ciclu preconditionat (anterior)
2. Ciclu postconditionat(posterion)
Pentru crearea ciclurilor se utilizeaza urmatoarele instructiuni:

Instructiunea while:

Instructiune se executa repetat atit timp cit x<=xf . Testul are loc inantea fiecarei
executii a instructiunii . Prin urmare ciclul este urmatorul : se testeaza conditia din
paranteze daca ea este adevarata , deci expresia din paranteze are o valoare mai mic
egal cu xf atunci , se executa corpul instructiunii while, se verifica din nou conditia
, daca ea este adevarata se executa din nou corpul instructiunii. Cind conditia devine
falsa , adica valoarea expresiei din paranteze este egal cu xf , se face un salt la
instructiunea de dupa corpul instructiunii while , deci instructiuea while se termina.
Instrucțiunea do – while:

Ea are rolul de a repeta instrucțiunea până când expresia este


adevărată. Diferența față de instrucțiunea while constă în faptul că testul este plasat
la sfârșitul buclei, deci instrucțiunea se execută cu siguranță cel puțin o dată,
indiferent de valoarea expresiei.

Instrucțiunea for:

Această instrucțiune are o formă generală care-i extinde mult domeniul de


aplicare față de instrucțiunile de același tip existente în alte limbaje de programare.
Este cea mai utilizată instrucțiune repetitivă, deoarece în afară de testul de
rămânere în buclă, oferă două elemente necesare în majoritatea situațiilor:
inițializare și actualizare.
Sintaxa instrucțiunii for:
for(expresie_int ;expresie_cond; expresie_act)

instrucțiune

- expresia_initializare constituie inițializarea buclei și se evaluează o singură dată.


- expresia_actualizare trebuie să fie de tip scalar și este evaluată înaintea fiecărei
iterații. Valoarea acestei expresii este interpretată ca și condiție de rămânere în
buclă.
- În interiorul buclei se realizează, la fiecare parcurgere, două operațiuni: se
execută prelucrările specificate prin instrucțiune, după care se
evaluează expresie_act.
Oricare dintre expresiile instrucțiunii for (sau chiar toate) pot să lipsească, dar
delimitatorul ';' asociat trebuie să fie prezent.
Dacă lipsește expresie_cond, se consideră implicit că aceasta este tot timpul
adevărată și deci bucla nu se va încheia niciodată. O astfel de buclă poate fi însă
încheiată cu instrucțiunea break.
Prelucrările efectuate cu instrucțiunea for, pot fi descrise și cu ajutorul unei
bucle while, care se aseamănă cu for prin faptul că este tot cu test la început.
Schema logică a algoritmului:

Start

Introduceti a,hmin,hmax,dh

a,hmin,hmax,dh

D
Rezultatele obtinute:
a
Da n=0
h=hmin;h<=hmax;h=h+dh

NU DA
h>a

C=1.8*pow(cos(h),2)+a
NU h==a DA

C=cos(h)+a*pow(sin(h),2) C=1.8*3.14*a*h

n=n+1

"%d.h=%.3f,C=%.3f\n",n,h,C

Stop
Analiza datelor:
a) date de intrare:
a,hmin,hmax,dh - variabile simple de tip real, parametrii expresiilor date (de
introdus de la tastatură).
b) date de ieşire:
C - variabile simple de tip real, valorile expresiilor date (de afişat pe ecran).
c) date intermediare: n

Codul (textul) programului in limbajul C:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float a,hmin,hmax,dh;
float C,h;
int n;
printf("Introduceti a,hmin,hmax,dh:\n");
scanf("%f%f%f%f",&a,&hmin,&hmax,&dh);
printf("Rezultatele obtinute:\n");
n=0;
for(h=hmin;h<=hmax;h=h+dh)
{
if(h>a)
{ C=1.8*pow(cos(h),2)+a; }
else
{
if(h==a)
{ C=1.8*3.14*a*h; }
else
{ C=cos(h)+a*pow(sin(h),2); }
}
n++;
printf("%d.h=%.3f,C=%.3f\n",n,h,C);
}
return 0;
}
Datele de intrare : a=2; hmin=-1 ; hmax=20; dh=3;

Rezultatele obtinute:

Concluzie:
In aceasta lucrare am elaborat un program ce contine procese de calcul cu cicluri
si ramificatii realizate cu instructiunea for . Din rezultatele obtinute observam ca h
se mareste cu 3 incît dh , adica pasul este 3 pe cind variabila de esire C isi modifica
valorile neuniform .

Bibliografie:

1. Derevlenco, Vasile și alț. Programare : Indicaţii de laborator. Partea 1. – Ch.: Tehnica – UTM,
2014. http://library.utm.md
2. Conspectul prelegerilor cursului Programarea Calculatoarelor pentru studenți gr. AI-171, C-
171, C-172, Chișinău, UTM, 2017.
3. Tutorial in C language. http://devcentral.iftech.com/learning/tutorials/c-cpp/c/
4. http://andrei.clubcisco.ro/cursuri/anul-1/semestrul-1/programarea-calculatoarelor.html

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