Stiind ca dezvoltarea in serie ce poate aproxima numarul PI este:
PI=4*(1-1/3+1/5-1/7+...),
Cerinta: sa se calculeze valoarea aproximativa a lui PI cu o eroare mai mica decat epsilon preluat de la consola.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
int main(){
float eps, pi, t;
int k;
printf("Introduceti valoarea lui eps: ");
if(scanf("%f",&eps)!=1)
{
printf("Date eronate");
exit(1);
}
t = 1;
pi = 1;
k = 1;
while(fabs(t) > eps){
if (k % 2) // daca k este par, semn negativ
t = - 1.0 / (2*k + 1); // punem 1.0 pentru ca toate sunt int si altfel o sa dea rezultat intreg
else // altfel, daca k este impar, semn pozitiv
t = 1.0 / (2*k + 1);
pi += t; // bagam t in suma
k++; // incrementam k
}
pi *= 4; // formula e 4 * <ce am calculat deja>
printf("calculat:\tpi = %g\n", pi);
printf("math.h: \tpi = %g", M_PI); // M_PI se numeste constanta pi din math.h
getch();
return 0;
}