Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/104: Рейтинг темы: голосов - 104, средняя оценка - 4.63
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514

Программа для (де-)кодировки сообщения в азбуку Морзе

10.01.2018, 18:06. Показов 20818. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая будет кодировать сообщения в азбуку Морзе и декодировать обратно.

Код Морзе возьмите из Википедии: https://ru.wikipedia.org/wiki/Азбука_Морзе.

В первую очередь сделайте кодирование латиницы. Если останется время, сделайте отдельную возможность кодировать и декодировать кириллический алфавит.

Для того, чтобы части программы были совместимы друг с другом, и вы могли по-отдельности работать над общей программой (как программисты в настоящих крупных проектах), заранее договоримся о названиях и сигнатурах функций.

Функция кодирования в код Морзе будет называться encodeToMorse(text).

Функция декодирования называется decodeFromMorse(code).

Также нам нужна функция main(), которая в цикле должна спрашивать у пользователя, хочет ли он закодировать или раскодировать текст, и будет вызывать функции кодирования и декодирования.

Также заведите общий глобальный массив MorseCode, в котором будут храниться пары буква-код: ('A','.-'), ('B', '-...'), ...

Чтобы обменяться кодом с другими участниками группы, можете использовать специально созданный для этого сайт https://gist.github.com/. Вы должны скопировать туда свой код, нажать кнопку “create secret gist” — и получите ссылку в интернете на ваш кусочек кода. Эту ссылку нужно продиктовать вашим соавторам, тогда они смогут открыть ваш код на своем компьютере и скопировать себе.

Чтобы не диктовать длинную ссылку, можно воспользоваться сокращателем ссылок https://bitly.com/.


Вот программа, но её надо дописать:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mas = [['З','−−··'], ['Ы','−·−−'],['Ь','−··−'],['В','·−−'],['Ж','···−'],['У','··−'],['Т','−'],['С','···'],['Р','·−·'],['Щ','−−·−'],['П','·−−·'],['О','−−−'],['Н','−·'],['М','−−'],['Л','·−··'],['К','−·−'],['Й','·−−−'],['И','··'],['Х','····'],['Г','−−·'],['Ф','··−·'],['Е','·'],['Д','−··'],['Ц','−·−·'],['Б','−···'],['А','·−'],['Ю','··−−'],['Ч','−−−·'],['Ъ','−−·−−'],['Э','··−··'],['Я','·−·−'],['Ш','−−−−']]
 
 
def encodeToMorse(text):
    for letter in text:
        for i in range(len(mas)):
            if letter == mas[i][0]:
                print(mas[i][1])
 
 
 
def decodeFromMorse(code):
    for i in range(len(mas)):
        if code == mas[i][1]:
            print(mas[i][0])
 
#decodeFromMorse(input())
Надо сделать:


"...которая будет кодировать сообщения...", и выводить сообщения.

"Также нам нужна функция main()"

"В первую очередь сделайте кодирование латиницы."
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2018, 18:06
Ответы с готовыми решениями:

Сделать программу шифрации сообщения в азбуку Морзе и обратно
Вот само задание Разработать программу шифрации сообщения в азбуку Морзе и обратно. Предусмотреть вариант настройки интерфейса, с...

Программа перевода слов с русского на азбуку Морзе
Помогите разобраться как происходит перевод слов с русского на азбуку Морзе в этой программе Program_Oksana; Uses Crt; Const Morse:...

Реализовать азбуку морзе
Нужно сделать чтобы при нажатии на кнопку был звук азбуки морза... каждой кнопке свой звук... можно только начало исходника или пример...

4
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
11.01.2018, 08:39
Python
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
# coding: utf8
mas = [['З','в€’в€’··'], ['Ы','в€’·в€’в€’'],['Ь','в€’··в€’'],['В','·в€’в€’'],['Ж','···в€’'],['У','··в€’'],['Т','в€’'],['С','···'],['Р','·в€’·'],['Щ','в€’в€’·в€’'],['П','·в€’в€’·'],['О','в€’в€’в€’'],['Н','в€’·'],['М','в€’в€’'],['Л','·в€’··'],['К','в€’·в€’'],['Й','·в€’в€’в€’'],['И','··'],['Х','····'],['Г','в€’в€’·'],['Ф','··в€’·'],['Е','·'],['Д','в€’··'],['Ц','в€’·в€’·'],['Б','в€’···'],['А','·в€’'],['Ю','··в€’в€’'],['Ч','в€’в€’в€’·'],['Ъ','в€’в€’·в€’в€’'],['Э','··в€’··'],['Я','·в€’·в€’'],['Ш','в€’в€’в€’в€’']]
 
 
def encodeToMorse(text):
    string = ''
    for letter in text:
        for i in range(len(mas)):
            if letter.upper() == mas[i][0]:
                string += mas[i][1]
    print(string)
 
 
def decodeFromMorse(code):
    string = ''
    for letter in code:
        for i in range(len(mas)):
            if letter == mas[i][1]:
                string += mas[i][0]
    print(string)
 
 
if __name__ == '__main__':
    while True:
        line = input("Вы хотите кодировать enc или раскодировать dec? ")
        if line == 'end':
            break
        if line != 'dec' and line != 'enc':
            print("Неправильная команда")
            continue
 
        text = input("Введите текст: ")
        if text == 'end':
            break
 
        if line == 'dec':
            decodeFromMorse(text)
        elif line == 'enc':
            encodeToMorse(text)
0
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
28.01.2020, 12:37
Не работает декодирование, кодирую "сос" - получаю ...---... (без пробелов!), декодирую - выходит "ЕЕЕТТТЕЕЕ"
0
2 / 2 / 0
Регистрация: 05.05.2020
Сообщений: 31
09.05.2020, 18:16
кто нибудь в итоге решил эту задачу?
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
09.05.2020, 18:52
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def encodeToMorse(text):
    itog = []
    for letter in text:
        for i in range(len(mas)):
            if letter.upper() == mas[i][0]:
                itog.append(mas[i][1])
    print(' '.join(itog))
 
 
def decodeFromMorse(code):
    itog = []
    for letter in code.split():
        for i in range(len(mas)):
            if letter == mas[i][1]:
                itog.append(mas[i][0])
    print(''.join(itog))
Добавлено через 1 минуту
Хотя со словарями было бы быстрее.

Добавлено через 32 секунды
Хотя со словарями было бы быстрее.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.05.2020, 18:52
Помогаю со студенческими работами здесь

Задача на азбуку Морзе
Вам дан английский текст. Закодируйте его с помощью азбуки Морзе:...

Написать программу - Азбуку морзе
Пожалуйста помогите написать программу Азбуку морзе на Borland Developer Studio 2006 Добавлено через 16 минут Вот у меня такое...

Данные из TextBox в азбуку Морзе
Программирование на C# для меня как хобби(профессионально не занимаюсь, что то знаю, что то нет), создаю программки под настроение....

Перевод текста в азбуку Морзе
Напишите программу-телеграф, которая принимает от пользователя сообщение и выводит его на экран в виде последовательности точек и тире или...

Перевод текста в Азбуку Морзе
Всем привет! В общем задание перевести заглавные латинские буквы в символы азбуки морзе (каждый занимает 4 символа) Вот таблица: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru