fonar.PAS

{* Фонарь *}

Unit FONAR;
Interface
Implementation
Begin
 writeln('Дорожный знак на столбе со светофором. У светофора должен гореть один фонарь');
End.

Program fonar;

Uses fonar.pas; {* Эту строку можно удалить *}
Uses Graph; {* Подключаем внешние файлы *}
Var {* В работе нам потребуются переменные: *}
  grDriver : Integer; {переменные для инициализации графического режима}
  grMode   : Integer;
  ErrCode  : Integer;
  FillInfo : FillSettingsType; {переменная для хранения заполнения "по умолчанию"}
Begin
  grDriver := Detect;
  InitGraph(grDriver, grMode, 'e:programbpbgi'); {инициируем графику}
  ErrCode := GraphResult;
  If ErrCode = grOk Then {если удачно, то продолжаем}
  Begin
    GetFillSettings(FillInfo); { цвет и само стандартное заполнение }
    SetFillStyle(XHatchFill, GetMaxColor); { новый стиль заполнения }
    Bar(200, 50, 215, 250); { рисуем столб светофора }
    SetFillStyle(FillInfo.Pattern, DarkGray); { фон светофора }
    Bar(185, 70, 230, 160);
    SetFillStyle(FillInfo.Pattern, LightGray); {само пространство светофора}
    Bar(186, 71, 229, 159);
    SetFillStyle(SolidFill, Black);
    SetColor(DarkGray);
    FillEllipse(208, 85, 13, 10); {верхний фонарь - не горит}
    SetFillStyle(SolidFill, Black);
    FillEllipse(208, 113, 13, 10); {средний фонарь - не горит}
    SetFillStyle(SolidFill, Red);
    FillEllipse(208, 140, 13, 10); {нижний фонарь - красный свет}
    SetFillStyle(SolidFill, DarkGray);
    SetColor(DarkGray);
    FillEllipse(208, 132, 8, 2); {козырек фонаря}
    SetFillStyle(SolidFill, DarkGray);
    SetColor(DarkGray);
    FillEllipse(208, 200, 30, 30); {рисуем дорожный знак}
    SetFillStyle(SolidFill, White); {темно-серый фон}
    FillEllipse(208, 200, 29, 29); {белая обводка знака}
    SetFillStyle(SolidFill, Red);
    SetColor(Red);
    FillEllipse(208, 200, 25, 25); {красный фон дорожного знака}
    SetFillStyle(SolidFill, White);
    SetColor(Red);
    Bar(190, 195, 226, 206); {знак кирпич}
    Readln; {ждем нажатия клавиши}
    CloseGraph; {выход из программы}
  End;
  If ErrCode = grOk...}
End.