Разветвляющийся алгоритм, вычисление значения функции - Pascal
Формулировка задачи:
составьте пожалуйста программу вычисления значений функции U (с блок-схемой):
где
;
Решение задачи: «Разветвляющийся алгоритм, вычисление значения функции»
textual
Листинг программы
uses crt; var c,d,x,y,z,t,u:real; k:byte; begin clrscr; writeln('Введите c,d'); readln(c,d); k:=0; if(c<=0)or(d=0) then write('Функция не определена') else begin x:=d*d+ln(c); if d>0 then y:=(d+c)/exp(ln(d)/3) else y:=-(d+c)/exp(ln(-d)/3); if y=0 then write('Функция не определена') else begin z:=cos(x)/sqrt(abs(y)); t:=x*x*y; if t<0 then u:=cos(z) else if (t>=0)and(t<10) then begin if (z=0)or(x<=0) then k:=1 else u:=ln(abs(z))*sqrt(x); end else begin if (x=0)or(y<0)then k:=1 else u:=abs(z)/sqrt(t); end; if k=1 then write('Функция не определена') else write('U=',u:0:3); end; end; readln end.
Объяснение кода листинга программы
- Создается переменная
c
и присваивается ей значение, введенное пользователем. Аналогично создается и присваивается значение переменнойd
. - Создается переменная
k
типаbyte
, которая будет использоваться для определения, определена ли функция. Значениеk
устанавливается равным 0. - Выводится сообщение с просьбой ввести значения
c
иd
. - Переменная
k
проверяется на условия: еслиc
меньше или равно 0 илиd
равно 0, то функция не определена и выводится соответствующее сообщение. - Если условие проверки
k
не выполняется, то выполняются следующие действия:- Переменная
x
инициализируется какd*d + ln(c)
. - Если
d
больше 0, то переменнаяy
инициализируется как(d + c) / exp(ln(d) / 3)
. - Иначе, если
d
меньше 0, то переменнаяy
инициализируется как-(d + c) / exp(ln(-d) / 3)
.
- Переменная
- Если значение
y
равно 0, то функция не определена и выводится соответствующее сообщение. - Если условие проверки
k
не выполняется, то выполняются следующие действия:- Переменная
z
инициализируется какcos(x) / sqrt(abs(y))
. - Переменная
t
инициализируется какx*x*y
. - Если
t
меньше 0, то переменнаяu
инициализируется какcos(z)
. - Иначе, если
t
больше или равно 0 и меньше 10, то переменнаяu
инициализируется какln(abs(z)) * sqrt(x)
. - Иначе, если
x
равно 0 илиy
меньше 0, то переменнаяk
инициализируется как 1. - Иначе, переменная
u
инициализируется какabs(z) / sqrt(t)
.
- Переменная
- Если значение
k
равно 1, то выводится сообщение о том, что функция не определена. - Иначе, выводится значение переменной
u
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д