Line(250,350,250,425);
Line(250,425,300,500);
Line (400,250,400,500);
Line (550,350,550,425);
Line (550,425,500,500);
setBrushColor (ClBlack); // колеса
Circle (200,500,50);
setBrushColor (ClLightGray);
Circle (200,500,25);
setBrushColor (ClBlack);
Circle (600,500,50);
setBrushColor (ClLightGray);
Circle (600,500,25);
end
- 14 -
Тема №4 Цикл for
Цикл for
используется для повторения фрагментов программы заданное число раз.Синтаксис оператора:
for
i:=N1 to N2 do оператор;или
for
i:=N1 to N2 dobegin
оператор1;
оператор2;
....
end
;Составной оператор – это группа операторов, заключенная в операторные скобки begin ... end. |
Здесь
i – индекс цикла (обязательно переменная целочисленного типа),
N 1 – целочисленное выражение, определяющее нижнюю границу индекса цикла,
N2 – целочисленное выражение, определяющее верхнюю границу индекса цикла, N2 должно быть больше или равно N 1, для того чтобы цикл выполнился хоть один раз.
Алгоритм выполнения оператора такой:
1. Индексу цикла присваивается значение выражения N 1.
2. Проверяется условие i<=N2. Если условие истинно, то переход к п. 3, иначе к п.6.
3. Выполняются операторы тела цикла.
4. Значение индекса цикла увеличивается на единицу (автоматически!).
5. Переход к п. 2.
6. Конец цикла.
Пример: Построить таблицу квадратов чисел от 1 до 10.
| или проще:
|
Обратите внимание на указание формата вывода целого числа в операторе writeln.Число после двоеточия указывает на количество символов, отводимых для представления целого числа. Если число занимает меньшее количество цифр, то при выводе оно слева дополняется необходимым числом пробелов.
- 15 -
Цикл for
… downtoИногда возникает желание выполнить цикл for
наоборот, так чтобы индекс цикла не возрастал, а убывал. Эту возможность реализует следующая конструкция:for
i:=N2 to N1 downto оператор;Здесь подразумевается, что N2 должно быть больше или равно N 1.
Использование цикла for
для построения изображенийИспользование цикла for
весьма эффективно при построении изображений. Например, следующая программа строит набор концентрических окружностей.Program
Concentric;uses graphABC;
var
begin
SetWindowSize (400,400);
SetBrushStyle (bsClear);
// строятся 10 окружностей с
// радиусами 20, 40, ... 200
for
end
Вот более сложный пример, разберитесь с ним сами. Ответьте на вопрос: «Почему используется цикл не for
… to, а for … downto?»Program
uses graphABC;
var
begin
SetWindowSize (400,400);
SetPenStyle(psClear);
for
begin
SetBrushColor (RGB(10*i,0,0));
Circle(200,200,i*10);
end
end
Интересных эффектов можно добиться, используя так называемый «генератор случайных чисел». Встроенная функция random (N) возвращает случайное число в диапазоне от 0 до N– 1. Посмотрите, как эта возможность применяется в следующей программе.
Program
uses graphABC;
var
begin
SetWindowSize (400,400);
for
Line(Random(400),Random(400),Random(400),Random(400));
end
Задание №5. Дополните вашу графическую программу узором, получаемым с помощью цикла for
.- 16 -
Тема №5 Оператор if
В языке Pascal существуют операторы, позволяющие изменить линейный ход программы.
Их можно разделить на две группы: развилки и циклы.
Развилки Циклы if
... then ... else ... while if ... then repeat ... until case forРазвилки
Оператор if
Синтаксис[7]
оператора:if
логическое условие then оператор-1 else оператор-2;Пример: if
x>0 then z:=1 else z:=–1;