|
Pascal ABC
|
|
|
Пример 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. Какие изменения нужно внести в программу, чтобы закрасить
весь экран как шахматную доску?
|
|