Sunteți pe pagina 1din 8

Laborator nr. 2 + 3.

Teme rezolvate
Modelul matematic al problemei enunţate este:
1. Să se scrie un program pentru calculul valorii funcţiei:
y = 6 ⋅ x3 − 5 ⋅ x 2 + 3 ⋅ x − 1 c⋅e −b⋅ f a⋅ f − d ⋅c
x= ; y=
a⋅e −b⋅d a⋅e −b⋅d
Schema logică: Program în C: Schema logică: Program în C:
#include<stdio.h>
#include<stdio.h> #include<conio.h>
START #include<conio.h> START
void main(void)
void main(void) { float a,b,c,d,e,f,x,y; clrscr();
{ float x,y; clrscr(); printf(" Introduceti a : ");
Input x Input scanf("%f",&a);
printf("\n Introduceti valoarea lui x : "); a,b,c,d,e,f printf(" Introduceti b : ");
scanf("%f",&x); scanf("%f",&b);
y = 6x3 – 5x2 + 3x - 1 printf(" Introduceti c : ");
y = 6*x*x*x-5*x*x+3*x-1; scanf("%f",&c);
c⋅e −b⋅ f a⋅ f − d ⋅c printf(" Introduceti d : ");
printf("\n x = %f \t y = %f",x,y); x= ; y=
Output x, y a⋅e −b⋅d a⋅e −b⋅d scanf("%f",&d);
printf(" Introduceti e : ");
getch(); scanf("%f",&e);
} printf(" Introduceti f : ");
STOP
scanf("%f",&f);
Output x, y
x = (c*e – b*f ) / (a*e – b*d);
y = (a*f – d*c) / (a*e – b*d);
Efectul rulării programului: printf("\n x = %f \t y = %f",x,y);
getch(); }
STOP

Efectul rulării programului:

2. Să se scrie un program pentru rezolvarea sistemului de ecuaţii


liniare de ordinul întâi:
⎧a ⋅ x + b ⋅ y = c

⎩d ⋅ x + e ⋅ y = f

1 /8
3. Se consideră două valori reale: a şi b care reprezintă lungimile Program în C:
catetelor unui triunghi dreptunghic. Se cere să se calculeze: lung.
ipotenuzei, aria triunghiului, volumul şi aria laterală a conului #include<stdio.h>
obţinut prin rotirea triunghiului în jurul catetei a. #include<conio.h>
#include<math.h>
Modelul matematic: void main(void)
{ float a,b,ipo, ariatr, vol, arialat; clrscr();
ipo = a 2 + b 2 ;
a 1 printf("\n Introduceti a : "); scanf("%f",&a);
ariatr = ⋅ a ⋅ b; printf("\n Introduceti b : "); scanf("%f",&b);
2
1
b vol = ⋅ a ⋅ b 2 ⋅ π ; ipo = sqrt(a * a + b * b);
3 ariatr = a * b / 2;
arialat = ipo ⋅ b ⋅ π vol = a * b * b * M_PI / 3;
arialat = ipo * b * M_PI;
Schema logică:
START printf("\n Ipotenuza este ipo = %f ",ipo);
printf("\n Aria triunghiului este ariatr = %f ",ariatr);
printf("\n Volumul este vol = %f ",vol);
printf("\n Aria laterala este arialat = %f ",arialat);
Input
a,b,c,d,e,f
getch();
}

ipo = a 2 + b 2 ; Efectul rulării programului:


1
ariatr = ⋅ a ⋅ b;
2
1
vol = ⋅ a ⋅ b 2 ⋅ π ;
3
arialat = ipo ⋅ b ⋅ π

Output x, y

STOP
2 /8
4. Să se scrie un program pentru transformarea coordonatelor polare Program în C:
în coordonate carteziene.
#include<stdio.h>
Model matematic: #include<conio.h>
y #include<math.h>
x A = ρ ⋅ cos(α ); void main(void)
A(r, a)
y A = ρ ⋅ sin (α );
yA { float ro, alfa, xa, ya; clrscr();

r printf(" Introduceti raza ro = "); scanf("%f",&ro);


printf(" Introduceti unghiul [grade] alfa = "); scanf("%f",&alfa);

a xa = ro * cos(alfa*M_PI/180);
ya = ro * sin(alfa*M_PI/180);
O xA x
printf("\n x = %f \t y = %f",xa,ya);

Schema logică: getch();


}
START
Efectul rulării programului:

Input r, a

x A = ρ ⋅ cos(α );
y A = ρ ⋅ sin (α );

Output xA, yA

STOP

3 /8
5. Se consideră o progresie aritmetică la care se cunosc: valoarea Program în C:
primului termen a1 şi raţia r. Se cere să se determine: suma
primilor n termeni: S n =
[2 ⋅ a1 + (n − 1) ⋅ r ]⋅ n şi valoarea #include<stdio.h>
2 #include<conio.h>
elementului k: a k = a1 + (k − 1) ⋅ r ; void main(void)
{ float a1, r, sn, ak; int n, k; clrscr();
Schema logică: printf(" Introduceti valoarea primului termen a1 = ");
scanf("%f",&a1);
START printf(" Introduceti ratia r = ");
scanf("%f",&r);
printf(" Introduceti numarul de termeni n = ");
scanf("%d",&n);
Input a1, r, n, k printf(" Introduceti valoarea k = ");
scanf("%d",&k);

sn = n * (2 * a1 + (n - 1) * r)/2;

Sn =
[2 ⋅ a1 + (n − 1) ⋅ r ]⋅ n ; ak = a1 + (k - 1) * r;
2
printf("\n Suma primilor %2d termeni este S = %8.3f",n,sn);
ak = a1 + (k − 1) ⋅ r printf("\n Valoarea elementului %2d este a(%2d) = %8.3f",k,k,ak);

getch();
}
Output Sn, ak
Efectul execuţiei programului:

