Консультация № 173510
21.10.2009, 15:02
0.00 руб.
0 3 0
Добрый день, напишите пожалуйста решение задачи..

Модуль нахождения корней квадратного уравнения и пример задачи, работающей с данным модулем....

Обсуждение

Неизвестный
22.10.2009, 17:56
общий
Неизвестный
23.10.2009, 09:24
общий
Вот модуль:
Код:
unit uSQR_EQ;
{то что написано после unit должно совпадать с именем файла}
interface
{Здесь производится только объявление: вот есть такая функция
с такими параметрами. Её реализация приводится в разделе Implentation}

{Обычно функциям должно предшестовать описание вроде такого:

Функция для решения квадратного уроавнения a*x*x + b*x + c = 0
ПРИ ВЫЗОВЕ:
первые три параметра - коэффициенты уравнения могут быть заданы
как имена переменных или констант, в которые записаны значения
коэффициентов или как неплосредственные значения
последние два параметра - имена переменных, куда будут записаны
значения корней, если они существуют
ФУНКЦИЯ ВОЗВРАЩАЕТ:
результат ИСТИНА (TRUE), если решения существуют или
ЛОЖЬ (FALSE), если нет

Пример вызова:
VAR
r1, r2: real;
BEGIN
...
if SQR_EQ_ROOTS(1,2,3,r1,r2) then
WriteLn('Корни уравнения ',r1,' и ',r2)
else
WriteLn('Корни не существуют (мнимые)');
...
END.
}
function SQR_EQ_ROOTS(a,b,c: Real; var Root1, Root2: real): Boolean;

implementation
function SQR_EQ_ROOTS(a,b,c: Real; var Root1, Root2: real): Boolean;
var D: Double;
begin
D := b*b - 4*a*c;
if D < 0 then begin
SQR_EQ_ROOTS := False; {Устанавливаем результат = ложь}
Exit {Немедленный выход из подпрограммы}
end;
SQR_EQ_ROOTS := True;
D := SQRT(D);
Root1 := (b + D)/(2*a);
Root2 := (b - D)/(2*a);
end;
end.

Вот программа, использующая модуль:
Код:
uses uSQR_EQ;
var
r1, r2: Real;
BEGIN
if SQR_EQ_ROOTS(1, 9, 20,r1,r2) then
WriteLn('Корни уравнения ',r1:6:2,' и ',r2:6:2)
else
WriteLn('Корни не существуют (мнимые)');
END.

А вот пример окна вывода программы:
Код:
Корни уравнения   5.00 и   4.00

ИМХО, всё просто, но если Вам так не кажется, спросите в минифоруме
Неизвестный
23.10.2009, 15:17
общий
Спасибо Вам Борис, как зайду с пк повышу Вам рейтинг..)
Форма ответа