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

Free Pascal

Войти
Регистрация
Восстановить пароль
 
_Lubov_
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 3
#1

Перевести текст из азбуки в Морзе в обычную запись - Free Pascal

30.11.2015, 17:15. Просмотров 318. Ответов 6
Метки нет (Все метки)

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



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
var
  s, s1, s2:string;
  i,j,l,r:integer;
  mrz:array[1..32] of string=
                 ('.-','-...','.--','--.','-..','.','...-','--..',
                  '..','.---','-.-','.-..','--','-.','---','.--.',
                  '.-.','...','-','..-','..-.','....','-.-.','---.',
                  '----','--.-','-..-','-.--','-..-','..-.','..--','.-.-');
  b: string='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
 
begin
 
 readln (s);
     l:=0;
     r:=0;
     for i:=1 to length(s)+1 do
         begin
 
         if (s[i]=' ') or (i=length(s)+1) then
                 begin
 
                      r:=i;
                      s1:=copy(s,l+1,r-l-1);
                      l:=i;
                      for j:=1 to 32 do begin
                       if s1=mrz[j] then s2:=b[j];
                       if s1='' then s2:=' ';
                       end;
 
                      write(s2);
 
                 end;
 
         end;
 
     end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2015, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевести текст из азбуки в Морзе в обычную запись (Free Pascal):

Текст перевести в последовательность точек и тире с помощью азбуки Морзе - Pascal
Задача: "Вводимый с клавиатуры или из файла текст перевести в последовательность точек и тире с помощью азбуки Морзе. Результат можно...

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

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

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

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

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

6
APALoff
1636 / 1065 / 470
Регистрация: 03.07.2013
Сообщений: 4,506
02.12.2015, 10:27 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
Const
  nM = 32;
  zn = ['.','-'];
Var
  mrz  : array[1..nM] of string :=
                 ('.-','-...','.--','--.','-..','.','...-','--..',
                  '..','.---','-.-','.-..','--','-.','---','.--.',
                  '.-.','...','-','..-','..-.','....','-.-.','---.',
                  '----','--.-','-..-','-.--','-..-','..-.','..--','.-.-');
  RUch : string :='аАбБвВгГдДеЕжЖзЗиИйЙкКлЛмМнНоОпПрРсСтТуУфФхХцЦчЧшШщЩъЪыЫьЬэЭюЮяЯ';
 
Function Mcod(S : String) : String;
Var i,k : Integer;
    sc  : String;
Begin
  sc:='';
  For i:=1 to Length(S) do
  Begin
    k:=Pos(S[i],RUch);
    If k>0 then sc:=sc+mrz[(k+Ord(Odd(k))) div 2]+' ' else sc:=sc+S[i];
  end;
  If sc[Length(sc)]=' ' then Delete(sc,Length(sc),1);
  Mcod:=sc;
end;
 
Function GetCharM(ss : String) : String;
Var j : Integer;
Begin
  GetCharM:=ss;
  For j:=1 to nM do If mrz[j]=ss then GetCharM:=RUch[j*2];
end;
  
Function Mdecod(S : String) : String;
Var i,j,k : Integer;
    sc  : String;
Begin
  sc:=''; k:=0; S:=S+'~';
  For i:=1 to Length(S) do
  Begin
    If not (S[i] in zn) then
    Begin
      If k<>0 then
      Begin
        sc:=sc+GetCharM(Copy(S,k,i-k));
        k:=0;
      end;
      If (S[i]=' ') and (S[i+1]=' ') then sc:=sc+S[i];
    end
      else If k=0 then k:=i;
  end;
  Mdecod:=sc;
end;
 
Begin
  Writeln(Mcod('Азбука Морзе'));
  Writeln(Mdecod(Mcod('Азбука Морзе')));
end.
2
APALoff
1636 / 1065 / 470
Регистрация: 03.07.2013
Сообщений: 4,506
02.12.2015, 10:29 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вдруг понадобится табличка, прилагаю.
2
Миниатюры
Перевести текст из азбуки в Морзе в обычную запись  
_Lubov_
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 3
02.12.2015, 12:54  [ТС] #4
Спасибо
0
ZX Spectrum-128
02.12.2015, 12:58
  #5

Не по теме:

APALoff, помнится, когда-то давно писал на ZX Spectrum - basic + asm.
Ух, как меня корячило тогда

0
APALoff
02.12.2015, 13:04
  #6

Не по теме:

ZX Spectrum-128, а у меня давно сидит в голове идея брать с микрофонного входа сигнал, анализировать его и переводить морзянку в текст... пока что так и не подступился к этому ((

0
ZX Spectrum-128
02.12.2015, 13:12     Перевести текст из азбуки в Морзе в обычную запись
  #7

Не по теме:

APALoff, у меня такая же стояла задача. Я тогда и не осилил. Нашел asm-код какого-то голландца и нагло его использовал.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2015, 13:12
Привет! Вот еще темы с ответами:

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

Как научную (экспоненциальную) запись числа перевести в обычную (десятичную)? - C++
Вообщем Решил Попробовать Поизучать Cmath (Math.h) Сделал Вроде бы простую программу но если водить 4 значные число от ответ получаеться...

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

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


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

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

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