Теоретические сведения
Циклический алгоритм – алгоритм, предусматривающий многократное повторение одних и тех же действий, называемых телом цикла. Блок операторов, находящийся между началом и концом цикла называется "тело цикла". Процесс однократного выполнения тела цикла называется итерацией цикла.
Если количество повторов заданного блока операторов известно заранее, используют цикл с заданным числом повторений For.
Оператор цикла FOR имеет структуру:
FOR <пар_цик>:= <нач_знач> TO <кон_знач> DO <оператор>
или
FOR <пар_цик>:= <нач_знач> DOWNTO <кон_знач> DO <оператор>
Здесь FOR, TO, DO, DOWNTO - зарезервированные слова,
<пар_цик> - параметр цикла,
<нач_цик> - начальное значение параметра цикла,
<кон_цик> - конечное значение параметра цикла,
<оператор> - произвольный оператор языка Pascal.
В первом случае значение параметра цикла увеличивается на 1 при каждом проходе цикла, во втором – на 1 уменьшается. Тип параметра цикла обязательно должен совпадать с типом начального и конечного значений цикла. Из стандартных скалярных типов в качестве параметра цикла нельзя использовать переменные вещественного типа.
Выполнение оператора цикла начинается с проверки
условия <пар_цик> < =<кон_знач> для цикла ТО (<пар_цик> > =<кон_знач>для цикла DOWNTO). Если оно не справедливо, то оператор, составляющий тело цикла, не выполняется, а управление передается следующему за циклом оператору. Если же условие истинно, то выполняется тело цикла, а затем параметру цикла присваивается следующее значение (для цикла ТО) или предыдущее значение (для цикла DOWNTO). Далее весь процесс повторяется. Если параметр цикла целого типа, то это означает его увеличение (соответственно уменьшение) на единицу при каждом новом выполнении расположенного в цикле оператора. Задать шаг, отличный от 1 или - 1, нельзя!
|
На блок схеме цикл с заданным числом повторений обозначается щестиугольником, внутри указывается параметр цикла (i), начальное и конечное значение параметра. Параметр цикла по очереди принимает все значения от начального до конечного
Пример разработки программы циклической структуры
Постановка задачи: разработать алгоритм и составить программу решения задачи вычисления значения функции y для заданных значений аргумента x: , x изменяется от xн =15до xк= 25с шагом ∆ х =1,5. Таблицу значений вывести на рабочий лист.
Рассчитаем количество значений функции (точек) ( целая часть числа. В каждой точке вычисляем значение y, печатаем x и y. Затем переходим к следующему x.
Блок схема алгоритма приведена на рис. 4.1
Рис. 4.1. Блок-схема алгоритма
Текст программы:
program PRIMER4;
const a=4;
var i, n:integer; x,у,xn,xk,dx: real;
begin
readln(xn,xk,dx);
n:=trunc((xk-xn)/dx);
x:=xn;
for i:=1 to n do
begin
y:=a*sqr(x)/sqrt(x+a);
writeln(x,’ ’,y);
x:=x+dx;
end;
end.
Последовательность выполнения работы
4.3.1 Разработать блок-схему решения задачи табулирования функции y в соответствии с вариантом (таблица 3.1). Вычислить и напечатать значения функции y для значений аргумента, изменяющихся от хн до хк с шагом ∆х
4.3.2 Написать программу на языке Паскаль
4.2.1 Выполнить программу
4.2.2 Оформить отчет
Таблица 5.1. Задание для выполнения
Варианты задания | Расчетные формулы | Исходные данные | ||||
а | b | хн | хк | ∆х | ||
y=arctg bx/(1+sin2x) | - | 0,75 | 1,35 | 6,5 | 0,8 | |
19,6 | 7,6 | 14,6 | 34,8 | |||
1,38 | -1,26 | |||||
- | 1,68 | 1,2 | 2,4 | 0,2 | ||
0,36 | 5,5 | |||||
0,9 | 1,85 | 1,2 | 0,15 | |||
1,24 | 0,67 | 10,2 | 12,4 | 0,45 | ||
2,8 | 0,45 | 4,5 | ||||
20,2 | 7,65 | 3,5 | 0,1 | |||
4,6 | 2,5 | 0,75 | 1,8 | 0,3 | ||
0,55 | 0,78 | 4,2 | 5,8 | 0,25 | ||
7,83 | 0,3 | 0,35 | ||||
0,28 | 1,35 | 1,2 | 7,5 | 0,5 | ||
0,9 | 0,66 | 2,3 | 8,9 | 1,3 | ||
0,85 | - | 17,2 | 24,6 |
|
5.4 Содержание отчета
Цель работы, постановка задачи, краткие теоретические сведения, текст программы с пояснениями, анализ результатов, выводы
5.5.Контрольные вопросы
1. Назначение оператора цикла.
2.Какова структура цикла с заданным числом повторений?
3. Как задать количество повторений цикла?
4. Может ли цикл с заданным числом повторений не выполниться ни разу?
5 Из каких элементов состоит заголовок цикла?