Extras din proiect
Problema 1
Rezolvarea ecuatiei ax2 + bx + c = 0, a,b,c Î R.
Pseudocod
{ real a, b, c, x, x1, x2, im, d, r;
scrie (”coef ecuatiei: ”); citeste (a,b,c);
if (a) then { d=b*b – 4*a*c;
if (d>=0) then
{ if(d>0) then
{ x1= (real) (-b+ sqrt(d)) /2/a;
x2= (real) (-b+ sqrt (d))/2/a;
scrie (”x1= ”, x1, ”x2= ”, x2);}
else { x=-b/2/a;
scrie (”x1=x2=”,x);}
}
else { r=-b/2/a;
im=(real) abs( sqrt(-d)/2/a);
scrie(”x1= ”,r,im,”x2= ”,r,im);}
else
if (b!=0) then scrie (x=-c/b);
else if (c!=0) then scrie (”ecuatie imposibila!”);
else scrie (”ecuatie nedeterminata!”);
}
Valori numerice
a=2;
b=4;
c=2;
d=16--4*2*2=16-16=0;
x=-4/2*2=-1;
x1=x2=-1
Codificare
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{clrscr();
float a,b,c,x,x1,x2,im,d, r;
printf("coeficientii ecuatiei: ");
scanf("%f %f %f", &a, &b, &c);
if (a )
{ d=b*b-4*a*c;
if(d >=0)
{ if (d> 0)
{ x1=(float)(-b+sqrt(d))/2/a;
x2=(float)(-b-sqrt(d))/2/a;
printf ("x1 = %5.2f , x2=%5.2f", x1, x2);
}
else { x=-b/2/a;
printf("x1 = x2 = %5.2f", x);}
}
else { r = -b/2/a;
im=(float)fabs(sqrt(-d)/2/a);
printf("x1=%5.2f+%5.2fi;x2=%5.2f-%5.f2fi",r,im,r,im);
} }
else
if(b!=0) printf("x= %5.2f", -c/b);
else if(c!=0) printf("ecuatie imposibila!");
else printf("ecuatie nedeterminata!");
}
Rezultatele rularii
Varianta 2
Codificare
include<process.h>
#include<stdio.h>
#include<math.h>
#include<float.h>
void main()
{
double a, b,c ,x1,x2,delta;
printf("n introduceti a:"); scanf("%lf",&a);
printf("n introduceti b:"); scanf("%lf",&b);
printf("n introduceti c:"); scanf("%lf",&c);
if (a==0&&b==0&&c==0)
printf("n coeficientii sunt nuli");
if (a==0&&b==0&&c!=0)
printf("n ecuatie imposibila: a=0,b=0,c diferit de 0");
if (a==0&&b!=0)
printf("n ecuatia are gradul unu,x=%f",-c/b);
if (a!=0){
delta=b*b-4*a*c;
if (delta==0)
printf("n ecuatia are radacinile egale x1=x2=%f",-b/(2*a));
else
if (delta<0)
{ printf("n ecuatia are radacini complexe");
delta=-delta;
delta=sqrt(delta);
printf("n x1=%f+%fi",(-b)/(2*a),delta/(2*a));
printf("n x2=%f-%fi",-b/(2*a),delta/(2*a));
}
else
{delta =sqrt(delta);
printf("n ecuatie are radacini reale distincte");
printf("n x1=%f",(-b+delta)/(2*a));
printf("n x2=%f",(-b-delta)/(2*a));
}
}
}
Rezultatele rularii
Preview document
Conținut arhivă zip
- Bazele programarii in C.doc