STOP

4 /8
6. Să se calculeze şi să se afişeze valoarea polinomului Program în C:
P( x) = c4 ⋅ x 4 + c3 ⋅ x 3 + c2 ⋅ x 2 + c1 ⋅ x + c0 . Coeficienţii polinomului
vor fi definiţi ca un şir de numere reale, ca şi în programul #include<stdio.h>
exemplu nr. 8. #include<conio.h>
#include<math.h>
Schema logică: void main(void)
{ float c[5]={-1,3,-2,5,4}, x, P; clrscr();

printf("\n Introduceti x = "); scanf("%f",&x);

P=c[0]+c[1]*x+c[2]*pow(x,2)+c[3]*pow(x,3)+c[4]*pow(x,4);

printf("\n P(%7.3f) = %7.3f",x,P);

getch();
}
P ( x) = c4 ⋅ x 4 + c3 ⋅ x 3 + c2 ⋅ x 2 + c1 ⋅ x + c0
Efectul execuţiei programului :

5 /8
⎛ a0, 0 a0,1 a0, 2 ⎞ Program în C:
⎜ ⎟
7. Se consideră o matrice A3x3 de forma: A = ⎜ a1, 0 a1,1 a1, 2 ⎟ Să se
⎜a ⎟ #include<stdio.h>
⎝ 2, 0 a2,1 a2, 2 ⎠ #include<conio.h>
calculeze determinantul de ordinul 3. Elementele matricei vor fi void main(void)
definite ca şi în programul exemplu nr. 2; { int D, a[3][3]={ {1, 2,-3}, {0,-2, 3}, {4, -5, -1} }; clrscr();

Scema logică: D = a[0][0]*a[1][1]*a[2][2] ;


D = D + a[1][0]*a[2][1]*a[0][2];
D = D + a[2][0]*a[1][2]*a[0][1];
START D = D – a[2][0]*a[1][1]*a[0][2];
D = D – a[0][0]*a[2][1]*a[1][2];
D = D – a[1][0]*a[0][1]*a[2][2];
Input
printf("\n Valoarea determinantului este D = %d",D);
a00, a01, a02,
a10, a11, a12,
getch();
a20, a21, a22 }

Efectul execuţiei programului:

D = a00*a11*a22 + a10*a21*a02 + a20*a12*a01


– a20*a11*a02 – a00*a21*a12 – a10*a01*a22

Output D

STOP

6 /8
8. Se consideră un trunchi de con (figura) pentru care Program în C:
se cunosc: razele r şi R şi înălţimea I. Se cere să se
calculeze următoarele elemente: #include<stdio.h>
#include<conio.h>
G = I 2 + (R − r ) ;
2
Generatoarea: Aria laterală: #include<math.h>
S l = π ⋅ G ⋅ (R + r ) ; Aria totală: (
St = Sl + π ⋅ R 2 + r 2 ; ) Volumul: void main(void)
{ float r, R, I, G, Sl, St, V, d; clrscr();
⎛ R2 + r 2 + R ⋅ r ⎞
V = π ⋅ I ⋅ ⎜⎜ ⎟⎟ ; Diagonala: d = G 2 + 4 ⋅ R ⋅ r ;
⎝ 3 ⎠ printf(" Raza mare R = "); scanf("%f",&R);
printf(" Raza mica r = "); scanf("%f",&r);
Schema logică: printf(" Inaltimea I = "); scanf("%f",&I);

G = sqrt( pow(I,2)+pow(R-r,2) ); Sl = M_PI * G * (R + r);


St = Sl + M_PI * ( pow(R,2) + pow(r,2) );
V = M_PI * I * ( R * R + r * r + R * r ) / 3;
d = sqrt( G * G + 4 * R * r );

printf("\n Generatoarea G = %9.4f",G);


printf("\n Aria laterala Sl = %9.4f",Sl);
printf("\n Aria totala St = %9.4f",St);
printf("\n Volumul V = %9.4f",V);
G = I 2 + (R − r ) ;
2
printf("\n Diagonala d = %9.4f",d);
Sl = π ⋅ G ⋅ (R + r );
(
St = Sl + π ⋅ R 2 + r 2 ; ) }
getch();

⎛ R2 + r 2 + R ⋅ r ⎞
V = π ⋅ I ⋅ ⎜⎜ ⎟⎟;
⎝ 3 ⎠
d = G2 + 4 ⋅ R ⋅ r ;

7 /8
9. Se consideră două puncte în spaţiu P1(x1, y1, z1) şi P2(x2, y2, z2), Program în C:
Să se calculeze distanţa în spaţiu dintre cele două puncte.
#include<stdio.h>
Schema logică: #include<conio.h>
#include<math.h>
void main(void)
{ float x1, y1, z1, x2, y2, z2, D; clrscr();

printf(" x1 = "); scanf("%f",&x1);


printf(" y1 = "); scanf("%f",&y1);
printf(" z1 = "); scanf("%f",&z1);
printf(" x2 = "); scanf("%f",&x2);
printf(" y2 = "); scanf("%f",&y2);
printf(" z2 = "); scanf("%f",&z2);
D= (x1 − x2 ) + ( y1 − y2 ) + (z1 − z2 )
D = sqrt( pow(x1-x2,2) + pow(y1-y2,2) +pow(z1-z2,2) );

printf("\n Distanta in spatiu este D = %f",D);

getch();
}

8 /8

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