{ Внимание! Для работы этой программы необходимо, чтобы:
1) Turbo Pascal был установлен в каталог C:\TP;
2) каталог C:\TP\BGI содержал файл egavga.bgi ;
3) в меню Options/Directories был указан путь
к файлу graph.tpu, например, С:\TP\UNITS.
Если Turbo Pascal установлен в другом каталоге, нужно изменить
путь к нему в процедуре InitGraph.
}
Program Design;
Uses Graph, Crt; { подключение к программе библиотек Crt и Graph }
Const
Height:Array[1..8] of Integer = (40,150,90,240,190,120,50,90);
{ массив высот столбиков диаграммы }
Var Color : Word; { код цвета }
Key : Char;
i, x, y, y1, h : Integer;
GrDriver, GrMode : Integer; {тип и режим работы графического драйвера}
GrError : Integer; { код ошибки графики }
BEGIN
GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI');
GrError := GraphResult; If GrError <> GrOk then Halt;
y := 120; h := 50; y1 := 140;
SetTextStyle(DefaultFont, HorizDir, 2); { шрифт, направление, размер }
OutTextXY(160, 20, 'Конструируем интерьер');
SetFillStyle(5, LightRed); { тип штриховки и цвет (ярко красный) }
For i := 4 downto 1 do
begin { рисование параллелепипедов заданного размера }
Bar3D(75, y1+i*h, 145, y1+(i+1)*h, 60, TopOff); Delay(200);
end;
Bar3D(75 , y1 , 145, y1+h , 60, TopOn); Delay(200); {задержка}
Bar3D(180, y , 290, y+h , 30, TopOn); Delay(200);
Bar3D(330, 225 , 400, y+4*h , 30, TopOn); Delay(200);
Bar3D(300, y+3*h, 370, y+5*h , 30, TopOn); Delay(200);
Bar3D(370, y+3*h, 440, y+5*h , 30, TopOn); Delay(200);
Bar3D(300, y , 370, y+h , 30, TopOn); Delay(200);
Bar3D(370, y , 440, y+h , 30, TopOn); Delay(200);
Bar3D(442, y , 500, y+5*h , 30, TopOn); Delay(200);
Rectangle(135, 425, 470, 450); { рисование pамки для сообщения }
SetTextStyle(DefaultFont, HorizDir, 1);
OutTextXY(150, 435, 'Для продолжения нажмите любую клавишу !');
Key := ReadKey; ClearViewPort; { очистка окна }
{-----------------------------------------------------------------}
SetTextStyle(DefaultFont, HorizDir, 2);
OutTextXY(100, 20, 'Рисуем столбиковую диаграмму');
x := 50; Randomize; { инициализация датчика случайных чисел }
For i := 1 to 8 do { цикл по столбикам диаграммы }
begin
Color := Random(12)+1; { задание кода цвета (кроме черного) }
SetFillStyle(i, Color);{ задание типа штриховки и цвета }
SetColor(Color);
Bar3D(x, 350-Height[i], x+50, 380, 20, TopOn); {рисование столбика}
x := x+70; { изменение координаты x };
Delay(200)
end;
Key := ReadKey; CloseGraph; {Закрытие графического режима}
END.