
Вопрос задан 30.03.2021 в 22:39.
Предмет Информатика.
Спрашивает Колесникова Ирина.
В pascal abc. Без факториалов. Дано вещественное число X и целое число N (> 0). Найти значение
выражения 1 – X2/(2!) + X4/(4!) – … + (–1)N·X2·N/((2·N)!) (N! = 1·2·…·N).

Ответы на вопрос

Отвечает Закинов Саша.
Автор вопроса презирает скобки, поэтому выражение для суммы написано криво и можно догадаться, что он имел в виду лишь потому, что он не один такой, да еще и сама задача публикуется не впервые.
Мы получили отличную рекуррентную формулу, которая позволит обойтись без вычислений факториалов и высоких степеней х.
PascalABC.NET 3.2, сборка 1383 от 09.02.2017
(нет у меня этой древней версии Pascal ABC, её 10 лет назад разработчик на своем сайте удалил и теперь с .NET работает).
Но в Pascal ABC программа тоже пойдет.
var
x,s,a,x2:real;
i,n:integer;
begin
Write('Введите х и n: '); Read(x,n);
x2:=x*x; a:=-x2/2; s:=1+a;
for i:=2 to n do begin
a:=-a*x2/((2*i-1)*2*i);
s:=s+a
end;
Writeln('S=',s)
end.
Пример
Введите х и n: 3.15 10
S=-0.999964658391118
Мы получили отличную рекуррентную формулу, которая позволит обойтись без вычислений факториалов и высоких степеней х.
PascalABC.NET 3.2, сборка 1383 от 09.02.2017
(нет у меня этой древней версии Pascal ABC, её 10 лет назад разработчик на своем сайте удалил и теперь с .NET работает).
Но в Pascal ABC программа тоже пойдет.
var
x,s,a,x2:real;
i,n:integer;
begin
Write('Введите х и n: '); Read(x,n);
x2:=x*x; a:=-x2/2; s:=1+a;
for i:=2 to n do begin
a:=-a*x2/((2*i-1)*2*i);
s:=s+a
end;
Writeln('S=',s)
end.
Пример
Введите х и n: 3.15 10
S=-0.999964658391118



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вот решение задачи на языке Pascal ABC:
scssvar
X: real;
N, i: integer;
S, factorial: real;
begin
write('Введите X: ');
readln(X);
write('Введите N: ');
readln(N);
S := 1; // начальное значение суммы
factorial := 1; // начальное значение факториала
for i := 1 to N do
begin
factorial := factorial * (2 * i - 1) * (2 * i); // вычисляем факториал
S := S + power(-1, i) * power(X, 2 * i) / factorial; // добавляем очередное слагаемое к сумме
end;
writeln('Результат: ', S);
end.
Пользователю сначала предлагается ввести вещественное число X
и целое число N
. Затем выполняется цикл for
, в котором вычисляются факториалы и добавляются соответствующие слагаемые к сумме S
.
Факториал вычисляется с помощью формулы factorial := factorial * (2 * i - 1) * (2 * i)
, где i
- номер итерации цикла.
Слагаемое добавляется к сумме с помощью формулы S := S + power(-1, i) * power(X, 2 * i) / factorial
, где power(-1, i)
- (-1) в степени i
, power(X, 2 * i)
- X
в степени 2 * i
, а factorial
- значение факториала, вычисленное на текущей итерации цикла.
После завершения цикла выводится результат вычисления суммы S
.


Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili