Turbo Pascal для начинающих




Задача 175


{ Телеграф - передача сообщений при помощи азбуки Морзе. { Замечание: возможно надо увеличить величины задержек. } uses Crt; const
morse: array[128..159] of string[4] =(
I I _
/
I 1 f
I I
I I _ f
1 I
I
I I
. I »___
I I /
1 1 /
_ I I _
1 1 f
I 1 I .
. 1 f .
{А,Б,В,Г}
{Д,Е,Ж,3} {И,Й,К,Л} {М,Н,О,П} {Р,С,Т,У} {Ф,Х,Ц,Ч} {Ш,Щ,Ъ,Ы} {Ь,Э,Ю,Я}
{параметры передачи }
TONE=100; { частота сигнала (гц) }
Ы=50; { длительность (мс) "точки" )
L2=100; ( длительность (мс) "тире"}
L3=50; { пауза (мс) между точками и тире одной буквы }
L4=100; { пауза (мс) между буквами }
L5=150; { пауза (мс) между словами }
var
rues : string; sim: string[4];
{ сообщение }
( символ в кодировке Морзе -
последовательность точек и тире }
{ "передаваемый" знак - тире или точка { номер символа и знака }
znak: string[l] i,j: integer; in
ClrScr;
writelnC*** Телеграф ***');
writeln('Введите сообщение, которое надо передать');
writeln('(используйте только большие русские буквы)');
write('->');
readln(mes);
for i:=l to Length(mes) do
begin
if (mes[i] >= 'A') and (mes[i] <='Я') then begin
( определим код очередной буквы (ф-я Ord) сообщения и получим из таблицы кодировки соответствующий элемент массива - последовательность точек и тире sim:=morse[ord(mes[i])]; repeat
if (sim[j] = •-•) or (sim[j] = begin
write (sim[j]) ; sound(1000); case sim[j] of 1.': Delay(50); '-': Delay(lOO); end;
NoSound; Delay(50); end;
then
until ((sim[j] = ' ') or (j>4)); Delay(100); { пауза между буквами } end else
if mes[i] = ' ' then ( пробел между словами } begin
write(' '); { пробел между словами сообщения } Delay(150); end; end;
writeln;
writeln('Сообщение передано!'); writeln('Для завершения работы с программой нажмите ',
¦<Enter>'); readln; end.









Начало    Назад    Вперед