Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Pascal ABC Создать текстовый файл http://www.cyberforum.ru/pascalabc/thread2165554.html
Привет всем есть такая задача: нужно написать программу которая сохраняет в тексовый файл запись типа 1;1;1; Товар№1; Товар№1;0 2;2;2; Товар№2; Товар№2;0 и так до 1500 нужно...
Pascal ABC Ввести массив строк, состоящих из цифр и символов. Вывести строки в порядке убывания количества в них цифр Ввести массив строк, состоящих из цифр и символов. Вывести строки в порядке убывания количества в них цифр. http://www.cyberforum.ru/pascalabc/thread2165489.html
Pascal ABC Написать алгоритм, по которому можно вычислить дату следующего дня
Написать алгоритм, по которому можно вычислить дату следующего дня. Указание: известно, что дата состоит из дня, месяца и года, например, для даты 19.10.86 следующим днем будет 20.10.86, а для...
По координатам трех точек на плоскости определить, лежат ли они на одной прямой Pascal ABC
По координатам трех точек на плоскости определить, лежат ли они на одной прямой.
Pascal ABC Написать комментарии http://www.cyberforum.ru/pascalabc/thread2165394.html
Напишите пожалуйста комментарии для программ: 1)Если минимальные элементы столбцов находятся над главной диагональю, то поменять местами максимальные и минимальные элементы строк. В противном...
Pascal ABC Напечатать все слова, которые содержат повторяющиеся буквы Дан массив символьных строк, содержащий слова, записанные по одному на каждой строке. Количество слов неизвестно. Напечатать все слова, которые содержат повторяющиеся буквы. В случае отсутствия... подробнее
Cyborg Drone
Модератор
5834 / 3423 / 2544
Регистрация: 17.08.2012
Сообщений: 10,966
29.12.2017, 23:34 0

Вычислить сумму ряда

29.12.2017, 23:34. Просмотров 785. Ответов 2
Метки (Все метки)

Ответ

Фрагмент программы Puporev имеет существенный недостаток. Например, если z типа integer, то при n=31 будет выдан неверный результат, а при n>31 на 32 итерации возникнет ошибка деления на 0.

Чтобы этого не было, лучше рекуррентно вычислять не 2k, а 1/2k.

А ещё лучше воспользоваться формулой Горнера, тогда 2k или 1/2k в явном виде вычислять не придётся:
Pascal
1
2
  s := 0;
  for k := n downto 1 do s := ((x + k) * cos(k * x) + s) / 2;
Да и попроще вроде получается...

Замечу, что, если z имеет вещественный тип, то проблем вплоть до log2(NaN) не возникнет, то есть, до n=308 для типов real и double, и n=4932 для типа extended. При применении формулы Горнера эти ограничения снимаются, и n ограничивается только максимальным значением для её типа. Если n имеет тип integer, то максимальное n=2147483647.

Вернуться к обсуждению:
Вычислить сумму ряда
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2017, 23:34

Вычислить сумму ряда
1-Дано натуральное число N. Вычислить: S=1+2+3+....+N

Вычислить сумму ряда
помогите составить код для:, буду очень благодарен)))

Вычислить сумму ряда
Дано действительное число а. Вычислить (а+2)/9+(а+3)12+(а+4)/15+(а+5)/18+...+(а+10)/33

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru