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

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

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

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

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

textual
Листинг программы
  1. program prakt10;
  2. uses crt;
  3. var a,x,y,k,m,n,z:real;
  4. begin
  5. clrscr;
  6. writeln('Vvedite X ---> ');
  7. readln(x);
  8. writeln('Vvedite a ---> ');
  9. readln(a);
  10. k:=sin(x+a);
  11. m:=cos(x+a);
  12. n:=exp(a*x);
  13. //если cos=0 или под корнем не положительное
  14. if (m=0)or(n+k<=0) then write('Значение не определено')
  15. else
  16.  begin
  17.   z:=k/m/(n+k);//значение под корнем третьей степени
  18.   if z=0 then y:=0
  19.   else if z>0 then y:=exp(ln(z)/3)
  20.   else y:=-exp(ln(-z)/3);
  21.   write('y=',y:0:2)
  22.  end;
  23. readln
  24. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы