Студопедия — Тема: Организация циклов в программах
Студопедия Главная Случайная страница Обратная связь

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

Тема: Организация циклов в программах

ЗАНЯТИЕ 7

Лекция

Цикл — это многокpатно выполняемая последовательность действий. Существует два вида цикла — цикл с предусловием (цикл ”пока”) и цикл с постусловием (цикл “до”).

Алгоритмическая блок-схема цикла с предусловием.
(Прямоугольником обозначено тело цикла).

Циклу с предусловием (цикл “ПОКА”) в языке Паскаль соответствует инструкция WHILE... DO....

Формат описания:

WHILE <логическое выражение> DO
<инструкция>;

Цикл WHILE...DO многокpатно выполняет одни и те же действия пpи истинности выражения, котоpое изменяется обычно внутpи цикла. Значение логического выражения вычисляется пеpед выполнением инстpукции. Таким образом, если значение выражения с самого начала оказалось FALSE, то инструкция не будет выполнена ни разу, а значение логического выражения является условием продолжения цикла.

Если в цикле необходимо выполнить несколько инструкций, то после служебного слова DO используются операторные скобки BEGIN...END.

Формат описания:

WHILE <логическое выражение> DO
begin
<инструкция 1>;
<инструкция 2>;
<инструкция 3>;
end;

Пример 1. «Звездное небо».

Написать программу, позволяющую нарисовать на экране N разноцветных точек. (N вводится с клавиатуры).

Решение:

Опишем алгоритм решения задачи на естественном языке (русском).

В программе будем использовать следующие переменные: n — количество звезд, i — текущий номер звезды, которую рисуем, x,y — координаты точки (звезды), c — ее цвет.

Вводим с клавиатуры кодичество звезд n, инициализируем графику, в текущий номер I кладем 1 (т. е. рисуем первую звезду). Пока текущий номер i меньше или равен n задаем случайным образом координаты (x,y) и цвет (c) точки, ставим точку и меняем на единицу текущий номер i. После цикла ставим задержку, закрываем графику.

Теперь переведем этот алгоритм на Паскаль.

PROGRAM nebo;
VAR
n,i,x,y,c: INTEGER;
BEGIN { ******* MAIN PROGRAM ******* }
WRITELN('Введите количество звезд');
READLN(n);
InitGraph;
i:= 1;
WHILE i<=n DO
BEGIN
x:= random(640);
y:= random(350);
c:= random(16);
PutPixel(x,y,c);
i:= i+1;
END;
ReadKey;
CloseGraph;
END.

Пример 2. «Бегущий отрезок».

Написать программу, позволяющую сымитировать бегущий по экрану белый отрезок длиной L (L- вводится с клавиатуры), который бежит от левой стороны экрана до правой и там останавливается.

Решение:

Опишем алгоритм решения задачи на естественном языке (русском).

В программе будем использовать следующие переменные (x1,y) - координатs начала отрезкаy, (x2,y) – координаты конца отрезка, L — длина отрезка.

Вводим длину отрезка L, инициализируем графику, задаем значение координаты Y (175 — середина экрана), координаты X1 — начало отрезка, равное длине отрезка L и координаты X2 — конца отрезка, равное 0 (левая граница экрана). Пока начало отрезка не достигнет правой границы экрана, т. е. пока X1<640, рисуем линию от точки (X1,Y) до точки (X2,Y) белого цвета, потом «стираем» в конце линии (X2,Y) одну точку (ставим черную точку), увеличиваем на единицу координаты X1 и X2. После цикла ставим задержку, закрываем графику.

Теперь переведем этот алгоритм на Паскаль.

PROGRAM begotr;
VAR x1,y,x2,L: INTEGER;
BEGIN { ******* MAIN PROGRAM ******* }
WRITELN('Введите длину отрезка');
READLN(L);
InitGraph;
x2:= 0;
x1:= L;
y:= 175;
WHILE x1<640 DO
BEGIN
Line(x1,y,x2,y,15);
PutPixel(x2,y,0);
x1:= x1+1;
x2:= x2+1;
END;
ReadKey;
CloseGraph;
END.

Второй вид цикла — цикл с постусловием.

Алгоритмическая блок-схема цикла с постусловием. (Плясать до упаду). (Прямоугольником обозначено тело цикла).

Циклу с постусловием (цикл “ДО”) в языке Паскаль соответствует инструкция REPEAT... UNTIL....

Формат описания:

REPEAT
<инструкция 1>;
<инструкция 2>;
...
<инструкция n>;
UNTIL <логическое выражение>

В данном цикле сначала выполняются инстpукции, составляющие тело цикла (часть текста программы, заключенная между словами REPEAT и UNTIL), затем вычисляется значение логического выражения, если оно FALSE, то инстpукции в теле цикла повтоpяются, иначе (значение выражения — TRUE) цикл завеpшается. Таким обpазом, в инстpукции REPEAT...UNTIL тело цикла всегда выполняется хотя бы один pаз, а значение логического выражения является условием завеpшения цикла.

Построим «Звездное небо» и «Бегущий отрезок» другим способом.

Пример 1.2 «Звездное небо».

Что измениться в алгоритме решения? Описание цикла. Повторяем - задаем случайным образом координаты (x,y) и цвет (c) точки, ставим точку и меняем на единицу текущий номер I — до тех пор, пока текущий номер не станет больше N.

PROGRAMnebo;
VAR n,i,x,y,c:INTEGER;
BEGIN { ******* MAIN PROGRAM ******* }
WRITELN('Введите количество звезд');
READLN(n);
InitGraph;
i:=1;
REPEAT
x:=random(640);
y:=random(350);
c:=random(16);
PutPixel(x,y,c);
i:=i+1;
UNTIL i>n;
ReadKey;
CloseGraph;
END.

Пример 2.2 «Бегущий отрезок».

Что измениться в алгоритме решения? Описание цикла. Повторяем - рисуем линию от точки (X1,Y) до точки (X2,Y) белого цвета, потом «стираем» в конце линии (X2,Y) одну точку (ставим черную точку), увеличиваем на единицу координаты X1 и X2 — до тех пор, пока начало отрезка не достигнет правой границы экрана (т. е. X1>=640).

PROGRAM begotr;
VAR x1,y,x2,l:INTEGER;
BEGIN { ******* MAIN PROGRAM ******* }
WRITELN('Введите длину отрезка');
READLN(l);
InitGraph;
x2:=0;
x1:=l;
y:=175;
REPEAT
Line(x1,y,x2,y,15);
putpixel(x2,y,0);
x1:=x1+1;
x2:=x2+1;
UNTIL x1>=640;
ReadKey;
CloseGraph;
END.




<== предыдущая лекция | следующая лекция ==>
Дополнительная. 1. Алгоритмы практических навыков по общей и частной хирургии, детской хирургии, офтальмологии | Представление дерева в виде списка

Дата добавления: 2015-08-12; просмотров: 324. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия