Оформить в виде подпрограммы вычисление гиперболического синуса - Pascal
Формулировка задачи:
Построить таблицу функций z=sh(x=y), где x∈[1;2], ∆x=0.2, y∈[2;3], ∆y=0.1. Гиперболический синус вычисляется по формуле sh(r)=(e(в степени r)-e(в степени -r))/2 . Вычисления гиперболического синуса оформить в виде подпрограммы - процедуры.
Решение задачи: «Оформить в виде подпрограммы вычисление гиперболического синуса»
textual
Листинг программы
uses crt; const t=0.000001;{точность вычислений} procedure Sh(x:real;var y:real); begin y:=(exp(x)-exp(-x))/2; end; var x,y,dx,dy,z:real; k:integer; begin clrscr; x:=1; dx:=0.2; dy:=0.1; k:=0; while x<=2+t do begin y:=2; while y<=3+t do begin Sh(x+y,z); writeln('x=',x:4:1,' y=',y:4:1,' Z=',z:8:4); k:=k+1; if k mod 20=0 then begin write('Press Enter...'); readln; end; y:=y+dy; end; x:=x+dx; end; readln end. readln end.
Объяснение кода листинга программы
В данном коде используется функция Sh, которая принимает два аргумента: x и y, и возвращает значение гиперболического синуса для заданного значения x. Внутри функции происходит вычисление гиперболического синуса по формуле (exp(x)-exp(-x))/2. Для выполнения вычислений используется переменная z. В основной части программы объявлены следующие переменные:
- x - начальное значение переменной, равное 1.
- dx - шаг изменения значения переменной x, равный 0.2.
- dy - шаг изменения значения переменной y, равный 0.1.
- k - счетчик итераций.
Цикл while выполняется, пока значение переменной x не станет больше или равно 2+t. Внутри цикла переменные y и z инициализируются значениями 2 и 0 соответственно. Затем выполняется вызов функции Sh(x+y,z), после чего выводится информация о текущих значениях переменных x, y и z. После этого значение переменной k увеличивается на 1, и если его значение становится кратным 20, то выводится сообщение
Press Enter...
, и выполнение программы приостанавливается до следующего нажатия клавиши Enter. После этого значение переменной y увеличивается на dy, и цикл повторяется. Значение переменной x увеличивается на dx после каждой итерации цикла. По окончании выполнения программы выводится сообщениеReadln
.