Pascal ABC

 

ГЛАВНАЯ
УСТАНОВКА
ОКНО ПРОГРАММЫ
ЛИНЕЙНЫЕ АЛГОРИТМЫ
ЧЕРТЁЖНИК
GraphABC
    РОБОТ
АЛГОРИТМЫ С ВЕТВЛЕНИЯМИ
АЛГОРИТМЫ С ПОВТОРЕНИЯМИ
ПРОЦЕДУРЫ И ФУНКЦИИ
ТЕСТЫ
ТВОРЧЕСКИЕ РАБОТЫ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
 
 

 

 

 

 

GraphABC ◊

Точка, отрезок, окружность, прямоугольникРисуем линииРисуем окружностиПодписываем рисункиМаленькие картиныСоставление алгоритмлв. Часть1 Часть 2Часть 3Часть 4Часть 5Более сложные  программы

Более сложные программы

  Пример 1. Заполнить весь экран окружностями радиуса 10.

 

Этапы выполнения задания.

I. Результат работы программы не зависит от исходных данных

II. Определение результатов: рисунок, изображающий кружки по всему экрану.

III. Алгоритм решения задачи.

1. Данная задача является обобщением задачи из примера 2 урока Часть 5. Все действия, которые выполнялись в этой задаче, следуем повторить для нескольких рядов. Количество рядов будет определяться высотой экрана.

2. Радиус r=10. Определяем вертикальное положение центра первой окружности y=11.

3. Вертикальное положение любой другой окружности, удовлетворяющей условию задачи, будет определяться координатой y. Для каждого вертикального положения в цикле, пока y не станет большим, чем вертикальный размер экрана, выполняем следующее:

а) задаем горизонтальное положение координаты центра окружности x=11.

б) в цикле, изменяющем значение x, рисуем окружность и изменяем горизонтальное положение окружности. Цикл должен завершиться, когда значение координаты x станет большим, чем горизонтальный размер экрана.

в) изменяем вертикальное положение центра окружности.

IV. Описание переменных:

Переменные x, y, r – integer.

V. Программа:

uses graphabc; Var x,y,r:integer;
begin

setwindowsize (400,250);

setwindowtitle ('Окружности');

r:=10;
y:=11;
while y<= 400 do
   begin x:=11;
      while x<= 400 do
         begin circle(x,y,r);x:=x+20;end;
      y:=y+20;

   end;

end.

Можешь загрузить!       Пример 1

VI. Тестирование программы:

     1. Запустите программу, проверьте, результат должен быть следующим:

2. Какие алгоритмические структуры использовались при написании данной программы?

3. Почему все окружности рисуются черным цветом? Внесите изменения в программу так, что бы все окружности были красными.

 4. Измените в программе значение r=10 на r=30. Почему получился такой рисунок? Поэкспериментируйте со значениями радиуса.

5. Какие изменения нужно внести в программу, чтобы экран заполнялся окружностями радиуса 30?

6. Внесите изменения в программу так, что бы все окружности были красными или разноцветными (см. задание 1 из урока 18).

7*. Внесите в программу изменения, так что бы экран можно было заполнять окружностями введенного радиуса.

 

  Пример 2. Нарисовать на экране шахматную доску.

 

Этапы выполнения задания.

I. Определение исходных данных: переменная k(количество кругов).

II. Определение результатов: рисунок, изображающий шахматную доску.

III. Алгоритм решения задачи.

1. Нарисуем контур доски.

2. Определяем координату y верхнего угла для первого квадрата.

3. Для решения данной задачи понадобится нарисовать 8 рядов квадратов. Каждый ряд, в свою очередь состоит из 8 квадратов.

4. В цикле для подсчета номера ряда переменная k изменяется от 1 до 8. В этом цикле выполняем следующие действия:

а) Определяем координату x левого угла для первого квадрата в текущем ряду.

б) В цикле для подсчета номера квадрата переменная n изменяется от 1 до 8.

• Определяем цвет квадрата: он белый, если сумма номера ряда и номера квадрата в ряду – четное число, и черный – если нечетное.

• Рисуем квадрат. Для рисования нового квадрата изменяем значение координаты x на 50 (длина стороны квадрата)

в) Для рисования квадрата в новом ряду изменяем значение координаты y на 50 (длина стороны квадрата).

IV. Описание переменных:

Переменные x, y (координаты верхнего левого угла квадрата), с (цвет), n, k – integer.

V. Программа:

uses graphabc; Var x,y,c,n,k:integer;
begin

setwindowsize (500,500);

setwindowtitle ('Шахматная доска');

rectangle(49,49,451,451); {контур доски}

y:=50; {координата верхнего угла первого квадрата}

for k:=1 to 8 do begin x:=50;

{координата левого угла первого квадрата в ряду}

for n:=1 to 8 do

   begin

     if (n+k) mod 2=0 then {определение цвета квадрата} c:=clwhite else c:=clblack;

   setpencolor(c);

   rectangle(x,y,x+50,y+50);

   FloodFill(x+1,y+1,c);

   x:=x+50;

   end;

   y:=y+50;

   end;

end.

Можешь загрузить!       Пример 2

VI. Тестирование программы:

1. Проверьте работу программы. Вы должны получить следующее изображение:

2. Какие алгоритмические структуры использовались при написании данной программы?

3. Какие изменения нужно внести в программу, чтобы доска рисовалась большего (меньшего) размера?

4*. Добавьте в программу возможность ввода размера клетки на шахматной доске.

5. Какие изменения нужно внести в программу, чтобы закрасить весь экран как шахматную доску?

 
 

CЕРВИС

Copyright © 2008 Гимназия №1 имени К.Калиновского г.Свислочь © Синица А.А.