0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 28
1

Таблица шифрования Азбука Морзе

24.02.2013, 21:06. Показов 4655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно нужна данная таблица шифрования.. Желательно, конечно со звуками, но можно и без них. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2013, 21:06
Ответы с готовыми решениями:

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

Азбука Морзе
Здрасти) вот такая вот задачка.... дан файл записанный азбукой Морзе (между буквами слова стоит 1...

Азбука Морзе - при нажатии на клавишу выдать соответствующий сигнал
Дайте пожалуйста код Азбуки Морзе с пищанием при переводе с русского на азбуку морзе. Вот задание...

Символьная информация (азбука Морзе)
Помогите пожалуйста написать программу по этому условию: С клавиатуры или как константа вводится...

7
10229 / 6607 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
24.02.2013, 22:39 2
http://ru.wikipedia.org/wiki/Азбука_Морзе
+ звуки
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
24.02.2013, 22:52 3
Pascal
1
2
3
4
5
6
7
Uses Crt;
 
  Begin
  Sound(220);        { Звук с частотой 200 Гц } 
  Delay(200);        { На 200 миллисекунд }
  NoSound;           { Выключаем динамик }
  End.
Это пример звука. Кстати звук будет из встроенного динамика.
0
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 28
24.02.2013, 23:49  [ТС] 4
Цитата Сообщение от raxp Посмотреть сообщение
Я знаю что это такое )))
Мне нужен именно код программы..
0
10229 / 6607 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
25.02.2013, 08:43 5
Я знаю что это такое )))
Мне нужен именно код программы..
вот ваш пост:
нужна данная таблица шифрования.. Желательно, конечно со звуками
приучайтесь выражать свои мысли ясно и четко, а не эзоповым языком. И да, вы не знаете, что это такое. Вам было дано именно то, что вы и просили - таблица шифрования и звуки.

Виртуальные приборы. Синтезатор азбуки Морзе (не турбо-паскаль, но это уже ваши проблемы )
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
25.02.2013, 08:59 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Uses Crt;
{алфавит Морзе, где меньше 4 символов, добавим пробелы}
Const
Morse: array[128..159] of string[4]=
('.-  ','-...','.-- ','--. ',{А.Б.В.Г}
'-.. ','.   ','...-','--..',{Д,Е,Ж,З}
'..  ','.---','-.- ','.-..',{И,Й,К,Л}
'--  ','-.  ','--- ','.--.',{М,Н,О,П}
'.-. ','... ','-   ','..- ',{Р,С,Т,У}
'..-.','....','-.-.','---.',{Ф,Х,Ц,Ч}
'----','--.-','-..-','-.--',{Ш,Щ,Ъ,Ы}
'-..-','..-.','..--','.-.-');{Ь,Э,Ю,Я}
Var mes:string;      {сообщение}
    sim:string;  {символ в кодировке Морзе - последовательность точек и тире}
    znak:char; {" передаваемый" знак - тире или точка}
    c:char;{символ при вводе сообщения}
    i,j:integer; {номер символа и знака}
begin
clrscr;
writeln ('*** телеграф ***');
writeln ('Введите сообщение, которое надо передать ');
writeln ('(используйте только большие русские буквы), окончание ввода Enter');
{введем сообщение посимвольно, чтобы не ввести ненужные символы}
mes:='';
repeat
c:=readkey;
if c in ['А'..'Я',' '] then
 begin
  write(c);
  mes:=mes+c;
 end;
if c=#13 then writeln;
until c=#13;
for i:=1 to Length (mes) do{идем по строке}
 begin
  if (mes[i]>='A') and (mes[i]<='Я') then{если буквы}
   begin
    {определим код очередной буквы (функция ord) сообщения
     и получим из таблицы кодировки соответствующий элемент массива -
     последовательность точек и тире}
    sim:=morse[ord(mes[i])];{берем аналог из азбуки=4 символа}
    j:=1;
    repeat
     if (sim[j]='-') or (sim[j]='.' ) then{если тире или точка}
      begin
       write (sim [j]);{выводим символ}
       sound (1000);{звук частоты 1000}
       case sim[j] of {длительность звука}
         '.': Delay (50);
         '_': Delay (100);
       end;
       Nosound;{выключим звук}
       Delay (50);{разрыв между звуками}
      end;
     j:=j+1;
    until ((sim[j]=' ' ) or (j>4)); {если пробел или 4 вывели, конец буквы}
    Delay (100);   {пауза между буквами}
 end
else if mes [i]=' ' then   {пробел между символами}
 begin
  write ('  ');   {пробел между словами сообщения}
  Delay (150);
 end;
end;
writeln;
writeln (' Сообщение передано! ');
writeln (' Для завершения работы с программой нажмите ', '<Enter>');
readln;
end.
0
tralalay
03.03.2013, 14:07 7
Delphi
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
unit zvyk;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, MMSystem, Vcl.StdCtrls, Vcl.ExtCtrls,
  Vcl.Mask, Vcl.Menus, Vcl.ComCtrls;
 
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    ScrollBar1: TScrollBar;
    Label1: TLabel;
    ScrollBar2: TScrollBar;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1Change(Sender: TObject);
    procedure ScrollBar1KeyPress(Sender: TObject; var Key: Char);
    procedure Bukvakod;
    procedure ScrollBar1Change(Sender: TObject);
 
 
   private
    { Private declarations }
   public
    { Public declarations }
   end;
 
