Нужно с C++ переписать программу на паскаль с пояснением - Pascal
Формулировка задачи:
Буду очень признателен)
Если что, вот сама задача:
Не используя стандартные функции (за исключением abs), вычислить с точностью eps > 0
у = shx = x + x3/3! + x5/5! +…+x2n+1/(2n + 1!) +…;
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, все последующие слагаемые можно уже не учитывать.
#include <iostream>
using namespace std;
int main()
{
setlocale(0,""); // Чтобы корректно отображались русские буквы
cout << "Вычисление значения гиперболического синуса с точность eps = 0.01\n\n "
<< "y = sh(x) = x + x^3/3! + ... + x^(2n+1)/(2n+1)! + ...\n\n";
double x;
cout << "Задайте x = ";
cin >> x;
double an = x, sum = an, eps = 0.01;
int i = 1;
while (abs(an) > eps)
{ an *= (x*x)/(2*i*(2*i+1));
sum += an;
i++;
}
cout << "\n sh(" << x << ") = " << sum << endl;
system("pause > null");
return 0;
}Решение задачи: «Нужно с C++ переписать программу на паскаль с пояснением»
textual
Листинг программы
const eps=0.01;
var
x, an, sum: Real;
i: Integer;
begin
WriteLn('Вычисление значения гиперболического синуса с точность eps = ',eps);
WriteLn('y = sh(x) = x + x^3/3! + ... + x^(2n+1)/(2n+1)! + ...');
Write('Задайте x = '); ReadLn(x);
an:=x; sum:=x; i:=1;
while Abs(an)>eps do begin
an:=an*Sqr(x)/(2*i*(2*i+1));
sum:=sum+an;
Inc(i);
end;
WriteLn('sh(',x,') = ',sum);
Write('Нажмите Enter...'); ReadLn;
end.
Объяснение кода листинга программы
- Объявляется константа
epsсо значением 0.01. - Объявляются переменные
x(для значения аргумента),an(для вычисления члена ряда),sum(для хранения суммы ряда), иi(для счетчика). - Выводится сообщение о вычислении значения гиперболического синуса с заданной точностью
eps. - Выводится формула для вычисления гиперболического синуса.
- Пользователю предлагается ввести значение
x. - Переменной
anприсваивается значениеx, переменнойsumприсваивается значениеx, и переменнаяiинициализируется значением 1. - Начинается цикл, в котором вычисляется каждый член ряда, пока абсолютное значение
anбольше или равноeps. - В каждой итерации переменной
anприсваивается новое значение на основе предыдущего, и это значение добавляется к переменнойsum. Затем счетчикiувеличивается на 1. - После завершения цикла выводится значение гиперболического синуса
sh(x)с помощью переменнойsum. - После этого отображается приглашение нажать клавишу Enter для завершения программы.