Найти корни квадратного уравнения - Turbo Pascal (33426)

Узнай цену своей работы

Формулировка задачи:

Пожалуйста помогите с этой программой... Оч надо... прошу.. Используя ООП, определить объект КВАДРАТНОЕ УРАВНЕНИЕ. Найти корни квадратного уравнения.

Решение задачи: «Найти корни квадратного уравнения»

textual
Листинг программы
uses crt;
type tlinur=object{линейное уравнение}
     a0,a1:real;{свободный член и коэффициент при х}
     k:integer; {количество корней - минус 1, 0, 1}
     x1:real; {значение корня}
     procedure init (a,b:real); {инициализация}
     procedure linur; {решение линейного уравнения}
     procedure print; {вывод решения на экран}
     end;
tkvur=object(tlinur){квадратное уравнение}
      a2,x2:real; {коэффициент при квадрате неизвестного и второй корень}
      procedure init(a,b,c:real); {инициализация}
      procedure kvur; {решение квадратного уравнения}
      procedure print2; {вывод решения на экран}
      end;
procedure tlinur.init(a,b:real);
begin
a1:=a;
a0:=b
end;
procedure tlinur.linur;
begin
if a1<>0 then
 begin
  k:=1;
  x1:=-a0/a1
 end
else if a0=0 then k:=-1
else k:=0
end;
procedure tlinur.print;
begin
case k of
-1:writeln('любое значение');
0:writeln('решений нет');
1: writeln('один корень=',x1:0:2)
end
end;
procedure tkvur.init(a,b,c:real);
begin
a2:=a;
a1:=b;
a0:=c
end;
procedure tkvur.kvur;
var d:real;
begin
if a2<>0 then
 begin
  d:=(sqr(a1)-4*a2*a0);
  if d>=0 then
   begin
    x1:=(-a1+sqrt(d))/(2*a2);
    x2:=(-a1-sqrt(d))/(2*a2);
    k:=2
   end
  else k:=0
 end
else linur
end;
procedure tkvur.print2;
begin
case k of
-1..1:print;
2:writeln('два корня x1=',x1:0:2,'  x2=',x2:0:2)
end
end;
var u:tkvur;
    a,b,c:real;
begin
clrscr;
writeln('Введите коэффициенты уравнения a и b одновременно не равны 0');
readln(a,b,c);
u.init(a,b,c);
u.kvur;
u.print2;
readln
end.

Объяснение кода листинга программы

  1. В коде используется тип данных tlinur, который представляет собой объект с методами для решения линейного уравнения.
  2. Метод init инициализирует значения свободных членов и коэффициентов при x.
  3. Метод linur решает линейное уравнение и возвращает количество корней.
  4. Метод print выводит решение на экран.
  5. В коде также используется тип данных tkvur, который представляет собой объект с методами для решения квадратного уравнения.
  6. Метод init инициализирует значения свободных членов и коэффициентов при x.
  7. Метод kvur решает квадратное уравнение и возвращает количество корней.
  8. Метод print2 выводит решение на экран.
  9. В конце кода создается переменная u типа tkvur, инициализируется коэффициентами уравнения, а затем вызываются методы init, kvur и print2.
  10. Код также запрашивает ввод коэффициентов уравнения и проверяет их на равенство нулю перед вызовом методов решения.
  11. При выводе решения на экран используются операторы вывода из стандартной библиотеки Pascal, такие как writeln и print.
  12. В конце кода с помощью функции readln считывается ввод пользователя.

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы