Найти корни квадратного уравнения - 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.
Объяснение кода листинга программы
- В коде используется тип данных
tlinur
, который представляет собой объект с методами для решения линейного уравнения. - Метод
init
инициализирует значения свободных членов и коэффициентов при x. - Метод
linur
решает линейное уравнение и возвращает количество корней. - Метод
print
выводит решение на экран. - В коде также используется тип данных
tkvur
, который представляет собой объект с методами для решения квадратного уравнения. - Метод
init
инициализирует значения свободных членов и коэффициентов при x. - Метод
kvur
решает квадратное уравнение и возвращает количество корней. - Метод
print2
выводит решение на экран. - В конце кода создается переменная
u
типаtkvur
, инициализируется коэффициентами уравнения, а затем вызываются методыinit
,kvur
иprint2
. - Код также запрашивает ввод коэффициентов уравнения и проверяет их на равенство нулю перед вызовом методов решения.
- При выводе решения на экран используются операторы вывода из стандартной библиотеки Pascal, такие как
writeln
иprint
. - В конце кода с помощью функции
readln
считывается ввод пользователя.