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

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

BEGIN

DRIVER := DETECT;

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

SETCOLOR(3);

SETFILLSTYLE(1, 1);

FL00DFILL(1, 4, 1);

T := -4;

SETCOLOR(16);

FOR I := 1 TO 300 DO

BEGIN

T := T+2;

X := GETMAXX DIV 2 +TRUNC(2*COS(3*T))*I;

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

SETFILLSTYLE(1, 10);

FILLELLIPSE(X, Y, 20, 20);

DELAY(100);

END;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH

END.

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

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

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

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

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

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

Переменные:

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

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

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

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

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

PROGRAM PRG11_8B;

USES GRAPH, CRT;

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

BEGIN

DRIVER := DETECT;

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

SETCOLOR(3);

SETFILLSTYLE(1, 1);

FLOODFILL(1, 4, 1);

T := -4;

SETCOLOR(16);

FOR I := 1 TO 150 DO

BEGIN

T := T+2;

X := GETMAXX DIV 2 +TRUNC(2*I*COS(T/10));

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

SETFILLSTYLE(1, 10);

FILLELLIPSE(X, Y, 20, 20);

DELAY( 100);

END;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH

END.

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

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

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

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

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

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

Переменные:

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

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

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

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

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

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

PROGRAM PRG11_9;

USES GRAPH, CRT;

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

BEGIN

DRIVER := DETECT;

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

SETFILLSTYLE(1, 1);

FLOODFILL(1, 4, 1);

T := -4;

Y0 := 10;

SETCOLOR(16);

FOR I := 1 TO 150 DO

BEGIN

T := T+2;

Y0 := Y0+3;

X := GETMAXX DIV 2 +TRUNC(COS(T/10)*I);

Y := Y0-TRUNC(SIN(T/10)*l);

SETFILLSTYLE(1, 14);

FILLELLIPSE(X, Y, 20, 20);

DELAY(IOO);

END;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH

END.

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

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

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

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

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

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

Переменные:

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

У0 - смещение кругов по вертикали;

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

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

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

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

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

PROGRAM PRG11_10;

USES GRAPH, CRT;