Модуль GRAPH. Инициализация графического режима, страница 3

                                     3 –   / / / / / / / / / /;

                                     4 –   \ \ \ \   толстыми;

                                     5 –   / / / /   толстыми;

                                     6 –   \ \ \ \ \ \ \ \ ;

                                     7 – + + + + + + +;

                                     8 – х х х х х х х х;

                                     9 – клетка;

                                    10 – редкие точки;

                                    11– частые точки;

                                    12 – определяется пользователем.

Процедура: FloodFill(X, Y, <цвет границы>) – штрихует замкнутую область содержащую точку с координатами (X, Y)  текущим цветом до заданной границы.

 Вывод (рисование) текстов 

      Процедура: OutText( <текст>) – выводит текст в заданное положение;

      Процедура: OutTextXY(X,Y, <текст>) – выводит текст в заданное положение;

       Процедура: SetTextStyle(<шрифт >, <направление>, <размер>) – задает стиль рисования текста.

Где: <шрифт > -задает тип шрифта.

     При выводе  используются один битовый и 4 штриховых шрифта.

-  битовый (стандартный, матричный 8х8 пикселей) шрифт, который входит в модуль GRAPH.TPU и содержит символы, как основного, так и дополнительного набора ASCII.

-  штриховые шрифты – символы, которых формируются из векторов (штрихов)  и хранятся в отдельных  CHR - файлах.

     Каждому стилю соответствует константа, описанная в модуле GRAPH.TPU

    Const

         DefaultFont       =  0;   {Стандартный точечный}

          TriplexFont      =  1;   {Триплекс Trip.chr}

          SmallFont         =  2;   {Индексный Litt.chr}

          SansSriefFont  =  3;   {Прямой Sans.chr}

          GothicFont        =  4;  {Готический Goth.chr}

     <направление>  - задается константой:

    Const

         HorizDir        =  0;   {Слева на право}

          VertDir         =  1;   {с низу вверх}

      <размер> - может изменяться от 1 до10.

Процедура: SetTextJustify( <горизонт>, <верт.>) –  вертикальное и горизонтальное выравнивание текста.

     Где    <горизонт> = 0 – указатель справа от центра;

                                      = 1– указатель в центре;

                                      = 2  -– указатель слева от центра;

                        <верт.> = 0 – снизу;

                                       = 1– сверху;

Пример №3

       Сформировать массив, состоящий из 20 целых чисел в диапазоне от 0 до 200. Упорядочить первую половину массива по возрастанию, а вторую по убыванию. Построить гистограмму, снабдив ее необходимыми надписями.

Текст программы

Program GrGist;

  Uses   Graph,crt;

  Const      n = 20;

  Type       mas=array [1..n] of integer;

  Var

       Gd, Gm        : Integer;

       i                    : Integer;

       m                  : mas;

       S                   : string;

       ch                 :char;

   Procedure UM(c:char;n1,n2:integer; var d:mas);

      Var

         i,j,r               : integer;

         k,l                : boolean;

      begin

        repeat

            k:=true;

            for i:=n1 to n2-1 do

                begin

                    if c='<' Then l:= d[i]<d[i+1];   if c='>' then l:= d[i]>d[i+1];

                   if l  then

                      begin

                         r:=d[i]; d[i]:=d[i+1]; d[i+1]:=r; k:=false

                       end

                   end

          until k=true

      end;

  Begin

    Repeat

     Randomize;

     For i:=1 to n do m[i]:=random(201);

     UM('>',1,10,m);      UM('<',11,20,m);

     Gd := Detect; InitGraph(Gd, Gm, 'D:\TP6_0\BGI');

     If GraphResult <> grOk then Halt(1);

     ClearDevice;     SetTextStyle(0,0,2);

     OutTextXY(130,10,'Г и с т о г р а м м а  ');

     SetTextStyle(0,0,1);

     OutTextXY(130,35,'( Случайно генерированного массива чисел )');

     SetBkColor(Random(16));     SetFillStyle(9,5);     SetTextStyle(0,1,1);

     For i:=1 to n do

       Begin

         Str(m[i],s);

         OutTextXY(30*(i-1)+25,260-m[i],S);

         Bar3D(30*(i-1),300,30*(i-1)+30,300-m[i] ,15, TopOn);

       End;

    SetTextStyle(1,0,4);

    OutTextXY(200,305,'R E S U L T ');

    Readln;

    ch:=ReadKey;

    Until ch=#27;

    CloseGraph;

  End.