Documente Academic
Documente Profesional
Documente Cultură
10
La apelul funcţiilor de bibliotecă matematice trebuie să se ţină cont de domeniile de definiţie ale
acestor funcţii stabilite în matematică, altfel vor apărea erori.
Exemplul nr. 1:
#define M 6 La compilare:
#define N 5 main()
main() { int sir1[6];
{ int sir1[M]; int sir2[5];
int sir2[N]; int mat[6][5];
float mat[M][N]; …
2
Deoarece la preprocesare se fac înlocuiri nu şi calcule este indicat ca succesiunea de caractere cu
care se face înlocuirea numelui să fie cuprinsă între paranteze rotunde.
Exemplul nr. 2:
#define A 2
…
main()
{ int x;
x=4+A
…
#undef A
float z;
#define A 3.67
z = 7 – A;
…
Prin utilizarea directivei #undef A îşi pierde valoarea atribuită anterior. În urma rulării
programului vom avea următoarele valori: x = 6 şi z = 3.33.
⎧ x − 8 daca x ≥ 1
Calculul valorii funcţiei: y = ⎨ 2
⎩ x + 2 x + 3 daca x < 1
#define F(x) ((x >= 1) ? x-8 : x*x+2*x+3)
În program: La execuţie
… …
for(x=a;x<=b;x+=h) for(x=a;x<=b;x+=h)
{ y = F(x); { y = ((x >= 1) ? x-8 : x*x+2*x+3);
printf(“\n x = %f \t y = %f”,x”y); printf(“\n x = %f \t y = %f”,x”y);
} }
… …
3
Program exemplu: Se dau catetele unui triunghi dreptunghic. Se cere să se determine: ipotenuza,
unghiurile triunghiului, perimetrul, aria şi înălţimea din A.
- calculul ipotenuzei: a = b 2 + c 2 ;
⎛c⎞
- calculul unghiului C: Cˆ = arcsin⎜ ⎟ ;
⎝a⎠
a b
⎛c⎞
- calculul unghiului B: Bˆ = arccos⎜ ⎟ ;
⎝a⎠
- perimetrul: p = a + b + c ; D ha
b⋅c
- aria triunghiului: s = ;
2
- înălţimea: ha = b ⋅ sin Cˆ
B c A
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define PI 3.14159
void main(void)
{ float a, b, c, ub, uc, p, s, ha; clrscr();
// citirea catetelor
printf("\n Introduceti cateta b:"); scanf("%f",&b);
printf("\n Introduceti cateta c:"); scanf("%f",&c);
getch();
}