Navigace: Hlavní stránka -> PASCAL -> 03 Podmínky -> 03.06 Kvadratická rovnice - řešení v R

MENU

03.06 Kvadratická rovnice - řešení v R

Zadání:
Sestavte program, který najde řešení kvadratické rovnice ax2+bx+c=0 v oboru reálných čísel.
Řešení:
Po zadání koeficientů a, b a c otestujeme, zda nebyl zadán nulový koeficient a. Pokud ano, přechází řešení kvadratické
rovnice na řešení lineární rovnice. Při řešení lineární rovnice ještě otestujeme, zda nebyl zadán koeficient b nulový.
Pokud ano, musíme ještě otestovat koeficient c na nulovou hodnotu.
Pokud nebyl zadán koeficient a nulový, vypočteme hodnotu diskriminantu D = b2 - 4ac. Pokud je vypočtená hodnota D
menší než nula, nemá kvadratická rovnice v oboru reálných čísel řešení, jinak lze vypočítat řešení.

a=0, b=0, c=0: rovnice má nekonečně mnoho řešení
a=0, b=0, c<>0: rovnice nemá řešení
a=0, b<>0: rovnice má jedno řešení
a<>0, D<0: rovnice nemá v R řešení
a<>0, D=0: rovnice má v R řešení jeden dvojnásobný kořen
a<>0, D>0: rovnice má v R dva kořeny
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,b,c,d,x1,x2: real;

begin

   write('Zadejte koeficient a: ');
   readln(a);
   write('Zadejte koeficient b: ');
   readln(b);
   write('Zadejte koeficient c: ');
   readln(c);

   if a=0 then
      if b=0 then
         if c=0 then writeln('Nekonecne mnoho reseni')
                else writeln('Rovnice nema reseni')
      else writeln('Jedno reseni x=',-c/b:0:3)
   else
      begin
         d:=sqr(b)-4*a*c;
         if d<0 then writeln('Rovnice nema v R reseni')
         else
            begin
               x1:=(-b+sqrt(d))/(2*a);
               x2:=(-b-sqrt(d))/(2*a);
               writeln('x1=',x1:0:3);
               writeln('x2=',x2:0:3);
            end;
      end;
      
   readln;

end.
program ke stažení