Азбука морзе написать программу которая переводила бы строку на английском языке в морзянку

Всем доброго дня! Есть задача по азбуке Морзе на Питоне. Сделать надо через словарь. Из условия: Весь текст записан в единственной строке. Текст состоит из английских букв и пробелов, других символов в тексте нет.

В тексте не может быть двух или более пробелов подряд. Выведите каждое слово исходного текста, закодированное азбукой Морзе, на отдельной строке. Количество строк в ответе должно совпадать с количеством слов в исходном тексте. Между закодированными буквами нужно ставить ровно один пробел. Например, слово «Help» превратится в «. . .-.. .—.».

Обратите внимание, что строчные и заглавные буквы кодируются одинаково. Сам вопрос перевода решил легко — на другом курсе уже решил похожую задачу. Но тут бьюсь над переносом (каждое слово на отдельной строке).

morze = # собственно, словарь перевода текста в код text = input().lower().split() # Houston we have a problem text = ‘n’.join(text) print(text) # проверочный принт — каждое слово на отдельной строке for i in text: for key, value in morze.items(): if i==key: print(value, end=’ ‘) # однако в итоге получаем код одной строчкой
Есть еще вариант с костылем — я добавил в словарь еще одну пару значений для пробела: ‘ ‘: ‘n’
morze = text = input().lower() for i in text: for key, value in morze.items(): if i==key: print(value, end=’ ‘)

  • перед каждым кодом выводится лишний пробел (как я понимаю, унаследованный от предыдущего слова)
  • в комментах пишут что с таким костылем не принимается задача, т.к. сам словарь предоставлен платформой «как есть» без права его как-то модифицировать.
Читайте также:
Какие программы отслеживают местоположение по телефону

Пробовал такой акт отчаяния:

Азбука Морзе Для Учебы #Shorts


if i==’ ‘: print(‘n’)

Но там слова выводились с какими-то гигантскими промежутками.

Как реализовать перевод строки?

Источник: ru.stackoverflow.com

Как перевести азбуку Морзе на английский язык в C ++?

В настоящее время я пытаюсь найти способ создать функцию для перевода кода Морзе на английский язык. Вот мой код (ПРИМЕЧАНИЕ: НЕ ВЕСЬ КОД) int main ()
bilah 26 Дек 2020 в 21:26

1 ответ

Лучший ответ

Здесь вы не разбиваете код на буквы, используя «» в качестве разделителя. Попробуй это,

string convertToEnglish(string morse, string const morseCode[], string const alpha[]) < string output; string compile; string currentCodeLetter; int totalMorseCode=38; string str = morse; istringstream iss(str); // This is kinda a hack. while ( getline( iss, currentCodeLetter, ‘ ‘ ) ) < for(int marker=0;markerreturn output; >

Для более оптимального решения просто погуглите, как разбить строку на «», StackOverflow уже получил вашу поддержку :).

Обнаружение 3 пробелов

string convertToEnglish(string morse, string const morseCode[], string const alpha[]) < string output; string compile; string currentCodeLetter; int totalMorseCode=38; string str = morse; String prev; istringstream iss(str); // This is kinda a hack. while ( getline( iss, currentCodeLetter, ‘ ‘ ) ) < for(int marker=0;markerprev = currentCodeLetter; output += compile + » «; compile = «»; > return output; >

Источник: question-it.com

Проморгал слово «пытки» азбукой Морзе (TORTURE)

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

toadmin.ru

Азбука Морзе — это метод кодирования сообщения с использованием точек, тире и пробелов. Он широко используется для тайной передачи сообщений.

Возможно, вы видели использование азбуки Морзе в морских сценах многих фильмов для передачи сообщений. Здесь мы говорим об одной и той же азбуке Морзе, но с той лишь разницей, что мы собираемся написать программу на Python для перевода с английского на азбуку Морзе и наоборот.

Читайте также:
Как разбить программу на классы

азбука Морзе

Код Морзе имеет разные шаблоны для каждого английского алфавита, цифр, знаков препинания и нелатинских символов. Как только вы узнаете шаблоны азбуки Морзе для разных символов, вам будет легко их кодировать и декодировать. Вы можете обратиться к странице азбуки Морзе в Википедии для получения более подробной информации и шаблонов.

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

Следует помнить, что как прописные, так и строчные буквы имеют один и тот же шаблон азбуки Морзе. Это связано с тем, что азбука Морзе в основном используется для общения, которое не заботится о регистрах алфавита, таких как повседневные разговоры.

Давайте перейдем к части кодирования для кодирования и декодирования.

С английского на азбуку Морзе

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

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

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

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

Вы можете увидеть вывод азбуки Морзе ниже. Вы также должны увидеть аналогичную азбуку Морзе в своем терминале, если вы не изменили сообщение.

Ура! мы получили азбуку Морзе. Вы знаете, что будет после.

Читайте также:
Что такое сервисная программа Макбук

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

Вы должны были подумать об обращении словаря CHARS_TO_MORSE_CODE_MAPPING в качестве одного из шагов. Выполнение этого вручную является беспокойным и требует обновления всякий раз, когда исходное сопоставление изменяется. Давайте напишем код для реверсирования словаря.

def reverse_mapping(mapping): reversed = <> for key, value in mapping.items(): reversed[value] = key return reversed

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru