Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Рассмотрение метода решения






Расчет суммы будем проводить по рекуррентной формуле: S=S+C, т.е. новое значение суммы S есть старое значение суммы S + очередное слагаемое C.

Чтобы получить рекуррентное соотношение для расчета слагаемых, поделим последующее слагаемое на предыдущее. Получим:

и т.д.

Отсюда можно получить для расчета очередного слагаемого по предыдущему формулу:

C = - C*X*J/(J+1),

в которой J каждый раз увеличивается на два. Последняя рекуррентная формула (для J): J=J+2.

Очевидно, что все эти операторы должны выполняться в цикле с заранее неизвестным числом шагов. Для начала расчета необходимо задать исходные значения для J, C и S. Вполне естественно начальными значениями C и S взять первое слагаемое, т.е. единицу, а величину J подобрать такой, чтобы на первом шаге вычислить второе слагаемое по первому, т.е. J перед входом в цикл тоже сделать равным единице.

Окончание цикла осуществим, когда очередное слагаемое станет по модулю меньше EPS, но не более чем после сотого слагаемого. Последнее ограничение вводим для предотвращения возможности бесконечного цикла в случае возможных ошибок программирования.

В задании для организации итеративного цикла предложено использовать оператор repeat, поэтому условие выхода запишется:

...

until (abs(C) < EPS) or (K > 100);

Полученные значения S, K, а также вычисленное выражение F(X) и величину аргумента X будем печатать с учетом размеров возможных значений в следующем порядке: X, F(x), S, K, разделяя их вертикальной чертой:

writeln('|', X: 6: 2, '|', 1.0/Sqr(1.0+X): 10: 7, '|',

S: 10: 7, '|', K: 3, '|');

Значения не подписываем, так как расчет придется повторить несколько раз и насчитанные значения образуют таблицу, которую и озаглавим один раз до начала расчета по всем значениям X, например:

writeln('| X | F(x) | S | K |');

Так как в данном варианте нам даны начальное и конечное значения X и шаг его изменения, необходимо сначала вычислить, сколько будет значений X (и строк в таблице):

Nx: = Trunc((B - A)/Dx) +1; {функция Trunc отбрасывает

дробную часть аргумента }

Добавляется единица, так как число точек всегда на один больше числа интервалов между ними. Это, кстати, следует помнить при вычислении Dx по Nx:

Dx: = (B - A)/(Nx - 1);

Таблица идентификаторов

Таблица 21. Идентификаторы программы 31 варианта

Имя Тип Р-р (байт) Назначение
Tabl_Of_Fx Имя программы - Расчет таблицы значений функции
A Веществ.константа   Начальное значение 0.05
B "   Конечное значение 0.04
X Вещественное   Значение аргумента на j-том шаге
Dx " " Шаг аргумента
S " " Сумма
C " " Очередное слагаемое
EPS " " Заданная точность
Nx Целое   Количество шагов
J " " Номер строки таблицы
K " " Количество слагаемых
i " " Счетчик цикла по X
fout Послед. симв. файл   Для выходного файла
Vvod_Dx Метка Начало блока ввода шага
Vvod_EPS Метка Начало блока ввода точности





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.