Вычисления значений функции - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.583 из 5
Похожие ответы