Помогите перевести текс проги с Pascal на С++. Задача:
Программа – телеграф, который принимает от пользователя сообщения и выводит его на экран в виде последовательности точек и тире. Вывод точек и тире сопроводить звуковым сигналом соответствующей длительности
Текст для перевода:
| Код | Program_telegraf; Uses Crt; Const Morse: array[128..159] of [4]= ( ‘.-‘ , ‘-…’ , ‘.---‘ , ‘--. ‘ , {А, Б, В, Г} ‘-.. ‘ , ‘. ‘,’…-‘ , ‘--..’ , {Д, Е, Ж, З} {И, Й, К, Л,} {М, Н, О, П} {Р, С, Т, У} {Ф, Х, Ц, Ч} {Ш, Щ, Ъ, Ы} {Ь, Э, Ю, Я} ); {Параметры передачи} TONE=100; {частота сигнала (Гц)} L1=50; {длительность (мс) «точки»} L2=100; {длительность (мс) «тире»} L3=50; {пауза (мс) между точками и тире одной буквы} L4=100; {пауза (мс) между буквами} L5=150; {пауза (мс) между словами} Var mes : string; {сообщение} sim : string[4]; {символ в кодировке Морзе – последовательность точек и тире} znak : string[1]; {“ передаваемый“ знак – тире или точка} I, j : integer; {номер символа и знака} begin clrscr; writeln (‘*** телеграф ***’); writeln (‘Введите сообщение, которое надо передать ‘); writeln (‘(используйте только большие русские буквы )‘); write (‘ -> ‘); readln (mes); for i=1 to Length (mes) do begin if (mes [i] > = ‘A’) and (mes[i] <= ’Я’) then begin {определим код очередной буквы (функция ord) сообщения и получим из таблицы кодировки соответствующий элемент массива – последователь-ность точек и тире} sim := morse [ord (mes[i])]; j :=1; repeat if (sim[j]= ‘-’ ) or (sim[j]= ‘.’ ) then begin write (sim [j]); sound (1000); case sim[j] of ‘.’: Delay (50); ‘_’: Delay (100); end; Nosound; Delay (50); end; j:=j+1; 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.
|
|