• Главная
  • Карта сайта
Не найдено

Пример использования подпрограмм модуля CRT в Turbo Pascal 7

Опубликовано: 02.09.2018

16.3.21. Пример использования подпрограмм модуля CRT

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

Пример.

program EXAMPLE28;  
uses CRT;  
const Text = 'Привет!';  
      TextLen = 7; {Размер текста}
      MinLen = TextLen+6; {Мин. размер окна по горизонтали.}
      Pause = 500;  
var XI, Yl, Х2, Y2: Word; {Координаты окна}
    Background: Word; {Цвет фона}
    Color: Word; {Цвет символов}
    SetBlink: Byte; {Признак мигания}
    Freq: Word; {Частота звука}
{ Процедура формирования двойной рамки }
procedure DoubleFrame;  
var i: Byte;  
begin  
  GotoXY(2, 1);  
  Write(' é '); {Левый верхний угол рамки}
  for i := 3 to X2 - 2 do  
    Write('-'); {Верхняя часть рамки}
  Write(' ù '); {Правый верхний угол рамки}
  for i := 2 to Y2 - 1 do  
    begin  
      GotoXY(2, i); {Боковые части рамки}
      Write('|');  
      GotoXY(X2 - 1, i);  
      Write('|')  
    end;  
  GotoXY(2, Y2);
  Write(' ë '); {Левый нижний угол рамки}
  for i := 3 to X2 - 2 do  
    Write('-'); {Нижняя часть рамки}
  Write(' û ') {Правый нижний угол рамки}
end;  
{ Основная часть программы }
begin  
  TextBackGround(Black);  
  ClrScr; {Очистка экрана}
  Randomize; {Инициализация генератора случайных чисел}
  while not KeyPressed do {Организация цикла до нажатия клавиши}
    begin  
      { Формирование окна }  
      X1 := 1 + Random(80 - MinLen); {Координата левого верхнего угла}
      Х2 := MinLen + Random(80 - XI - MinLen); {Горизонтальный размер рамки}
      Y2 := Round(X2 * 25 / 80) - 1; {Вертикальный размер рамки}
      Y1 := 1 + Random(24 - Y2); {Координата левого верхнего угла}
      Window(Xl, Yl, XI + Х2 - 1, Yl + Y2 - 1);  
      BackGround : = Random(8); {Цвет фона}
      Color := Random(16); {Цвет символов}
      SetBlink : = Random(2); {Мигание}
      TextBackGround(BackGround);  
      ClrScr;  
      TextColor(Color + Blink * SetBlink);  
      GotoXY((X2 - TextLen) div 2+1, (Y2 - 1) div 2+1);
      Write(Text);  
      DoubleFrame;  
      { Формирование звука }  
      BackGround:=(TextAttr and $70) shr 4; {Выделение цвета фона}
      case BackGround of
        0: Freq := 262; {До}
        1: Freq := 294; {Pe}
        2: Freq := 330; {Ми}
        3: Freq := 349; {Фа}
        4: Freq := 392; {Соль}
        5: Freq := 440; {Ля}
        6: Freq := 494; {Си}
        7: Freq := 524; {До}
      end;  
      Sound(Freq);  
      Delay(Pause);  
      NoSound  
    end;  
  Window (1, 1, 80, 25); {Полный размер экрана}
  TextBackGround(Black);  
  TextColor(LightGray);  
  ClrScr {Очистка экрана}
end.  

В этой программе организован цикл формирования на экране случайным образом окон с соответствующим заполнением и выдачи звука в зависимости от выбранного цвета фона окна. Цикл продолжается до первого нажатия любой клавиши. В программе используются различные подпрограммы модуля CRT (ClrScr, Delay, GotoXY, NoSound, Sound, TextBackGround, TextColor, Window), a также ряд констант и переменных (Black, Blink, TextAttr). Относительно программы следует сделать ряд замечаний.

В программе введена константа Text, определяющая выводимый на экран текст. В языке Паскаль идентификатор Text определяет текстовый файл (см. п. 6.6). Но т. к. он не является зарезервированным словом, его можно переопределять по своему усмотрению. Однако делать это нежелательно, потому что его первоначальное назначение становится недоступным в программе. В связи с тем, что в данной программе текстовые файлы не используются, такое определение идентификатора в данном случае допустимо. Так можно поступать с большинством типов данных, стандартными процедурами и функциями.

В процедуре формирования двойной рамки DoubleFrame используются символы псевдографики. Для того чтобы поместить такой символ в текст программы, следует, нажав клавишу Alt и не отпуская ее, набрать на правой вспомогательной панели клавиатуры код символа, после чего отпустить клавишу Alt.

При формировании звука в программе используется получение цвета фона из содержимого переменной TextAttr. Можно заметить, что эта операция в данном случае необязательна, т. к. в переменной BackGround уже находится текущий цвет фона. В программе оператор введен для того, чтобы показать, как можно использовать содержимое переменной TextAttr.

Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss