Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графика Паскаль.doc
Скачиваний:
6
Добавлен:
23.08.2019
Размер:
1.48 Mб
Скачать

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.

Да, хаос-то есть, а вот непредсказуемость...

• Запомните расположение какой-нибудь группы звёзд, запустите программу несколько раз, следя за «избранной» группой.

Результат вас поразил? Звёздочки при каждом запуске загораются в одном и том же месте, возможно даже, они у вас точно такие же, как на приведённом выше рисунке.