Основы алгоритмизации и программирования. Часть четвертая. Файловая система Turbo Pascal. Асламова В.С - 43 стр.

UptoLike

85
но возвращается в основную программу, в то время как динамик будет зву-
чать до вызова процедуры NoSound.
2. Процедура NoSound выключает динамик. Если он к этому моменту
не был включен, вызов процедуры игнорируется.
3. Процедура Delay обеспечивает задержку работы программы на за-
данный интервал времени. Заголовок процедуры:
Procedure Delay (T:Word);
Здесь Твыражение типа Word, определяющее интервал времени (в
миллисекундах), в течении которого задерживается выполнение следующего
оператора программы.
Для генерации звукового сигнала обычно используется вызов описан-
ных процедур по схеме Sound – Delay – NoSound. Следующая программа
заставит ПК воспроизвести простую музыкальную гамму. Используемый в
ней массив F содержит частоты всех полутонов в первой октаве отдо до
си”. При переходе от одной октавы к соседней частоты изменяются в два
раза.
Uses CRT;
Const
F: array [1..12] of Real = (130.8, 138.6, 146.8, 155.6, 164.8, 174.6, 185.0,
196.0, 207.7, 220.0, 233.1, 246.9); {массив частот первой октавы}
Temp = 100; {темп исполнения}
var
k, n : integer;
begin
{восходящая гамма}
for k := 1 to 3 do for n := 1 to 12 do
begin
Sound (Round(F[n]*(1 shl k))); Delay (Temp);
NoSound
end;
{нисходящая гамма}
for k := 3 downto 0 do
for n :=12 downto 1 to
begin
Sound (Round (F[n]*(1 shl k)));
Delay (Temp);
NoSound
end end.
86
СТАНДАРТНЫЙ МОДУЛЬ GRAPH
Модуль Graph представляет собой библиотеку из 80 подпрограмм,
обеспечивающих построение графических изображений на плоскости. Для
того чтобы дисплей перевести в графический режим работы, используется
процедура инициализации. После его установки ваши программы при помо-
щи стандартных подпрограмм модуля Graph могут рисовать различные
фигуры любым цветом, создавать подвижные изображения, а также выводить
текст и генерировать звуки
, как и при текстовом режиме. По окончании рабо-
ты с графикой графический режим необходимо закрыть специальной
процедурой.
Приведённая ниже программа предназначена для инициализации гра-
фического режима. Её начальный фрагмент можно включать во все
программы, использующие графический режим.
Uses Graph;
Var
GraphDiver, GraphMode, ErrorCode:Integer;
begin
{задание параметров и вызов процедуры
инициализации графического режима}
GraphDiver:=Detect;
InitGraph(GraphDiver, GraphMode,
);
{проверка результата выполнения проце-
дуры инициализации}
ErrorCode :=GraphResult;
if ErrorCode <>qrOk then
begin
{графический режим не установлен. Вывод
сообщения об ошибке}
Writeln(
Ошибка графики: ,GraphErrorMsq(ErrorCode);
Writeln(
Программа аварийно завершила работу. .);
Exit;
end;
{графический режим установлен, рисова-
ние прямоугольника}
Rectangle (0, 0, GetMaxX, GetMaxY);
Readln;
CloseGraph; {закрытие графического режима}
end.
но возвращается в основную программу, в то время как динамик будет зву-                        СТАНДАРТНЫЙ МОДУЛЬ GRAPH
чать до вызова процедуры NoSound.
       2. Процедура NoSound выключает динамик. Если он к этому моменту                  Модуль Graph представляет собой библиотеку из 80 подпрограмм,
не был включен, вызов процедуры игнорируется.                                     обеспечивающих построение графических изображений на плоскости. Для
       3. Процедура Delay обеспечивает задержку работы программы на за-           того чтобы дисплей перевести в графический режим работы, используется
данный интервал времени. Заголовок процедуры:                                     процедура инициализации. После его установки ваши программы при помо-
       Procedure Delay (T:Word);                                                  щи стандартных подпрограмм модуля Graph могут рисовать различные
       Здесь Т – выражение типа Word, определяющее интервал времени (в            фигуры любым цветом, создавать подвижные изображения, а также выводить
миллисекундах), в течении которого задерживается выполнение следующего            текст и генерировать звуки, как и при текстовом режиме. По окончании рабо-
оператора программы.                                                              ты с графикой графический режим необходимо закрыть специальной
       Для генерации звукового сигнала обычно используется вызов описан-          процедурой.
ных процедур по схеме Sound – Delay – NoSound. Следующая программа                      Приведённая ниже программа предназначена для инициализации гра-
заставит ПК воспроизвести простую музыкальную гамму. Используемый в               фического режима. Её начальный фрагмент можно включать во все
ней массив F содержит частоты всех полутонов в первой октаве от “до” до           программы, использующие графический режим.
“си”. При переходе от одной октавы к соседней частоты изменяются в два               Uses Graph;
раза.                                                                                Var
   Uses CRT;                                                                         GraphDiver, GraphMode, ErrorCode:Integer;
   Const                                                                             begin
   F: array [1..12] of Real = (130.8, 138.6, 146.8, 155.6, 164.8, 174.6, 185.0,                                      {задание параметров и вызов процедуры
   196.0, 207.7, 220.0, 233.1, 246.9);       {массив частот первой октавы}                                           инициализации графического режима}
   Temp = 100;                               {темп исполнения}                           GraphDiver:=Detect;
   var                                                                                   InitGraph(GraphDiver, GraphMode,′ ′);
   k, n : integer;                                                                                                   {проверка результата выполнения проце-
   begin                                                                                                             дуры инициализации}
                                             {восходящая гамма}                          ErrorCode :=GraphResult;
      for k := 1 to 3 do for n := 1 to 12 do                                             if ErrorCode <>qrOk then
      begin                                                                              begin
         Sound (Round(F[n]*(1 shl k))); Delay (Temp);                                                                {графический режим не установлен. Вывод
         NoSound                                                                                                     сообщения об ошибке}
      end;                                                                                       Writeln(′Ошибка графики: ′,GraphErrorMsq(ErrorCode);
                                             {нисходящая гамма}                                  Writeln(′Программа аварийно завершила работу. .′);
      for k := 3 downto 0 do                                                                     Exit;
      for n :=12 downto 1 to                                                             end;
      begin                                                                                                          {графический режим установлен, рисова-
          Sound (Round (F[n]*(1 shl k)));                                                                            ние прямоугольника}
          Delay (Temp);                                                                  Rectangle (0, 0, GetMaxX, GetMaxY);
          NoSound                                                                        Readln;
     end end.                                                                            CloseGraph;                 {закрытие графического режима}
                                                                                  end.


                                      85                                                                             86