Вычисления значений функции - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д