Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/24: Рейтинг темы: голосов - 24, средняя оценка - 4.75
Патриарх
12 / 12 / 0
Регистрация: 23.03.2009
Сообщений: 100
1

Текст перевести в последовательность точек и тире с помощью азбуки Морзе

23.03.2009, 18:57. Просмотров 4340. Ответов 12
Метки нет (Все метки)

Задача: "Вводимый с клавиатуры или из файла текст перевести в последовательность точек и тире с помощью азбуки Морзе. Результат можно проиллюстрировать звуком"
Проблема: "Выдаёт ошибку, что делать уже не знаю..."
Сама прога:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Uses Crt;
Const
Morse: array[128..159] of string[4]= (.-,-…’ ,.---,--., {А, Б, В, Г}-..,.,’…-,--..[B][U])[/U][/B]; {Параметры передачи} - [I]ВОТ ЗДЕСЬ ГОВОРИТ "fatal: syntax error, "," expected but ")" found"[/I]
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 > = ‘A’) and (mes <= ’Я’) then 
begin
{определим код очередной буквы (функция ord) сообщения и получим из таблицы кодировки соответствующий элемент массива – последовательность точек и тире}
sim := morse [ord (mes)];
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 = ‘ ‘ then {пробел между символами}
begin
write (‘ ‘); {пробел между словами сообщения}
Delay (150);
end;
end;
writeln
writeln (‘ Сообщение передано! ‘);
writeln (‘ Для завершения работы с программой нажмите ‘, ‘<enter>’);
readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2009, 18:57
Ответы с готовыми решениями:

Программа декодирование азбуки Морзе
Помогите пожалуйста написать программу на паскале для декодирования азбуки...

Переделать код азбуки морзе в более простую и доступную форму
type PItem = ^Item; Item = record next : array of PItem; value : string;...

Морзе. Заменить цифры на код морзе.
ПОМОГИТЕ!!! Люди вот пишу программу. Задание: необходимо в текстовом файле...

Шифратор\дешифратор азбуки Морзе. Модуль sounds не найден
есть прога шифратор\дешифратор азбуки Морзе.В процессе шифровки по идее...

Составить программу, выделяющую в слове Х букву о с помощью тире слева и справа
Помогите пожалуйста. Нужно составить программу, выделяющую в слове Х каждую...

12
JoKeR_SPb
27 / 27 / 9
Регистрация: 23.03.2009
Сообщений: 63
23.03.2009, 19:06 2
Ты скопировал сюда весь текст программы? Я насчитал всего 8 букв, переведенных в морзе. А диапазон немного больше)))
0
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
23.03.2009, 19:09 3
Morse=array[128..159] of string[4]= (
‘.-‘ , ‘-…’ , ‘.---‘ , ‘--. ‘ , {А, Б, В, Г}
‘-.. ‘ , ‘. ‘,’…-‘ , ‘--..’ );

Добавлено через 31 секунду
При указании типа или константы надо ставить = , а не :
0
Патриарх
12 / 12 / 0
Регистрация: 23.03.2009
Сообщений: 100
23.03.2009, 19:27  [ТС] 4
Спасибо, конечно, но теперь компилятор выдаёт Illegal expression на array, [ и предлагает вместо [ ставить ;
(Morse=array[128..159] of string[4]= (
‘.-‘ , ‘-…’ , ‘.---‘ , ‘--. ‘ , {А, Б, В, Г}
‘-.. ‘ , ‘. ‘,’…-‘ , ‘--..’ )
0
JoKeR_SPb
27 / 27 / 9
Регистрация: 23.03.2009
Сообщений: 63
23.03.2009, 19:28 5
Цитата Сообщение от k1ry4 Посмотреть сообщение
Morse=array[128..159] of string[4]= (
‘.-‘ , ‘-…’ , ‘.---‘ , ‘--. ‘ , {А, Б, В, Г}
‘-.. ‘ , ‘. ‘,’…-‘ , ‘--..’ );

Добавлено через 31 секунду
При указании типа или константы надо ставить = , а не :
При указании типа константы ставится : а не = , зачем путать человека!
0
Патриарх
12 / 12 / 0
Регистрация: 23.03.2009
Сообщений: 100
23.03.2009, 19:34  [ТС] 6
Напомню: Проблема не решена!
0
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
23.03.2009, 19:35 7
Pascal
1
2
3
type mm=array[128..159] of string[4];
 
const morse:mm=('.-','-...','.---','--.','-..','.','...-','--..');
0
JoKeR_SPb
27 / 27 / 9
Регистрация: 23.03.2009
Сообщений: 63
23.03.2009, 19:38 8
У тебя массив из 30 с лишним элементов, а та задаешь всего 8, я же тебе уже говорил!
1
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
23.03.2009, 19:46 9
Просто я указал пример использования, лично я Морзе НЕ знаю
0
Патриарх
12 / 12 / 0
Регистрация: 23.03.2009
Сообщений: 100
23.03.2009, 19:52  [ТС] 10
Я ввёл остальных обозначения - данная проблема исчезла (Спасибо JoKeR_SPb), убрал ещё пару ляпов и программа запустилась, теперь одна проблема: Я ввожу слово, которое надо перевести, он переводит первый символ и вылетает с ошибкой 201
0
Vladiator
1569 / 639 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
23.03.2009, 19:58 11
Цитата Сообщение от JoKeR_SPb
При указании типа константы ставится : а не = , зачем путать человека!
Если ":" уже было, надо ставить "=" (результаты наблюдений).
0
JoKeR_SPb
27 / 27 / 9
Регистрация: 23.03.2009
Сообщений: 63
24.03.2009, 09:29 12
Цитата Сообщение от Kidalvь Посмотреть сообщение
Если ":" уже было, надо ставить "=" (результаты наблюдений).
= Ставится при описании значения константы!
0
vozhd
0 / 0 / 0
Регистрация: 01.05.2007
Сообщений: 2
22.10.2013, 22:07 13
Скинте полностью работчею программу пожалутса
0
22.10.2013, 22:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2013, 22:07

Морзянка. Вводимый с клавиатуры текст перевести в последовательность точек и тире с помощью азбуки Морзе.
Народ, помогите плз решить 2 задачки на С оч надо... 1)Морзянка. Вводимый с ...

Перевести текст из азбуки в Морзе в обычную запись
Помогите пожалуйста. Нужно перевести из азбуки в Морзе в обычную запись. При...

Декодирование азбуки морзе
Подскажите пожалуйста как сделать декодирование азбуки морзе. Сделал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru