|
0 / 0 / 0
Регистрация: 16.12.2023
Сообщений: 2
|
|||||||||
Исправить программу нахождения суммы ряда16.12.2023, 12:05. Показов 988. Ответов 5
Метки нет (Все метки)
Вот условие:
Хочу найти ошибку в программе, программу прикреплю ниже
0
|
|||||||||
| 16.12.2023, 12:05 | |
|
Ответы с готовыми решениями:
5
Вычислить значение суммы бесконечного ряда с заданной точ- ностью E. Вывести значение суммы и число членов ряда, вошедши
|
|
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,454
|
|||||||||||||||||||||||||||||||||||||
| 17.12.2023, 01:18 | |||||||||||||||||||||||||||||||||||||
Сообщение было отмечено TEXHO_KOPCAP как решение
Решение
TEXHO_KOPCAP, Вы при регистрации на форуме обещали соблюдать правила форума. Пожалуйста, выполняйте Ваше обещание. Ссылка на правила есть на любой странице форума.
Разбор полётов. Ваша программа - можно сказать, сплошная ошибка. Но - ничего страшного, Вы, похоже, только учитесь, а во время учёбы делать ошибки не позорно. Позорно не стремиться что-то узнать. Синтаксические ошибки спишем на Вашу невнимательность при копировании текста из одного места в другое. Алгоритмические ошибки:
При заданных x и ε Вашу программу можно уговорить выдать верный результат. Исправленная программа:
Приступим к решению. Изменим развёрнутое описание ряда на нормальное, и обозначим xn/n! = a, cos(nπ/3) = b: Разбиение члена ряда на два сомножителя нужно для упрощения нахождения критерия окончания вычислений: поскольку |cos(...)| ≤ 1, то можно определять окончание вычислений по bn=xn/n!. Найдём рекуррентное соотношение для an. Найдём рекуррентное соотношение для bn. Можно, конечно, вычислять bn непосредственно, или воспользоваться формулой для косинуса суммы, но в данном случае, по-моему, проще составить таблицу:
Так как cos - функция периодическая, далее всё будет повторяться. Организуем в программе массив b с этими значениями с индексами от 0 до 5, и тогда будет bn = b[n mod 6]. Можно не использовать массив, а составить формулу для вычисления значений этой таблицы в зависимости от n mod 6, но это будет слишком громоздко. Определимся с критерием окончания вычислений. Cos(...) и x обеспечивают, что ряд обязательно будет не знакочередующийся, но и не знакопостоянный. Получается, что нельзя использовать признак Лейбница для нахождения критерия окончания вычислений. Будем использовать признак сравнения. Так как |bn| ≤ 1, и bn ≠ 0, то и ряд из модулей членов Вашего ряда будут меньше соответствующих членов ряда для экспоненты от модуля аргумента: известно, что остаток этого ряда не превосходит последнего члена ряда. Получаем критерий окончания вычислений: Получился критерий окончания вычислений до безобразия похожий на критерий окончания вычислений по признаку Лейбница. Только вот... Самурай без меча подобен самураю с мечом, но без меча... Признак Лейбница сегодня чаще всего трактуют неверно. Типа, вычисления можно прекращать, если модуль очередного члена ряда становится меньше заданной точности. Правильное определение признака Лейбница, в моей редакции. Нажмите + для прочтения.
Если модули членов знакопеременного ряда, начиная с члена с некоторым номером, монотонно убывают, то, начиная с упомянутого некоторого номера, остаток ряда не превосходит модуля последнего отброшенного члена ряда.
Возможны более строгие (но, увы, ненужные) варианты, и я их отсёк. Однако, я написал для Вас некоторые мои рассуждения под спойлером, если желаете, почитайте: Нажмите + для прочтения.
Так как |bn| ≤ 1, и bn ≠ 0, то и ряд из модулей членов Вашего ряда
будут меньше соответствующих членов ряда k-й остаток этого ряда будет и, так как x < 1, этот остаток, в свою очередь, будет меньше суммы (убывающей) геометрической прогрессии c первым членом |xk/k!| = |ak| и знаменателем прогрессии x Тогда за критерий окончания вычислений можно принять Всё хорошо, вот только есть проблема: если вдруг окажется, что x ≥ 1, то все эти рассуждения вроде как идут коту под хвост. Однако, замечу, что всё-таки эти рассуждения верные, несмотря на вычисление суммы для неубывающей геометрической прогрессии с помощью суммы для убывающей геометрической прогрессии, но доказательство этого - это совершенно другая и очень длинная и нудная история. Просто запишем все вот эти мои рассуждения в тренаж. Можно также оценить остаток ряда с помощью интегрального признака Коши-Маклорена с использованием гамма-функции, но в этом случае всё получается слишком сложно, поскольку интеграл будет далеко не табличный. Пишем программу. Я вижу, что Вы, несмотря на то, что пишете в "классическом" стиле, используете Pascal ABC.NET. Не стоит этого делать, это примерно то же самое, что пилить дрова незаведённой бензопилой. Поэтому - извините, я буду писать на Pascal ABC.NET.
P. S.: Если требуется "попсовое" решение, то замените
Если нужно пилить незаведённой бензопилой, то напишите, на каком именно диалекте паскаля Вам требуется программа, или напишите, что программа должна работать на всех диалектах паскаля, которые есть на нашем форуме. И я напишу для Вас то, что Вам требуется. Есть подозрение, что учили Вас Turbo Pascal, а в качестве бесплатного компилятора порекомендовали Pascal ABC.NET.
1
|
|||||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.12.2023
Сообщений: 2
|
|
| 17.12.2023, 09:51 [ТС] | |
|
Добрый день, спасибо за объяснение задачи и извините, что писал тему не по правилам форума, впредь такого не повторится.
Хотел исправиться, нас учили на паскаль онлайн, я сам же делаю программы дома на Pascal ABC.NET, и некоторые функции я просто не знаю в ABC.NET поэтому мое решение задачи выглядит корявым
0
|
|
|
48 / 39 / 10
Регистрация: 18.09.2023
Сообщений: 256
|
|
| 17.12.2023, 10:50 | |
|
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 17.12.2023, 11:26 | |
|
1
|
|
|
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,454
|
||||||||||||||||||||||||||
| 17.12.2023, 12:07 | ||||||||||||||||||||||||||
|
TEXHO_KOPCAP,
Получается, что Вы не знаете, какому именно диалекту паскаля Вас учили. Скорее всего, Вас учили Turbo Pascal, он же TP.В онлайн-компиляторах чаще всего используется Free Pascal Compiler, он же Free Pascal, он же FPC. При очередном сеансе работы посмотрите для интереса, что там компилятор пишет во время компиляции. Среди прочего, он назовёт самого себя, будет что-то типа Free Pascal Compiler ver. 3.2. В FPC без переделки компилируется большинство программ для TP. Из оставшегося большинство программ компилируются, если в начало программы вставить строку с ключом компиляции {$MODE TP}. Не компилируются без переделки только те программы на TP, в алгоритме работы которых используется переполнение разрядной сетки 16-битных целых чисел, а также непосредственный доступ к битам машинного представления чисел в турбопаскалевском типе real, который на самом деле является ныне устаревшим типом real48.Для любого диалекта паскаля:
Теоретически, от такой коррекции может пострадать точность вычислений из-за неявного преобразования сопроцессором достаточно большого аргумента для cos в диапазон [0; π/4]. Например, если написать
-0.5000000000098036, а не -0.5000000000000000, как планировалось.Если Вы сдаёте программу роботу на проверочный сайт, и робот чего-то там ругается, то замените конец программы на
Sun Serega, вечно я об || забываю. Добавлено через 13 минут Вот ведь... Опечатался, написал b[n mod 10]... Исправил.
1
|
||||||||||||||||||||||||||
| 17.12.2023, 12:07 | |
|
Помогаю со студенческими работами здесь
6
Вычислить значение суммы бесконечного ряда с заданной точностью. Вывести значение суммы и число членов ряда
Составить алгоритм и программу нахождения суммы ряда с заданной точностью Е Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|