Sunteți pe pagina 1din 11

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

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

Tema: Programarea algoritmilor cu structură ramificata

Scopul lucrării: Studierea, utilizarea şi obţinerea deprinderilor practice de elaborare şi depanare


a programelor ramificate (if-else, switch-break).

Condiţia problemei (sarcina de lucru) [1]: Să se scrie un program care va calcula valoarea
funcţiei în funcţie de condiţii. În program să se utilizeze instrucţiunile if, if-else, if-else-if şi
switch:
Varianta 6:

Expresiile matematice de calculat:


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:

Noţiuni principale din teorie şi metode folosite:

Instrucţiunea if permite programarea unei structuri de decizie în care o condiţie (rezultatul


evaluării unei expresii) determină executarea sau neexecutarea secvenţei de instrucţiuni.
executarea sau neexecutarea secvenţei de instrucţiuni.Avem mai multe forme de reprezentare
algoritmilor ramificati [2]:
- forma naturala,
- forma grafica,
- forma pseudocod,
- program scris in limbaj de programare.

Algoritm cu structură ramificata este caracterizata prin operatia de decizie [2].


Structura generală a unui program in limbajul C este urmatoarea [2 - 4]:
- directivele preprocesorului;
- declarațiile variabelelor și funcțiilor;
- antetul functiei main( );
- corpul functiei main( );
- folosirea instuctiunei if( );
- alte funcții (antet și corp pentru fiecare funcția).

Structura funcției în C:
- antetul funcției (prima linia codului funcției);
- corpul funcției scris între acoladele { }.

Analiza datelor:
a) date de intrare:
h,ax - 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: nu sunt.

1
2
Schema logică a algoritmului:

1
Start
k=
1
“Meniu”

h>
k=
a
2
“Metoda if”
C=1.8*pow(cos(h),2)+a;
k= h>
“Metoda if-else” 3 a

“Nu este asa caz!” “Pentru h<a, nu sunt C=1.8*pow(cos(h),2)+a;


“Metoda if-else-if” h> sol.” h=
a a

C=1.8*3.14*a*h;
“Introduceti h,a,”
C=1.8*pow(cos(h),2)+a;
h<
a h=
a
h,a h<
C=1.8*3.14*a*h; C=cos(h) a
+a*pow(sin(h),2); “Pentru h=a, nu sunt C=1.8*3.14*a*h;
sol.” C=cos(h)
“Introduceti cazul” +a*pow(sin(h),2);

k
h<
Rezultatul: C=”,C a “Rezultatul: C=”,C

1
“Pentru h=a, nu sunt C=cos(h)
sol.” +a*pow(sin(h),2);

“Rezultatul: C=”,C

Stop
Codul (textul) programului in limbajul C:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>

int main()
{
float h,a;
int k;
float C;
printf("Meniu");
printf("\n 1. Metoda if");
printf("\n 2. Metoda if-else");
printf("\n 3. Metoda if-else-if");
printf("\n Introduceti necunoscutele h,a: \n");
scanf("%f%f",&h,&a);
printf("\n Introduceti cazul: \n");
scanf("%d",&k);
switch(k)
{
case 1:
{
if(h>a)
{ C=1.8*pow(cos(h),2)+a; }
if(h==a)
{ C=1.8*3.14*a*h; }
if(h<a)
{ C=cos(h)+a*pow(sin(h),2); }
printf("Rezultatul C=%f\n",C);
break;
}
case 2:
{
if(h>a)
{ C=1.8*pow(cos(h),2)+a; }
else
{ printf("\n Pentru h<a, nu sunt sol."); }
if(h==a)
{ C=1.8*3.14*a*h; }
else
{ printf("\n Pentru h==a, nu sunt sol."); }
if(h<a)
{ C=cos(h)+a*pow(sin(h),2); }
else
{ printf("\n Pentru h<a, nu sunt sol.\n"); }
printf("Rezultatul C=%f\n",C);
break;
}
case 3:
{
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); }
}
printf("Rezultatul C=%f\n",C);
break;
}
default:
{printf("\n Nu este asa caz!\n Valoare lui C nu a fost calculata!");}
}
return 0;
}

Date de intrare (a,h):


35

1
Rezultatele obtinute:
h>a
C=1.311721

2
h=a
C=22.608000

3
h<a
C=1.956449

4
Verificarea rezultatelor:

Pentru verificarea rezultatelor folosim aplicație WolframAlpha online[5]:

C=1.8*pow(cos(2),2)+1

5
Analiza rezultatelor si concluzii:

1. Verificarea ne arată că rezultatele obţinute sunt corecte şi programul lucrează corect.


2. Algoritmi cu structură ramificata pot fi folosite pentru calcularea expresiilor matematice.
3. Au fost obţinute capacitati de formarea a unui program complex în limbajul C.
4. Dezavantajul programului consta in necesitatea de a rula programul din nou pentru a incerca
alt set de date.
5. Acest dezavantaj poate fi exclus cu formarea unui ciclu ce va permite schimbarea setului de
date in timpul rularii programului.

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
5. https://www.wolframalpha.com/

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