- •Предисловие
- •Общая схема выполнения лабораторной работы
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Var r,d: real; {раздел описаний переменных может
- •Требования к программе
- •Общие пояснения
- •If Pr then {здесь Pr – логическая переменная,}
- •Разбор контрольного варианта Задание
- •Лабораторная работа № 3
- •Задачи лабораторной работы Вопросы, изучаемые в работе
- •Задание (общее ко всем вариантам).
- •Требования к программе.
- •Общие пояснения
- •Разбор контрольного варианта Задание
- •Алгоритм
- •Текст программы
- •Vvod: writeln('Сколько будет чисел?');
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Var Massiv1,Nmbs:IntMasMax; {завели 2 целочисл. Массива}
- •Разбор контрольного варианта Задание.
- •Текст программы
- •Результаты работы
- •Варианты заданий
- •Требования к программе
- •Содержание программы.
- •Общие пояснения
- •Var {здесь выделяется место под все массивы }
- •Разбор контрольного варианта Задание
- •Формирование таблицы идентификаторов
- •Алгоритм
- •Текст программы.
- •Содержимое файла результатов umnik5.Res
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Разбор контрольного варианта Задание
- •Рассмотрение метода решения
- •Алгоритм
- •Текст программы.
- •Vvod_eps:writeln('введите минимальный размер слагаемого);
- •Результаты расчета
- •Варианты заданий
- •Требования к программе и отчету по работе
- •Содержание программы.
- •Пояснения к лабораторной работе Общие пояснения к использованию процедур и функций.
- •Механизм параметров
- •Разбор контрольного варианта Задание
- •Б Рисунок 7. Алгоритм 31-го варианта лок-схема алгоритма Текст программы.
- •Общие пояснения Графический режим экрана
- •Алгоритмы построения графиков на экране
- •Стандартный модуль работы с графическим экраном Graph
- •Разбор контрольного варианта № 31 Задание
- •Алгоритм
- •Текст программы
- •X,y, { текущие значения переменных х и y }
- •Xmin,Xmax,{минимальное и максимальное значения х на графике}
- •Imin,Imax, {координаты экрана, соответствующие Ymin и Ymax}
- •Разбор контрольного варианта № 32 Задание
- •X,y:mas; { текущие значения переменных х и y }
- •Xmin,Xmax,t,tmin,tmax, { минимальное и максимальное значения х на графике }
- •Imin,Imax, { координаты экрана, соответствующие Ymin и Ymax }
- •Варианты заданий
- •Требования к программе
- •Содержание программы
- •Общие пояснения
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Описание файлов с данными
- •Inc(I); { стандартная процедура увеличения на 1 }
- •Разбор контрольного варианта Задание
- •Содержание программы
- •Алгоритм
- •Текст программы
- •If Beg then { если добавляем в начало }
- •If Beg then { если удаление из начала }
- •Варианты заданий
- •Литература
- •Приложение а. Система меню и команды Турбо-Паскаля Меню системы программирования Турбо-Паскаль
- •Главное меню
- •Опции главного меню
- •Локальные меню
- •Основные команды встроенного редактора текста
- •Приложение б. Сообщения об ошибках
- •Сообщения об ошибках на шаге выполнения
- •Приложение в. Описание числовых файлов для лабораторных работ
- •I,j : integer; {I- счетчик элементов массива, j - номер символа в файле }
- •Приложение г. Таблица ascii-кодов (с альтернативной кодировкой)
- •Содержание
Рассмотрение метода решения
Расчет суммы будем проводить по рекуррентной формуле: 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 |
Веществ.константа |
6 |
Начальное значение 0.05 |
B |
" |
6 |
Конечное значение 0.04 |
X |
Вещественное |
6 |
Значение аргумента на j-том шаге |
Dx |
" |
" |
Шаг аргумента |
S |
" |
" |
Сумма |
C |
" |
" |
Очередное слагаемое |
EPS |
" |
" |
Заданная точность |
Nx |
Целое |
2 |
Количество шагов |
J |
" |
" |
Номер строки таблицы |
K |
" |
" |
Количество слагаемых |
i |
" |
" |
Счетчик цикла по X |
fout |
Послед. симв. файл |
128 |
Для выходного файла |
Vvod_Dx |
Метка |
– |
Начало блока ввода шага |
Vvod_EPS |
Метка |
– |
Начало блока ввода точности |