Informatică, întrebare adresată de Dilau420, 8 ani în urmă

Problema ec21 Pbinfo #2667

Ecuație de gradul II
Fie aX^2+bX+c=0 o ecuație de gradul al doilea. Determinați soluțiile complexe ale acestei ecuații.

Date de intrare
Programul citește de la tastatură o expresie de gradul al doilea sub forma unui șir de caractere ce poate conține o singură literă mică (notată mai jos, general, cu X), cifre și simbolurile +, -, ^, reprezentând membrul stâng al ecuației. Pentru clarificare, vezi exemplele de mai jos.

Date de ieșire
Dacă ∆=0, se va afișa real și apoi, pe următorul rând, un număr rațional ce reprezintă singura soluție posibilă a ecuației;
Dacă ∆>0, se va afișa reale și apoi, pe următorul rând, se vor afișa două numere raționale ce reprezintă soluțiile ecuației în ordine crescătoare;
Dacă ∆<0, se va afișa imaginare și apoi, pe următorul rând, se vor afișa 'A B', unde A=−b2a și B=△√2a, cu semnificația că soluțiile ecuației sunt A±B.
Restricții și precizări
Expresia dată, cu termenii reașezați descrescător după putere, este de forma aX^2+bX+c.
a,b,c∈Z⋂[−10.000,+10.000] și a nenul;
^ reprezintă ridicarea la putere, adică x^2 este echivalent cu x2
X ∈ ['a', 'z'];
Se acceptă o eroare de maximum 10−2.

Răspunsuri la întrebare

Răspuns de grigore2018
0

Nu ai precizat in ce limbaj ai nevoie dar in Pascal o ecuatie patrata arata in felul urmator tu o poti completa cu cerintele de care ai nevoie:



var

 a,b,c:real;

 x1,x2,d:real;

begin

  writeln('Introduce a,b si c:');

  readln(a,b,c);

  d:=b*b-4*a*c;  

  if d<0 then

  writeln('Ecuatia nu are rezultat')

  else if d=0 then

  begin

  x1:=-b/2*a;

  writeln('Rezultatele coincid:',x1);

  end

  else

  begin

  x1:=(-b-sqrt(d))/2/a;

  x2:=(-b+sqrt(d))/2/a;  

  writeln('Rezultatul:  x1=',x1,'  Rezultatul:  x2=',x2);

  end

end.


Dilau420: C++ daca se poate
grigore2018: In intrebarile raspunse de mine cauta,am raspuns la o intrebare
Alte întrebări interesante