Программирование алгоритмов циклической структуры: операторы повтора
ЕАДК, преподаватель Неверова И.Ю.
Turbo Pascal 7.0
План занятия
- Повторение пройденного материала:
- Что называется алгоритмом цикла? Виды циклов?
- Что называется алгоритмом цикла?
- Виды циклов?
- Оператор цикла с параметром FOR.
- Оператор FOR для вычисления функции при изменении аргумента.
- Оператор цикла FOR на движение объектов.
- Оператор цикла с предусловием WHILE.
- Оператор цикла с постусловием REPEAT.
- Вложенные операторы цикла.
Литература : И. Г. Семакин. Основы программирования, с. 65 – 67.
Повторение пройденного материала: 1.Что называется алгоритмом цикла? 2.Виды циклов?
- 1.Цикл – такая форма организации действий, при которой одна и та же последовательность действий совершается несколько раз (или ни разу) до тех пор, пока выполняется некоторое условие.
- 2. Виды циклов:
- - с параметром
- - с предусловием
- - с постусловием
Оператор цикла с параметром FOR (со счетчиком)
- Оператор со счетчиком for («Для») - для каждого параметра, выполняемого пошагово, выполняется цикл (повтор), он используется в тех случаях, когда заранее известно, сколько раз следует повторять те или иные действия. Имеются две формы этого цикла:
- Оператор цикла с параметром (для) имеет виды:
- For (для) := to (увеличивая к…) do (выполнять) ;
- For (для) := downto (уменьшить до…) do (выполнять) ;
- Виды шага :
- TO = 1 DOWNTO = 1
ПРИМЕР цикла for
- Задача1 : Программа, которая выводит на экран таблицу перевода из градусов по шкале Цельсия (С) в градусы по Фаренгейту (F) для значений от 15 до 30 0 С с шагом 1 градус. Перевод осуществляется по формуле: F=C*1.8+32.
- Program temperatyra;
- Uses CRT;
- Var N : integer; F : real;
- Begin
- Writeln(‘Температура’);
- For N := 15 to 30 do {заголовок цикла с параметром}
- Begin {начало тела цикла}
- F := N*1.8+32;
- Writeln (‘По Цельсию’, N, ‘По Фаренгейту’, F:5:2);
- End; {конец цикла}
- Readln;
- End.
- Задача2: Программа, которая на белом фоне в середине экрана выводит номера первых четырнадцати цветов (1-14) в порядке убывания, где каждый номер будет тем цветом, который он обозначает.
- Program Cvet;
- Uses CRT;
- Var N : Byte;
- Begin
- Text Back Ground (15); {белый цвет экрана}
- ClrScr;
- GotoXY (1, 12); {установка курсора в нужную позицию}
- For N := 14 down to 1 do {заголовок цикла с параметром}
- Begin {начало тела цикла}
- Text Color (N);
- Write (N : 5);
- End; {конец цикла}
- Readln;
- End.
Оператор FOR для вычисления функции при изменении аргумента
- Вывести на экран таблицу вычислений значений у при изменении х от а = - 5 до Ь = + 5 с шагом h = 0.5 по соответствующим формулам:
ШАГ 1: Определить число повторов : N = (b-a)/h+1 = (5-(-5))/0.5+1 = 21.
ШАГ 2: Составление программы:
End;
Оператор цикла FOR на движение объектов
- Сначала необходимо подключить библиотеки CRT и GRAPH .
- Затем прописать путь подключения графического драйвера Dr := detect; Initgraph(dr, md, ‘C:\tp70\BGI’);
- После этого необходимо указать цикл повтора координаты^ по оси X рисования объекта: For X := 1 to 640 do по оси Y рисования объекта: For Y := 1 to 480 do
- Теперь приступаем к рисованию объекта необходимого цвета и с указанием его координат.
- Делаем задержку экрана в миллисекундах Delay (150) для просмотра рисунка;.
- После этого повторяем рисование объекта, но цветом фона экрана (стираем объект).
- Для предварительного выхода из цикла в ходе программы используем клавиши CTRL+Pause (1 раз при нажатии клавиш происходит остановка цикла, 2 раз – выход из программы).
Пример программы:
Program koloboc;
Uses CRT,Graph;
Var dr, md: integer;
x : integer ;
Begin
dr:=detect;
initgraph(dr,md,'C:\TP70\BGI');
{идентификатор программы}
For X:=0 to 640 do
{Подключение библиотек}
Begin
{Описание переменных}
ClearViewPort;
{Начало первого блока программы}
SetBkColor(15);
{Идентификатор графического драйвера}
SetLineStyle(0,1,3);
{Путь к графическому драйверу}
SetColor(14);
SetFillStyle(1,14);
{Счетчик цикла переменной X}
PieSlice( x+50 ,200,0,360,40);
{Начало второго блока программы}
SetColor(9);
{Очистка графического экрана}
SetFillStyle(1,9);
{Цвет фона экрана}
Sector( x+30 ,190,0,360,5,10);
{Установка стиля толстой линии}
{Установка цвета линий}
Sector( x+70 ,190,0,360,5,10);
{Установка стиля и цвета заливки}
SetColor(4);
{Рисование закрашенной окружности}
Arc( x+50 ,210,200,340,20);
Delay(150);
{Установка цвета линий}
End;
{Установка стиля и цвета заливки}
{Рисование сектора круга 1}
Delay(20);
End.
{Рисование сектора круга 2}
{Установка цвета линий}
{Рисование дуги}
{Задержка экрана}
{Конец второго блока программы}
{Задержка перед выходом из цикла}
{Конец программы.}
Оператор цикла с предусловием WHILE
- Оператор While («Пока») – пока выполняется условие (True), совершаем действие до тех пор, пока условие не перестанет выполняться (False), здесь проверка условия выполнения тела цикла производится в самом начале оператора.
- Цикл «пока» может не выполниться ни разу, если значение логического выражения сразу же оказывается False (ложно).
- Оператор цикла с предусловием (пока) имеет вид:
- While (пока)
- do (выполнять) ;
0) do {условие выполнения цикла} Begin S := S+С; Writeln(‘сумма введенных чисел равна: ’, S); end; Readln; End. " width="640"
- Задача: Программа производящая суммирование десяти произвольно введенных чисел.
- Program Wast;
- Uses CRT;
- Var C, S: integer;
- Begin
- Clrscr;
- Writeln(‘Вычислить сумму чисел, для окончания цикла ввести число ноль’);
- Write(‘введите целое число: ’); Readln (С); {ввод очередного числа c клавиатуры}
- S := 0; {обнуление суммы чисел}
- While (C 0) do {условие выполнения цикла}
- Begin
- S := S+С;
- Writeln(‘сумма введенных чисел равна: ’, S); end;
- Readln;
- End.
Пример задачи
Найти максимальное число из всех введенных целых чисел
Оператор цикла с постусловием REPEAT
- Оператор Repeat («До») - совершаем действие до тех пор, пока не выполнится условие (с False на True), здесь условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла .
- Цикл с постусловием (до) прекращает выполняться, как только значение выражения условия, записанного после слова Until, становится равным истине (True).
- Оператор цикла с постусловием (до) имеет вид:
- Repeat (повторять) ; … ;
- Until (до) ;
- Задача : программа которая вводит и суммирует любое количество целочисленных значений. Если введено число ноль, то на экран выводится результат суммирования.
- Program Reshenie;
- Uses CRT;
- Var X : integer;
- Sum : real;
- Begin
- Writeln (‘Вычисление суммы чисел, при вводе числа 0 программа выходит из цикла’);
- Sum := 0;
- Repeat {повторять}
- Write (‘Значение X=’); {начало тела цикла}
- Readln(X); {считать очередное значение X с клавиатуры}
- If X 0 then
- Sum := Sum+X;
- Until X = 0; {условие окончания цикла}
- Writeln (‘сумма введенных чисел =’, Sum);
- Readln;
- End.
Пример задачи
Найти максимальное число из всех введенных целых чисел
Вложенные операторы цикла
- Если телом цикла является циклическая структура, то такие циклы называются вложенными.
- Цикл, содержащий другой цикл, называется внешним , а цикл, содержащийся в теле другого цикла, называется внутренним.
- Внешние и внутренние циклы могут быть трех видов: - циклами с предусловие while, - циклами с постусловием repeat, - циклами с параметром for.
- Внимание ! Все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла.
Вложенный оператор цикла FOR
- Задача 1 : С использованием цикла for решение задачи вывода на экран таблицы умножения может быть следующим:
- Program Tab_Umn;
- Uses CRT;
- Var n, m : byte;
- Begin
- For n := 1 to 10 do {внешний цикл}
- For m := 1 to 10 do {внутренний цикл}
- Writeln (n, ‘*’ ,m, ’=’ ,n*m); {тело внутреннего цикла}
- Readln;
- End.
Домашнее задание
- Решить задания в рабочей тетради
- Тема 4.8