• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Работа с параметрами

Night_Rain

Ученик
Регистрация
25 Ноя 2012
Сообщения
9
Реакции
0
Баллы
0
Работа с параметрами

Составить программу, которая содержит две функции: для вычисления гиперболического тангенса th(x) и обратной к ней функции гиперболического арктангенса arth(x). Составить процедуру, которая получает в качестве параметра значение аргумента x и возвращает значения x1=arth(th(x)) и x2=th(arth(x)), вычисленные с использованием двух введенных функций. Вызвать данную процедуру из тела основной программы для нескольких значений аргумента x. Для каждого такого вызова программа должна определять, какое из вычисленных значений (x1 или x2) ближе к исходному значению x.

Pascal.
 
Составить программу, которая содержит две функции...
Решительно не вижу проблем. Пожалуйста:
Код:
Var
 x,x1,x2:Extended;
 i:Integer;

function Th(z:extended):extended;
begin
 Th:=(Exp(z)-Exp(-z))/(Exp(z)+Exp(-z));
end;

function ArTh(z:extended):extended;
begin
 ArTh:=(1/2)*Ln((z+1)/(1-z));
end;

Procedure Var_s(y:extended; var y1:extended; var y2:extended);
begin
 y1:=ArTh(Th(y));
 y2:=Th(ArTh(y));
end;

Begin
 For i:=-9 to 9 do
  begin
   x:=i/10;
   Var_s(x,x1,x2);
   Write('x=',x:4:1,'   x1=',x1,'   x2=',x2);
   If Abs(x-x1)<Abs(x-x2) then
    Writeln('   x1')
   else
    Writeln('   x2');
  end;
 Readln;
End.
 
Назад
Сверху