Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var driver, mode, X, y, I, t, xo : integer;

BEGIN

DRIVER := DETECT;

INITGRAPH(DRIVER, MODE, 'C : \BP\BGI');

SETFILLSTYLE(1, 1);

FL00DFILL(1, 4, 1);

T := -4;

X0 := 10;

SETCOLOR(O);

FOR I := 1 TO 155 DO

BEGIN

T := T+2;

X0 := X0+4;

X := X0 +TRUNC(COS(T/10)*I);

Y := GETMAXY DIV 2-TRUNC(SIN(T/10)*l);

SETFILLSTYLE(1, 10);

FILLELLIPSE(X, Y, 20, 20);

DELAY( 100);

END;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- инициируем модуль GRAPH;

- устанавливаем начальное значения радиуса, координаты центра;

- организуем цикл, в котором закрашиваем круги с все боль­шим радиусом до тех пор, пока не будет нажата любая кла­виша.

Переменные:

X, Y - координаты центра очередного круга;

Х0 - смещение по горизонтали;

I - переменная цикла;

Т - угол поворота;

DRIVER - тип графического драйвера;

MODE - режим работы графического адаптера.

Задача 11.11 Построить семейство разноцветных окружно­стей, радиусы которых увеличиваются.

PROGRAM PRG11J1;

USES GRAPH, CRT;

Var driver, mode, X, y, r : integer;

BEGIN

DRIVER := DETECT;

INITGRAPH(DRIVER, MODE, 'C : \BP\BGI');

WHILE NOT KEYPRESSED DO

BEGIN

X := GETMAXX DIV 2;

Y := GETMAXY DIV 2;

R := 20;

SETFILLSTYLE(1, 2);

FLOODFILL(1, 1, 2);

REPEAT

SETCOLOR(SUCC(RANDOM( 16)));

SETFILLSTYLE(1, SUCC(RANDOM(16)));

FILLELLIPSE(X, Y, R, R);

DELAY(IOOO);

R := R+10;

UNTIL (X+R> = GETMAXX)OR(Y+R> = GETMAXY) OR (KEYPRESSED);

CLEARDEVICE;

END;

CLOSEGRAPH

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- инициируем модуль GRAPH;

- организуем цикл до тех пор, пока не будет нажата любая клавиша;

- устанавливаем начачьные значения центров кругов, цвет за­ливки кругов и цвет фона;

- организуем вложенный цикл, в котором чередуются увели­чивающиеся разноцветные круги до тех пор, пока они не достигнут наибольших размеров;

- затем рост окружностей начинается вновь;

- после нажатия любой клавиши закрываем графический режим.

Переменные:

X, Y - координаты центра очередного круга;

R - увеличивающийся радиус;

DRIVER - тип графического драйвера;

MODE - режим работы графического адаптера.

Задача 11.12 Построить движущиеся изображения двух пря­моугольников и круга, на которых помещены сло­ва из фразы "КТО СКАЗАЛ МЯУ?"

PROGRAM PRG11_MAY;

USES GRAPH, CRT;

Var driver, mode, X, y, x1, y1, r : integer;

BEGIN

R := 80;

X:= R*2;

X1:= R*3;

Y:= R*2;

Y1:= R*3;

DRIVER := DETECT;

INITGRAPH(DRIVER, MODE, 'C : \BP\BGI');

SETCOLOR(I);

SETTEXTSTYLE(O, 0, 3);

REPEAT

X:= X+RANDOM(10);

Y := Y+RANDOM(10);

SETFILLSTYLE(1, 13);

BAR(X, Y, X+R, Y+R);

OUTTEXTXY(X+5, Y+15,'КТО');

SETFILLSTYLE(1, 14);

X1:= X1-RANDOM(10);

Y1:= Y1-RANDOM(10);

BAR(X1, Y1, X1+2*R, Y1+R);

OUTTEXTXY(X1+5, Y1+15, 'СКАЗАЛ');

SETFILLSTYLE(1, 2);

FILLELLIPSE(Y, 2*X1, R, R);

OUTTEXTXY(Y-30, 2*X1-10, 'МЯУ');

DELAY(1500);

CLEARDEVICE;

UNTIL (KEYPRESSED);

CLOSEGRAPH;

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- инициируем модуль GRAPH;

- рисуем два прямоугольника и круг с текстом;

- организуем цикл, в котором рисованные объекты двигаются до тех пор, пока не будет нажата любая клавиша.

Переменные:

X, Y, XI, Y1 - случайные координаты;

R - радиус;

DRIVER - тип графического драйвера;

MODE - режим работы графического адаптера.

Задача 11.13 Построить движущиеся изображения НЛО на фоне звездного неба.

PROGRAM PRG11_NLO;

USES GRAPH, CRT;