2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Дискриминант в Delphi (console)
Сообщение02.07.2009, 10:31 
Аватара пользователя
Написал я только-что такую простую (элементарную) програму на нахождение корней квадратного уравнения в Delphi (досовское приложение).
program DisriminantConsole;

{$APPTYPE CONSOLE}

uses
SysUtils, System, math;

var
a, b, c : double;
D:double;
x1, x2 : double;
zapros : char;

procedure Fundamental;
begin
write('a= '); read(a);
write('b= '); read(b);
write('c= '); read(c);
D:=sqr(b) - 4*a*c;
WriteLn('D=',D);
if (D<0) then
Write('D<0. T.e. uravnenie ne imeet corneiv olasti veshrstvennih chisel');

if (D>0) then
begin
x1:=( -b-sqrt(D) )/(2*a);
x2:=( -b+sqrt(D) )/(2*a);
WriteLn('x1= ',x1);
WriteLn('x2= ',x2);
end;
if (D=0) then
begin
x1:=-b/(2*a);
WriteLn('x1=x2=',x1);
end;
WriteLn;
ReadLn;
end;


begin
repeat
Fundamental;
write('Eshe raz? (Y/N)'); read(zapros);
WriteLn(zapros);
until (zapros<>'y');
write('Press '); read(a);
end.

И, представляете, при a=0, b=-10, c=100 она закрывается! Где ошибка? Компиллятор Borland Delphi 7.

 
 
 
 Re: Дискриминант в Delphi (console)
Сообщение02.07.2009, 10:45 
При $a=0$ уравнение уже не будет квадратным и применять для него формулу корней квадратного уравнения нельзя. У Вас происходит деление на ноль в строчке
Код:
x1:=( -b-sqrt(D) )/(2*a);

...и программа аварийно завершает работу.
P.S. Кстати, консольное Win32-приложение и DOS-программа - это все-таки совершенно разные вещи...

 
 
 
 Re: Дискриминант в Delphi (console)
Сообщение02.07.2009, 18:35 
Аватара пользователя
Точно. Опять моя невнимательность. Спасибо.

 
 
 
 Re: Дискриминант в Delphi (console)
Сообщение08.07.2009, 12:28 
Аватара пользователя
Alhimik писал(а):
Написал я только-что такую простую (элементарную) програму на нахождение корней квадратного уравнения...

Численное решение квадратного уравнения - дело тонкое.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group