Сборник задач и упражнений для лабораторного практикума по курсу "ЭВУ и системы" (изучение архитектуры и системы команд INTEL-совместимых микропроцессоров). Коршунов А.Д. - 10 стр.

UptoLike

Составители: 

10
9. Итоговые задания
Задание 1. Работа с кодом Морзе
Предлагается написать программу, перекодирующую текстовое сообщение
(строку) в код Морзе либо программу, по коду Морзе восстанавливающую исходную
строку.
Краткая историческая справка (прочитать обязательно!). Американец Сэмюэль
Морзе (Samuel Morse) в 1837 году изобрёл телеграфный аппарат для передачи информации с по-
мощью сигналов двух видов - точек и тире. В аппарате Морзе принятая телеграмма записыва-
лась на бумажную ленту. Своё «второе рождение» код Морзе получил после изобретения радио-
связи в 1895 году (А.С Попов -
Россия, Г. Маркони - Италия), когда была обнаружена возмож-
ность приёма телеграфных радиограмм на слух, без предварительной записи. К середине XX ве-
ка телеграфные аппараты Морзе были практически вытеснены буквопечатающими аппаратами,
однако определённый интерес к коду Морзе появился вновь после изобретения микропроцессо-
ров и микроконтроллеров. В настоящее время код (азбука) Морзе продолжает применяться
в ра-
диолюбительской связи (CW-связь), а также в аварийно-спасательных системах в качестве за-
пасного средства. Радиосигналы Морзе удаётся принимать даже при наличии таких сильных
помех, когда никакой другой вид радиообмена невозможен.
В коде Морзе каждый символ (буква, цифра, знак препинания) представлен в
виде комбинации двух знаков - точек и тире. Количество этих знаков может быть от 1
до 6, то есть код Морзе - это пример неравномерного кода. За единицу времени при пе-
редаче принята продолжительность точки. Продолжительность тире должна быть равна
трём точкам. Продолжительность паузы между знаками - одна точка, между символами
- три точки, между словами - семь точек. Мы видим, что код Морзе - не двоичный код,
как иногда принято считать: его алфавит содержит не два, а целых пять знаков - точка,
тире и три вида пробелов.
Цифровая аппаратура работает с битами и байтами. Как же представить с их по-
мощью код Морзе? Для упрощения задачи ограничимся только буквами (без цифр и
служебных символов). Один из возможных способов состоит в том, что каждая буква,
как и в коде ASCII, представляется одним байтом. Младший полубайт (4 бита) пусть
содержит количество знаков - точек и тире - в данной букве. Старший полубайт (ещё 4
бита) будет содержать саму последовательность точек и тире для данной буквы, причём
точку будем кодировать нулём, а тире - единицей и записывать эту последовательность,
начиная с крайнего левого бита
. Поскольку количество точек и тире в букве (за редким
исключением) не превышает 4, нам как раз хватит этих четырёх бит.
Пример. Буква «А» кодируется по Морзе как «точка-тире». Количество знаков
- два, число 2 в двоичной системе - это 10, отсюда младший полубайт = 0010. Старший
полубайт будет содержать 0100, так как «точка» - это 0,
«тире» - это 1, остальные би-
ты не используются и остаются нулями. Байт 0100 0010 переводим в шестнадцатерич-
ную систему и получаем 42h - это и есть представление буквы «А». Итак, всё вместе:
А = ( -) = 0100 0010 = 42h
Непонятно? Тогда вот ещё примеры (буквы из четырёх знаков):
Б = (
- ) = 1000 0100 = 84h
Ж = (
-) = 0001 0100 = 14h
                                                                                              10

9. Итоговые задания

Задание 1. Работа с кодом Морзе

       Предлагается написать программу, перекодирующую текстовое сообщение
(строку) в код Морзе либо программу, по коду Морзе восстанавливающую исходную
строку.

               Краткая историческая справка (прочитать обязательно!). Американец Сэмюэль
      Морзе (Samuel Morse) в 1837 году изобрёл телеграфный аппарат для передачи информации с по-
      мощью сигналов двух видов - точек и тире. В аппарате Морзе принятая телеграмма записыва-
      лась на бумажную ленту. Своё «второе рождение» код Морзе получил после изобретения радио-
      связи в 1895 году (А.С Попов - Россия, Г. Маркони - Италия), когда была обнаружена возмож-
      ность приёма телеграфных радиограмм на слух, без предварительной записи. К середине XX ве-
      ка телеграфные аппараты Морзе были практически вытеснены буквопечатающими аппаратами,
      однако определённый интерес к коду Морзе появился вновь после изобретения микропроцессо-
      ров и микроконтроллеров. В настоящее время код (азбука) Морзе продолжает применяться в ра-
      диолюбительской связи (CW-связь), а также в аварийно-спасательных системах в качестве за-
      пасного средства. Радиосигналы Морзе удаётся принимать даже при наличии таких сильных
      помех, когда никакой другой вид радиообмена невозможен.

        В коде Морзе каждый символ (буква, цифра, знак препинания) представлен в
виде комбинации двух знаков - точек и тире. Количество этих знаков может быть от 1
до 6, то есть код Морзе - это пример неравномерного кода. За единицу времени при пе-
редаче принята продолжительность точки. Продолжительность тире должна быть равна
трём точкам. Продолжительность паузы между знаками - одна точка, между символами
- три точки, между словами - семь точек. Мы видим, что код Морзе - не двоичный код,
как иногда принято считать: его алфавит содержит не два, а целых пять знаков - точка,
тире и три вида пробелов.
        Цифровая аппаратура работает с битами и байтами. Как же представить с их по-
мощью код Морзе? Для упрощения задачи ограничимся только буквами (без цифр и
служебных символов). Один из возможных способов состоит в том, что каждая буква,
как и в коде ASCII, представляется одним байтом. Младший полубайт (4 бита) пусть
содержит количество знаков - точек и тире - в данной букве. Старший полубайт (ещё 4
бита) будет содержать саму последовательность точек и тире для данной буквы, причём
точку будем кодировать нулём, а тире - единицей и записывать эту последовательность,
начиная с крайнего левого бита. Поскольку количество точек и тире в букве (за редким
исключением) не превышает 4, нам как раз хватит этих четырёх бит.
        Пример. Буква «А» кодируется по Морзе как «точка-тире». Количество знаков
- два, число 2 в двоичной системе - это 10, отсюда младший полубайт = 0010. Старший
полубайт будет содержать 0100, так как «точка» - это 0, «тире» - это 1, остальные би-
ты не используются и остаются нулями. Байт 0100 0010 переводим в шестнадцатерич-
ную систему и получаем 42h - это и есть представление буквы «А». Итак, всё вместе:
А = ( • -) = 0100 0010 = 42h

Непонятно? Тогда вот ещё примеры (буквы из четырёх знаков):


Б = ( - • • • ) = 1000 0100 = 84h

Ж = ( • • • -) = 0001 0100 = 14h