var
  Form1: TForm1;
  hmidi: HMIDIOUT;
  i, ton: integer;
  kodmorze, shifrovka: string;
  onesimvol: boolean;
 
const
  diapazon = 'а бвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
 
implementation
 
{$R *.dfm}
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   midioutshortmsg(hmidi, $C0+(ord(chr(combobox1.ItemIndex)) shl 8)+ (0 shl 16));
   scrollbar1.SetFocus;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    midioutclose(hmidi);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
      i:=0;
      onesimvol:= true;
      ton:= $7f0000+(ord(chr(scrollbar1.Position)) shl 8);
      midioutopen(@hmidi, MIDI_MAPPER, 0, 0, 0);
      midioutshortmsg(hmidi, $C0+(ord(chr(67)) shl 8)+ (0 shl 16));
end;
 
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
  if onesimvol then ton:= $7f0000+(ord(chr(scrollbar1.Position)) shl 8);
end;
 
procedure TForm1.ScrollBar1KeyPress(Sender: TObject; var Key: Char);
begin
   if lastdelimiter(diapazon,Key)<>0 then
     begin
       shifrovka:=shifrovka+Key;
       label1.Caption:=shifrovka;
       timer1.Enabled := true;
     end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if length(shifrovka)>0 then   {длина шифровки > 0}
    begin
      edit1.Text:= shifrovka[1];
      if length(kodmorze)>0 then  {длина кода морзе > 0}
        begin
          case kodmorze[1] of
            '.': begin
                   timer1.Interval:=150-scrollbar2.Position;
                   midioutshortmsg(hmidi, ton+$90);
                 end;
            '-': begin
                   timer1.Interval:=(150-scrollbar2.Position)*3;
                   midioutshortmsg(hmidi, ton+$90);
                 end;
            's': begin
                   timer1.Interval:=150-scrollbar2.Position;
                   midioutshortmsg(hmidi, ton+$80);
                   ton:= $7f0000+(ord(chr(scrollbar1.Position)) shl 8);
                 end;
            'g': begin
                   timer1.Interval:=(150-scrollbar2.Position)*3;
                   midioutshortmsg(hmidi, ton+$80);
                   ton:= $7f0000+(ord(chr(scrollbar1.Position)) shl 8);
                 end;
            'b': begin
                   timer1.Interval:=(150-scrollbar2.Position)*4;
                   ton:= $7f0000+(ord(chr(scrollbar1.Position)) shl 8);
                 end;
          end;
          {midioutshortmsg(hmidi, $7f4f90);}
          delete(kodmorze,1,1);
        end
      else      {длина кода морзе = 0}
        begin
          if onesimvol then    {если первый символ shifrovka}
            begin
              onesimvol:= false;
              Bukvakod;
            end
          else                 {если не первый символ sifrovka}
            begin
              delete(shifrovka,1,1);
              label1.Caption:= shifrovka;
              if length(shifrovka)>0 then edit1.Text:= shifrovka[1]
                                     else begin
                                            edit1.Text:= '';
                                            onesimvol:= true;
                                          end;
              if length(shifrovka)>0 then   Bukvakod;
            end;
        end;
    end
  else
    begin
      timer1.Enabled:= false;   {Длина шифровки = 0}
      onesimvol:= true;
    end;
end;
 
procedure Tform1.Bukvakod;
begin
     case shifrovka[1] of
            'а','А': kodmorze:='.s-g';
            'б','Б': kodmorze:='-s.s.s.g';
            'в','В': kodmorze:='.s-s-g';
            'г','Г': kodmorze:='-s-s.g';
            'д','Д': kodmorze:='-s.s.g';
            'е','Е': kodmorze:='.g';
            'ж','Ж': kodmorze:='.s.s.s-g';
            'з','З': kodmorze:='-s-s.s.g';
            'и','И': kodmorze:='.s.g';
            'й','Й': kodmorze:='.s-s-s-g';
            'к','К': kodmorze:='-s.s-g';
            'л','Л': kodmorze:='.s-s.s.g';
            'м','М': kodmorze:='-s-g';
            'н','Н': kodmorze:='-s.g';
            'о','О': kodmorze:='-s-s-g';
            'п','П': kodmorze:='.s-s-s.g';
            'р','Р': kodmorze:='.s-s.g';
            'с','С': kodmorze:='.s.s.g';
            'т','Т': kodmorze:='-g';
            'у','У': kodmorze:='.s.s-g';
            'ф','Ф': kodmorze:='.s.s-s.g';
            'х','Х': kodmorze:='.s.s.s.g';
            'ц','Ц': kodmorze:='-s.s-s.g';
            'ч','Ч': kodmorze:='-s-s-s.g';
            'ш','Ш': kodmorze:='-s-s-s-g';
            'щ','Щ': kodmorze:='-s-s.s-g';
            'ъ','Ъ': kodmorze:='-s-s.s-s-g';
            'ы','Ы': kodmorze:='-s.s-s-g';
            'ь','Ь': kodmorze:='-s.s.s-g';
            'э','Э': kodmorze:='.s.s-s.s.g';
            'ю','Ю': kodmorze:='.s.s-s-g';
            'я','Я': kodmorze:='.s-s.s-g';
            ' ': kodmorze:='b';
    end;
end;
end.
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
03.03.2013, 14:10 8
tralalay, Это раздел Турбо Паскаль и вряд ли кто-то оценит Ваши старания...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2013, 14:10
Помогаю со студенческими работами здесь

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

азбука морзе
Ребята помогите пожалуйста. Составить программу, которая позволяет текст содержащийся в файле...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru