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

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

BEGIN

DRIVER := DETECT;

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

I := 1;

X := 60;

Y := 60;

REPEAT

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

BAR(I, 1, I+50, 50);

BAR(I, 400, I+50, 450);

BAR(1, I, 50, I+50);

BAR(590, I, 640, I+50);

DELAY(100);

PUTPIXEL(X, Y, SUCC(RANDOM(15));

I := I+30;

X := X+10;

Y := Y+10;

UNTIL l> = GETMAXX;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH

END.

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

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

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

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

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

Переменные:

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

I - координаты очередного квадратика;

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

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

Задача 11.7 Построить семейство одинаковых окружностей, центры которых лежат на окружности большего диаметра.

Для решения данной задачи необходимо воспользоваться уравнением окружности для определения местоположения ма­леньких окружностей где X, Y - координаты точки; Х0, Y0 - координаты центра боль­шой окружности; U - угол вращения; R - радиус большой окруж­ности.

PROGRAM PRG11_7;

USES GRAPH, CRT;

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

BEGIN

DRIVER := DETECT;

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

SETCOLOR(3);

SETFILLSTYLE(1, 1);

FLOODFILL(1, 4, 1);

T := -5;

SETCOLOR{16);

FOR I := 1 TO 100 DO

BEGIN

T := T+5;

X := GETMAXX DIV 2 -TRUNC(150*COS(10*T));

Y := GETMAXY DIV 2+TRUNC(150* SIN(10*T));

SETFILLSTYLE(1, 10);

FILLELLIPSE(X, Y, 20, 20);

DELAY(100);

END;

REPEAT

UNTIL KEYPRESSED;

CLOSEGRAPH;

END.

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

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

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

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

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

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

Переменные:

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

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

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

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

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

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

Для решения этой задачи необходимо воспользоваться уравне­нием окружности: где X, Y - координаты точки; Х0, Y0 - координаты центра враще­ния спирали; U - угол вращения; R - увеличивающийся радиус.

Координаты точки должны представлять собой целые положи­тельные числа, поэтому с помощью функции TRUNC отбрасыва­ем дробные части. В зависимости от того, куда в формулу под­ставлен радиус, спираль получается квадратная, как в программе PRG11_8A, либо круглая, как в PRG11_8B.

PROGRAM PRG11_8A;

USES GRAPH, CRT;