Вычислить значение y=f(x,a) и обработать возможные исключения - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Для данного варианта составить алгоритм счисления значения y=f(x,a), и реализировать его в виде функции. Значения Х и а задаются пользователем, предвидеть обработку исключительных ситуаций. Вот что сделал, помогите , пожалуйста
program prakt10;
uses crt;
var a,x,y,k,m:real;
begin
clrscr;
writeln('Vvedite X ---> ');
readln(x);
writeln('Vvedite a ---> ');
readln(a);
k:=(sin(x+a)/cos(x+a));
m:=sqr(exp(a*x)+sin(x+a));
if (k=0) or (m=0)
then writeln('Chislo Y = 0')
else
y:=exp(ln(k/m)*(1/3));;
if (y<=0) then
writeln('Vash Y <= 0 , vvedite novoe')
else
writeln('Otvet = ',y);
readln;
end.

Решение задачи: «Вычислить значение y=f(x,a) и обработать возможные исключения»

textual
Листинг программы
program prakt10;
uses crt;
var a,x,y,k,m,n,z:real;
begin
clrscr;
writeln('Vvedite X ---> ');
readln(x);
writeln('Vvedite a ---> ');
readln(a);
k:=sin(x+a);
m:=cos(x+a);
n:=exp(a*x);
//если cos=0 или под корнем не положительное
if (m=0)or(n+k<=0) then write('Значение не определено')
else
 begin
  z:=k/m/(n+k);//значение под корнем третьей степени
  if z=0 then y:=0
  else if z>0 then y:=exp(ln(z)/3)
  else y:=-exp(ln(-z)/3);
  write('y=',y:0:2)
 end;
readln
end.

Объяснение кода листинга программы

  1. Заголовок программы: program prakt10;
  2. Используемые модули: uses crt;
  3. Объявленные переменные: var a,x,y,k,m,n,z:real;
  4. Очистка экрана: clrscr;
  5. Вывод сообщения и запрос на ввод значения x: writeln('Vvedite X ---> ');
  6. Ввод значения x: readln(x);
  7. Вывод сообщения и запрос на ввод значения a: writeln('Vvedite a ---> ');
  8. Ввод значения a: readln(a);
  9. Вычисление значения k: k:=sin(x+a);
  10. Вычисление значения m: m:=cos(x+a);
  11. Вычисление значения n: n:=exp(a*x);
  12. Проверка значения m и n на неположительность или равенство нулю: if (m=0)or(n+k<=0) then write('Значение не определено')
  13. Если условие в п.12 не выполняется, то вычисление значения z: z:=k/m/(n+k);
  14. Проверка значения z на равенство нулю: if z=0 then y:=0
  15. Если значение z больше или равно нулю, то вычисление значения y: else if z>0 then y:=exp(ln(z)/3)
  16. Если значение z меньше нуля, то вычисление значения y: else y:=-exp(ln(-z)/3);
  17. Вывод значения y с округлением до двух знаков после запятой: write('y=',y:0:2);
  18. Завершение работы программы: readln;
  19. Если значение y равно нулю, то выводится сообщение: Значение не определено.
  20. Конец списка.

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


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

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

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