Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal (Паскаль)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.79
Патриарх
12 / 12 / 0
Регистрация: 23.03.2009
Сообщений: 100
#1

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

23.03.2009, 18:57. Просмотров 4157. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Текст перевести в последовательность точек и тире с помощью азбуки Морзе (Pascal):

Программа декодирование азбуки Морзе - Pascal
Помогите пожалуйста написать программу на паскале для декодирования азбуки Морзе !!! Условие: Программа считывает из файла &quot;morse.тхт&quot;...

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

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

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

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

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

12
JoKeR_SPb
27 / 27 / 1
Регистрация: 23.03.2009
Сообщений: 63
23.03.2009, 19:06 #2
Ты скопировал сюда весь текст программы? Я насчитал всего 8 букв, переведенных в морзе. А диапазон немного больше)))
0
yanyk1n
4330 / 1461 / 152
Регистрация: 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 / 1
Регистрация: 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
4330 / 1461 / 152
Регистрация: 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 / 1
Регистрация: 23.03.2009
Сообщений: 63
23.03.2009, 19:38 #8
У тебя массив из 30 с лишним элементов, а та задаешь всего 8, я же тебе уже говорил!
1
yanyk1n
4330 / 1461 / 152
Регистрация: 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
1567 / 637 / 25
Регистрация: 24.02.2009
Сообщений: 9,269
23.03.2009, 19:58 #11
Цитата Сообщение от JoKeR_SPb
При указании типа константы ставится : а не = , зачем путать человека!
Если ":" уже было, надо ставить "=" (результаты наблюдений).
0
JoKeR_SPb
27 / 27 / 1
Регистрация: 23.03.2009
Сообщений: 63
24.03.2009, 09:29 #12
Цитата Сообщение от Kidalvь Посмотреть сообщение
Если ":" уже было, надо ставить "=" (результаты наблюдений).
= Ставится при описании значения константы!
0
vozhd
22.10.2013, 22:07 #13
Скинте полностью работчею программу пожалутса
22.10.2013, 22:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2013, 22:07
Привет! Вот еще темы с ответами:

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

Сколько различных букв азбуки Морзе можно образовать - Комбинаторика
4) Буквы Азбуки Морзе образуются как последовательность и … сколько различных букв можно образовать используя: А) 5 символов; Б) не...

Реализовать функцию, конвертирующую обычные буквы в буквы азбуки Морзе - C++
Доброго времени суток,у меня задача написать программу,которая будет конвертировать буквы в буквы азбуки Морзе,все получилось,но вот в чем...

Написать программу "Тренажер Азбуки Морзе" - Lazarus
Всем привет! Люди добрые помогите начинающему программисту написать тренажер азбуки морза в Lazarus, задали курсовую Именно помогите в...


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

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

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