Методические указания по выполнению работы
Как известно, в языке Pascal существуют три различных вида операторов цикла (циклы – For, While и Repeat Until). При программировании на языке Pascal циклических алгоритмов с заранее известным количеством повторений тела цикла (арифметические циклы) следует использовать оператор цикла For. Оператор цикла For должен содержать параметр цикла – управляющую переменную порядкового типа. При решении задач на табулирование функций использование оператора For оказывается возможным при введении вспомогательной переменной (обозначим ее, например, I), принимающей только целочисленные значения – счетчик (целый тип относится к категории порядковых типов). Начальное значение счетчика, равное 1, и конечное значение, равное N, должны задаваться оператором цикла For.
Общий вид алгоритма решения задач, относящихся к арифметическим циклам, приведен на рис. 3. 1. Символ 2 соответствует оператору цикла For.
В качестве примера рассмотрим задачу варианта 31. Схема алгоритма для этой задачи приведена на рис.3.2. В соответствии с условием задачи необходимо предусмотреть ввод исходных данных: значений переменных N, xнач и xкон
Подготовка к первому выполнению включает в себя присвоение независимой переменной x начального значения (символ 2 на рис. 3.2), вычисление величины шага изменения аргумента – dx (символ 2 на рис. 3.2) и вывода заголовка таблицы (символ 3 на рис. 3. 2).
Анализ расчетной формулы для вычисления величины y показывает, что в нее входит выражение, независящее от x: . Введем для его обозначения вспомогательную переменную b: b = .
Значение вспомогательной переменной b целесообразно вычислять заранее, при подготовке к первому вычислению цикла, что позволит избежать многократного вычисления этой величины в цикле (символ 2 на рис. 3.2). Процедуру, связанную с вынесением из цикла действий, результат выполнения которых в цикле не изменяется, называют “чисткой цикла“.
В рабочей части цикла необходимо вычислять значение y и выводить на экран результат решения – значения I, x и y (символы 5 и 6 на рис. 3.2).
Подготовка к новому выполнению цикла состоит в изменении аргумента x на заданный шаг dx (символ 7 на рис. 3.2).
В таблице приведены идентификаторы переменных для варианта 31.
Таблица идентификаторов
Обозначение в задаче | Идентификатор | Назначение |
N | N | Количество расчетных точек |
a | a | Параметр функции |
xнач | xn | Начальное значение аргумента |
xкон | xk | Конечное значение аргумента |
- | dx | Шаг изменения аргумента |
x | x | Текущее значение аргумента |
y | y | Вычисленное значение аргумента |
- | I | Счетчик цикла |
b | Промежуточная переменная |
Отметим, что при организации цикла очень важным является определение основной операции, применение которой позволяет получить нужный результат. Такую операцию будем называть опорной. Такой операцией при решении задачи табулирования является операция, задаваемая оператором присваивания x := x + dx. Эта операция позволяет повторно использовать для вычислений расчетную формулу, стоящую в рабочей части цикла.
По условию задачи результаты вычислений должны быть оформлены в виде таблицы, снабженной заголовком. Это легко реализуется при использовании форматированного вывода. При этом следует согласовывать элементы форматирования, используемые при выводе заголовка с элементами форматирований, которые используются при выводе строк таблицы.
Например, заголовок таблицы можно выводить с помощью следующего вызова процедуры WriteLn:
WriteLn(‘Номер’:5, ‘Аргумент’:10, ‘Функция’:10);
В этом случае вывод очередной строки таблицы может быть выполнен с помощью следующего вызова процедуры WriteLn:
WriteLn(I:5, x:10:3, y:10:3);