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