- •1.Графический модуль
- •2.Инициализация графического режима
- •2.Система координат
- •4.Управление цветом линии
- •5.Заливка области
- •6.Некоторые графические примитивы
- •1.Рисование забора
- •2.Относительные координаты
- •3.Строительство забора
- •4.Круги и эллипсы
- •5. Рисование дуг
- •1.Оператр цикла
- •2.Вложенные циклы
- •3. Генератор случайных чисел
- •4.Инициализация генератора случайных чисел
- •5.Случайное число из промежутка
- •6.Звезды сияют и плывут
- •1.Копирование фрагмента программы
- •2.Изменение диапазона
- •3.Определение условий выбора
- •4.Решение «проблемы штриховки»
- •5.Прверка условия для области
- •6.Дощечки
1.Оператр цикла
Величественная картина звёздного неба... Что может быть прекрасней, загадочней, заманчивей... А нарисуем-ка мы сегодня звёзды — много, целое небо!
• В новом документе инициализируйте графический режим.
• Запишите цикл, выводящий ряд звёздочек:
• Запустите программу — целый ряд звёзд:
Разбор
В этой программе реализован цикл с параметром. Чтобы лучше его понять, представим, что мы считаем «Раз, два, три...» и так до двадцати одного, а некто на каждый наш счёт выводит точку на экран.
Такой «счёт» реализуется командой for i:=l to 21 do (для i от 1 до 21 делай).
Переменная i нужна для организации подсчёта, её называют временной цикл (а иногда и счётчиком цикла) и объявляют как целую, о Оператор, который стоит после заголовка цикла (в следующей строке: PutPixel
(i*30,50,14)), называется телом цикла— именно он и есть тот невидимый художник, выводящий звёздочку на каждый счёт. о Команда PutPixel(x.y.c) выводит точку с координатами (х.у) цветом с. Как видим, в нашей программе координата х вычисляется по формуле i*30, координата у равна 50, точки рисуются жёлтым (14) цветом.
2.Вложенные циклы
Но нам не нужен ряд, хочется видеть звёзды, заполняющие всё «небо»!
Ну что ж, эта ситуация нам уже знакома по работе с Кенгурёнком — достаточно цикл, выводящий ряд звёзд, повторить несколько раз — вложить цикл внутрь цикла.
• Для этого нам понадобится ещё одна переменная цикла j — не забудьте объявить её в разделе VAR.
• Добавьте внешний цикл по j:
• Запустите программу — впечатляет?
Разбор
Вы уже поняли, что мы сделали:
цикл по j считает ряды от 1 до 15;
цикл по i считает точки в каждом ряду (от 1 до 21);
таким образом, внутренний цикл (по i) повторится 15 раз.
3. Генератор случайных чисел
Вряд ли такое небо вдохновит поэта на шедевр, а влюблённого на подвиги... Вся прелесть ночной феерии в её хаотичности, непредсказуемости. И создать такую «непредсказуемость» нам поможет генератор случайных чисел.
СПРАВКА
Для получения в программе случайных величин используется генератор случайных чисел— функция random.
Различают два вида этой функции:
с целым параметром random(n) — возвращает целое случайное число из промежутка [0; n -1];
без параметра random — возвращает вещественное случайное число из промежутка [0:1] .
Для получения целого случайного числа из произвольного промежутка [а;b] используется формула a+random(b-а+1). Например, формула 3+random(6) вернёт случайное целое число из промежутка [3;8].
Для получения вещественного случайного числа из промежутка [а;b) используется формула a+random*(b-а). Например, формула 3+random*6 вернёт случайное целое число из промежутка [3;).
Замечание. В определении промежутков квадратные скобки обозначают, что граничное число входит в промежуток, круглые — граничное число не входит в промежуток.
• Изменим программу так, чтобы звёздочки появлялись в случайных местах:
• Запустите программу — есть хаос?
Разбор
Команда random(n) выдаёт случайное целое число из промежутка [0;п-1]. Обратите внимание на промежуток: random(640) выдаст случайное число из промежутка [0;639]. И такая ситуация нас очень устраивает, потому что пиксели экрана тоже нумеруются от 0 до 639.
Да, хаос-то есть, а вот непредсказуемость...
• Запомните расположение какой-нибудь группы звёзд, запустите программу несколько раз, следя за «избранной» группой.
Результат вас поразил? Звёздочки при каждом запуске загораются в одном и том же месте, возможно даже, они у вас точно такие же, как на приведённом выше рисунке.