Синтаксис описания процедуры
End.
Begin
End.
Nosound
Begin
End.
Begin
Чтобы вызвать стандартный модуль CRT, в первой строке программы необходимо написать USES CRT. Для включения звука используется единственный оператор SOUND, продолжительность звука регулируется оператором DELAY, отключение звука осуществляется оператором NOSOUND.
Стандартный модуль CRT
Лекция № 5
В Паскале определен целый ряд модулей, которые используются не так часто и загружаются в память с жесткого диска только по просьбе программиста. Такие модули называются стандартными. К ним можно отнести графические модули и модули работы со звуком.
Компьютер, даже, если он не имеет звуковой карты, можно заставить звучать. Для этого используются специальные операторы, входящие в стандартный модуль CRT.
Рассмотрим программу с использованием стандартного модуля
CRT:
Uses crt;
Sound(300); delay(2000); nosound
В операторе SOUNDвместо чисел можно использовать целочисленные переменные величины и выражения.
Рассмотрим еще одну программу, включающую в себя серию постепенно повышающихся звуков:
Uses crt;
Var hz:integer;
hz:=60;
while hz<800 do begin
Sound(hz);
delay(2000);
hz:=hz+40
end;
С помощью программ, использующих модуль CRT, можно запрограммировать любую мелодию, если знать частоту звучания каждой ноты: до(523), до-диез(554), ре(587), ре-диез(622), ми(659), фа(698), фа-диез(740), соль(784), соль-диез(831), ля(880), ля-диез(932), си(988).
Попробуем сделать программу для звучания песенки «Чижик-пыжик». Для этого нам необходимо знать ноты этой песни, чтобы задать частоту звучания каждой ноты. Ноты: ми-до-ми-до-фа-ми-ре-соль-соль-ля-си-до-до-до.
Программа:
Uses crt;
Sound(659); delay(1000); nosound;
Sound(523); delay(1000); nosound;
Sound(659); delay(1000); nosound;
Sound(523); delay(1000); nosound;
Sound(698); delay(1000); nosound;
Sound(659); delay(1000); nosound;
Sound(587); delay(1000); nosound;
Sound(784); delay(1000); nosound;
Sound(784); delay(1000); nosound;
Sound(880); delay(1000); nosound;
Sound(988); delay(1000); nosound;
Sound(523); delay(1000); nosound;
Sound(523); delay(1000); nosound;
Sound(523); delay(1000); nosound;
Рассматривая эту программу мы можем обнаружить, что некоторые фрагменты программы повторяются. Чтобы сэкономить время и поле экрана, а также сделать программу легкочитаемой можно ее модернизировать, используя понятие «процедура».
Процедуры(PROCEDURE)
PROCEDURE имя; begin оператор; оператор;…end;
Процедуры, также как и переменная имеет имя. Все, что написано после имени называется телом процедуры. Возьмем фрагмент выше указанной программы, который повторяется несколько раз, дадим ему имя и сделаем процедурой.
PROCEDURE doo; Begin Sound(523); delay(1000); nosound end;
Теперь напишем программу для предыдущей задачи, используя процедуры:
Uses crt;
PROCEDURE doo; begin Sound(523); delay(1000); nosound end;
PROCEDURE re; begin Sound(587); delay(1000); nosound end;
PROCEDURE mi; begin Sound (659); delay(1000); nosound end;
PROCEDURE fa; begin Sound(698); delay(1000); nosound end;
PROCEDURE sol; begin Sound(784); delay(1000); nosound end;
PROCEDURE la; begin Sound(880); delay(1000); nosound end;
PROCEDURE si; begin Sound(988); delay(1000); nosound; end;