Вычисления значений функции - Free Pascal
Формулировка задачи:
Разработайте алгоритм и создайте Паскаль программу вычисления значений функции, которая должна:
осуществлять ввод значения аргумента в диалоговом режиме;
обеспечить проверку ОДЗ аргумента функции.
Ребят, не могу понять в чем дело. Ввожу значение и программа вылетает после нажатия на Enter.
Program xxx;
uses crt;
var x, y, y1, y2: Real;
begin
writeln ('...');
writeln ('...');
Writeln('Введите x: ');
ReadLn(x);
if (x>3/5) and (sin(3*x*x*x*x)<>0) and (cos(3*x*x*x*x)<>0) then
begin
y1 := 5 * x - 3;
if y1 <= 0 then begin
WriteLn;
Halt;
end;
y1 := ln(y1);
y2 := 4 * (sin(3*sqr(sqr(x)))/cos(3*sqr(sqr(x))));
WriteLn;
Halt;
end;
y := y1 / y2;
WriteLn('y=', y:2:6);
end;
else
writeln('не удовлетворяет ОДЗ');
writeln('для выхода из программы нажмите Enter');
readln;
end.
Паскаль перед ELSE требует точку, а не точку с запятой, но если я поставлю точку, то программа вылетает. Как исправить этот косяк?
Решение задачи: «Вычисления значений функции»
textual
Листинг программы
Program xxx;
Uses crt;
Var x, y, y1, y2: Real;
Begin
writeln ('...');
writeln ('...');
Writeln('Введите x: ');
ReadLn(x);
If (x>3/5) And (sin(3*x*x*x*x)<>0) And (cos(3*x*x*x*x)<>0) Then
Begin
y1 := 5 * x - 3;
If y1 <= 0 Then
Begin
WriteLn;
Halt;
End;
y1 := ln(y1);
y2 := 4 * (sin(3*sqr(sqr(x)))/cos(3*sqr(sqr(x))));
WriteLn;
Halt;
End;
y := y1 / y2;
WriteLn('y=', y:2:6);
End;
Else
writeln('не удовлетворяет ОДЗ');
writeln('для выхода из программы нажмите Enter');
readln;
End.