Составление алгоритмов для работы с графикой

Классная работа

1. Написать программу для рисования 20 прямоугольников случайного размера

в случайном месте экрана.

Uses GraphABC; Var x, y, a, b, i : Integer; Begin SetBrushStyle(bsClear);

SetPenColor(clRandom);

For i:=1 to 10 do Begin x:=Random(400); y:=Random(300); a:=random(101); b:=random(101); Rectangle(x,y,x+a,y+b) End; End.

2. Написать программу для рисования на экране 10 разноцветных эллипсов произвольного размера. Цвет определяется случайным образом.


Вариант1

1. Что появится в графическом окне после выполнения команды ветвления, если переменная х=10:

if x > 0

then

begin

circle(100,100,50);

floodfill(100,100,clyellow) end

else

begin

rectangle(100,100,200,300); floodfill(150,150,clred)

end;

Вариант2

1. Что появится в графическом окне после выполнения команды ветвления, если переменная х=5:

if x < 0

then

begin

circle(100,100,50); floodfill(150,150,clblue)

end

else

begin

rectangle(100,100,200,300); floodfill(150,150,clgreen)

end;

Вариант 1

2. Проанализируйте работу фрагмента программы и ответьте на вопросы:

а) Что будет нарисовано на экране после выполнения программы?

Нарисуйте результат в тетради

(1 клетка = 10 пикселей).

a:=30;

x:=10;

y:=10;

for i:=1 to 10 do

begin

line(x,y,x,y+a);

x:=x+10;

end;

б) Как изменится результат, если задать а=10?

Нарисуйте результат в тетради.

в) Как изменится результат, если изменить программу?

Нарисуйте результат в тетради

a:=10;

x:=10;

y:=10;

for i:=1 to 8 do

begin

line(x,y,x,y+a);

x:=x+10;y:=y+10;

end;

Вариант 2

2. Проанализируйте работу фрагмента программы и ответьте на вопросы:

а) Что будет нарисовано на экране после выполнения программы?

Нарисуйте результат в тетради

(1 клетка = 10 пикселей).

a:=30;

x:=20;

y:=20;

for i:=1 to 10 do

begin

line(x,y,x+a,y);

y:=y+10;

end;

б) Как изменится результат, если задать а=20?

Нарисуйте результат в тетради.

в) Как изменится результат, если изменить программу?

Нарисуйте результат в тетради

a:=20;

x:=20;

y:=20;

for i:=1 to 8 do

begin

line(x,y,x+a,y); x:=x+10;

y:=y+10;

end;

Вариант 1

3. Проанализируйте работу фрагмента программыи ответьте на вопросы:

SetWindowSize(400,300);

r:=20;

x:=380;

y:=20;

while y<300 do

begin

circle(x,y,r);
y:=y+40;

end;

а) Чему равны радиусы окружностей?

б) Чему равны координаты первой нарисованной окружности?

в) На каком из рисунков изображен результат выполнения фрагмента программы?

Вариант 2

3. Проанализируйте работу фрагмента программы и ответьте на вопросы:

SetWindowSize(400,300);

r:=20;

x:=20;

y:=280;

while x<400 do

begin

circle(x,y,r);

x:=x+40;

end;

а) Чему равны радиусы окружностей?

б) Чему равны координаты первой нарисованной окружности?

в) На каком из рисунков изображен результат выполнения фрагмента программы?