Informatică, întrebare adresată de DragoșV, 10 ani în urmă

Am primit algoritmul:
start
citeste a,b,c
daca a=0 atunci
daca b=0 atunci
daca c=0 atunci
tipareste "x1,x2 orice numar real"
altfel
tipareste "ecuatie imposibila"
sfarsit daca
altfel
tipareste "x=" ]c/b
sfarsit daca
altfel
Delta=b*b]4ac
daca Delta >=0 atunci
x1=(]b+radical(Delta))/2a
x2=(]b]radical(Delta))/2a
tipareste "x1="x1 "x2="x2
altfel
tipareste "nu avem solutii reale"
sfarsit daca
sfarsit daca
stop
Rezolvare? (Trecere directa in C++.

Răspunsuri la întrebare

Răspuns de MisterDragoș
1
Salut!
Rezolvare c++:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int a,b,c;
float x1,x2,D;
int main()
{
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"c=";cin>>c;
if(a==0)
if(b==0)
if(c==0)
cout<<"a=0 b=0 c=0 => 0=0 => x1,x2‐Orice numere reale<<endl;
else
cout<<"a=0 b=0 c‐diferit de 0 => c=0 => Ecuație imposibilă<<endl;
else
cout<<"a=0 => bx+c=0 => Ecuație de grad 1 => solutia=‐b/c=x x="<<‐b/a<<endl;
else
{
cout<<"Toate numerele sunt nenule => Se calculează delta după formula D=(b*b)‐(4*a*c)"<<endl;
D=(b*b)‐(4*a*c);
if(D>0)
{
cout<<"Delta este mai mare decât zero => calculăm pe x1 si x2 după formulele:x1=(‐b‐radical dinD)/(2*a) si x2=(‐b+radical din D)/(2*a)"<<endl;
x2=(‐b+sqrt(D))/(2*a);
x1=(‐b‐sqrt(D))/(2*a);
cout<<"x1="<<x1<<" "<<"x2="<<x2<<endl;
}
else
cout<<"Delta este negativ => Ecuație imposibilă"<<endl;
getch();
return 0;}
}

Dacă ai nelămuriri cu privire la rezolvare, aștept feedbackul tău. Mult succes!
Alte întrebări interesante