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
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.