Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе.
Программа на языке высокого уровня
Разбиение строковых переменных на символьные массивы г) Сравнение элементов массивов д) Присвоение значений результирующей строковой переменной е) Проверка ж) Вывод результата на экран В процессе работы я пришел к выводу, что можно переводить в код Морзе тексты, различные по размеру и знаковому содержанию, но результат зачастую будет намного объемней исходного варианта, и к тому же, будет долог… Читать ещё >
Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе. Программа на языке высокого уровня (реферат, курсовая, диплом, контрольная)
ФГБОУ ВПО «Кубанский государственный технологический университет».
Армавирский механико-технологический институт Кафедра Внутризаводского электрооборудования и автоматики Пояснительная записка к курсовой работе по дисциплине Информатика на тему «Разработка программы перевода введенной строки текста в последовательность кодов азбуки Морзе. Программа на языке высокого уровня».
Выполнил студент группы 12ФАБ-ИВ Смольняков Игорь Михайлович Руководитель проекта Бабанская-Никель Ингрита Павловна.
Реферат.
Курсовая работа 31 с., 18 рис., 2 табл., 8 источников.
ПЕРЕВОД, СТРОКА ТЕКСТА, КОД АЗБУКИ МОРЗЕ, МАССИВЫ СИМВОЛОВ, ЯЗЫК С#.
Цель данной работы — перевести строку текста в последовательность кодов азбуки Морзе программа должна быть написана при помощи языка высокого уровня C#.
В процессе работы решались следующие задачи:
а) Исследование теоретического материала по переводу строки текста в последовательность кодов азбуки Морзе.
б) Создание программы со следующими функциями:
— ввод данных пользователем,.
— задание символьных массивов,.
— инициализация каждого знака строки текста своим кодом,.
— вывод результата на экран.
Нормативные ссылки Термины, определения и сокращения Введение.
1. Описание текста и азбуки Морзе.
1.1 Описание текста.
1.2 Описание азбуки Морзе.
2. Математическая постановка задачи.
2.1 Входные/выводные данные.
2.2 Основные методы языка C#, используемые в программе.
3. Описание программного продукта.
3.1 Алгоритм работы программы.
3.2 Листинг программы.
4. Результат работы программы.
4.1 Руководство пользователя.
4.2 Тестирование программы Заключение Список используемых источников.
Нормативные ссылки.
В настоящей курсовой работе использованы ссылки на следующие нормативные документы:
ГОСТ Р 1.5−2004 Стандартизация в РФ. Стандарты национальные РФ. Правила построения, изложения, оформления и обозначения.
ГОСТ Р 1.12−2004 Стандартизация в Российской Федерации. Термины и определения.
ГОСТ Р ИСО 9000−2008 Системы менеджмента качества. Основные положения и словарь.
ГОСТ Р ИСО 9001−2008 Системы менеджмента качества. Требования.
ГОСТ 19.101−77 ЕСПД. Виды программ и программных документов.
ГОСТ 19.102−77 ЕСПД. Стадии разработки.
ГОСТ 19.103−77 ЕСПД. Обозначение программ и программных документов.
ГОСТ 19.104−78 ЕСПД. Основные надписи.
ГОСТ 19.105−78 ЕСПД. Общие требования к программным документам.
ГОСТ 19.202−78 ЕСПД. Спецификация. Требования к содержанию и оформлению.
ГОСТ 19.301−79 ЕСПД. Программа и методика испытаний. Требования к содержанию и оформлению.
ГОСТ 19.401−78 ЕСПД. Текст программы. Требования к содержанию и оформлению.
ГОСТ 19.402−78 ЕСПД. Описание программы.
ГОСТ 19.404−79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.
ГОСТ 19.502−78 ЕСПД. Описание применения. Требования к содержанию и оформлению.
ГОСТ 19.503−79 ЕСПД. Руководство системного программиста. Требования к содержанию и оформлению.
ГОСТ 19.504−79 ЕСПД. Руководство программиста. Требования к содержанию и оформлению.
ГОСТ 19.505−79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.
ГОСТ 19.701−90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.
МР КубГТУ 4.4.3−2012 СМК Учебно-методическая деятельность. Выпускные квалификационные работы.
МР КубГТУ 4.2.6−2004 СМК. Учебно-организационная деятельность. Курсовое проектирование.
Термины, определения и сокращения.
В настоящей курсовой работе использованы следующие термины с соответствующими определениями и сокращениями:
1 Т.к. — так как.
2 Компилятор — программа или техническое средство, выполняющее трансляцию программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду.
3 Скриншот — изображение, полученное компьютером и показывающее в точности то, что видит пользователь на экране монитора или другого визуального устройства вывода.
Код Морзе — это последовательность тоновых сигналов разной длины с паузами. Его начали использовать в ХХ веке. В то время Код Морзе являлся очень прогрессивным, надежным и простым способом передачи данных на большие расстояния. В принципе, даже на фоне современных технологий, он не утратил своих позиций и до сих пор используется. Например, в военной и морской сферах, или когда нет других способов связи, кроме обычного радиопередатчика или фонарика.
Цель данной работы — перевести строку текста в последовательность кодов азбуки Морзе программа должна быть написана при помощи языка высокого уровня C#.
В процессе работы решались следующие задачи:
а) Исследование теоретического материала по переводу строки текста в последовательность кодов азбуки Морзе.
б) Создание программы со следующими функциями:
— ввод данных пользователем,.
— задание символьных массивов,.
— инициализация каждого знака строки текста своим кодом,.
— вывод результата на экран.
1. Описание текста и азбуки Морзе.
1.1 Описание текста.
Текст (от лат. textus — «ткань; сплетение, связь, сочетание») — в общем плане связная и полная последовательность символов. Но т.к. данная курсовая работа относится к области программирования, то и текст мы будем рассматривать с соответствующей точки зрения.
Текст (текстовые данные или текстовый формат) — представление информации в вычислительной системе в виде последовательности печатных символов. Текстовыми данными, как правило, называются последовательности из подмножества знаков, включающего только печатные знаки (буквы, цифры, знаки препинания) и некоторые управляющие знаки (пробелы, табуляции, переводы строки). Существуют методы, позволяющие закодировать в текстовом формате произвольные данные любого формата.
Часто текстовые данные понимаются в более узком смысле — как текст на каких-либо языках (формальных или естественных), который может быть прочитан и понят человеком.
Текстовому формату противопоставляются «двоичные данные», информация в которых закодирована произвольным образом, не рассчитанном на восприятие человеком.
Требование к возможности понимания содержимого человеком вносит дополнительную избыточность в представление данных. К примеру, число 123, для кодирования которого достаточно одного 8-битного байта, в текстовом виде кодируется несколькими цифровыми символами — так, в десятичной системе счисления для этого требуется три знака («123»), в двоичной — семь знаков («1 111 011»), в шестнадцатеричной — два («7B»).
Основная цель применения текстовых данных — «общий знаменатель», независимость от отдельных программ, требующих собственного кодирования или форматирования и несовместимых с другими программами. Текстовые файлы (файлы в текстовом формате) могу быть открыты, прочитаны и отредактированы в любых текстовых редакторах.
Текстовый формат часто используются для представления данных, которые сами не являются чисто текстовыми. В этом случае другие форматы данных «надстраиваются» над простым текстом, для чего их управляющие конструкции выражаются посредством печатных слов и знаков препинания.
В большинстве языков программирования предполагается использование текстового формата для исходного кода программ. Помимо прочего, это позволяет применять к исходным кодам разнообразные утилиты для преобразований, оформления, поиска, статистики, анализа и т. п.
В файлах конфигурации многих программ применяется текстовый формат, даже если там представлены числа и двоичные переключатели (да/нет). Это несколько усложняет программы из-за необходимости преобразования текстовых данных во внутренний формат и обратно, но появляется возможность править конфигурацию вручную, без использования средств настройки самой программы.
1.2 Описание азбуки Морзе.
Код Морзе, «Морзянка» (Азбукой Морзе код начал называться только с первой мировой войны) способ знакового кодирования (представление букв алфавита, цифр, знаков препинания и других символов последовательностью сигналов, например, длинных и коротких: «тире» и «точек»). За единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между элементами одного знака — одна точка, между знаками в слове — 3 точки, между словами — 7 точек. Назван в честь американского изобретателя и художника Сэмюеля Морзе.
Буквенные коды (собственно «азбука») были добавлены коллегой Морзе, Альфредом Вейлем — факт, который Морзе впоследствии всячески отрицал (а заодно приписывал себе изобретение телеграфа как такового). Вейлем же, возможно, была придумана и цифровая часть кода. А в 1848 году код Вейля/Морзе был усовершенствован немцем Фридрихом Герке. Код, усовершенствованный Герке, используется до настоящего времени.
Принцип кодирования азбуки Морзе исходит из того, что буквы, которые чаще употребляются в английском языке, кодируются более простыми сочетаниями точек и тире. Это делает освоение азбуки Морзе проще, а передачи — компактнее. Для передачи русских букв использовались коды сходных латинских букв.
В 2004 г. Международный союз электросвязи ввёл в азбуку Морзе новый код для символа @, для удобства передачи адресов электронной почты.
В таблице 1 представлены соответствия русских, латинских букв и других символов и азбуки Морзе.
Таблица 1 — Значения кодов Морзе.
Русский символ. | Латинский символ. | Код Морзе. | |
А. | A. | .; | |
Б. | B. | -… | |
В. | W. | .-; | |
Г. | G. | —. | |
Д. | D. | -. | |
Е (также и Ё). | E. | . | |
Ж. | V. | …; | |
З. | Z. | —. | |
И. | I. | . | |
Й. | J. | .—; | |
К. | K. | -.; | |
Л. | L. | .-. | |
М. | M. | -; | |
Н. | N. | -. | |
О. | O. | —; | |
П. | P. | .—. | |
Р. | R. | .-. | |
С. | S. | … | |
Т. | T. | ; | |
У. | U. | .; | |
Ф. | F. | .-. | |
Ц | H. | … | |
Ч. | C. | -.-. | |
Ш. | Ц | —-. | |
Щ. | CH. | —-; | |
Ъ. | Q. | —.; | |
Ы. | Y. | —.-; | |
Ь. | X. | -.-; | |
Э. | Й. | -.; | |
Ю. | Ь. | .-. | |
Я. | Д. | .-.; | |
.—-; | |||
.—; | |||
…-; | |||
…; | |||
… | |||
-… | |||
—… | |||
—-. | |||
——. | |||
——; | |||
Точка. | … | ||
Запятая. | .-.-.; | ||
Двоеточие. | —-… | ||
; | -.-.-. | ||
Скобка. | -.—.; | ||
Апостроф. | .——. | ||
Кавычки. | .-.-. | ||
; | -…; | ||
-.-. | |||
.—. | |||
! | —.-; | ||
Знак раздела. | -…; | ||
Ошибка/перебой. | … | ||
.—.-. | |||
Конец связи (end contact). | .-.; | ||
2. Математическая постановка задачи.
2.1 Входные/выводные данные.
Входные данные: текст, вводимый пользователем. Область допустимых значений: кириллица и знаки '.' ',' '!' '?'.
Выводные данные: последовательность кодов азбуки Морзе.
2.2 Основные методы языка C#, используемые в программе.
Методы:
void Main — главная процедура Переменные:
string t0 — строковая переменная, в которую записывается текст, введенный пользователем.
string s0 — строковая переменная, являющаяся «эталоном», с значениями которого будет сверяться программа при преобразовании.
string r — строковая переменная, в которую будет записываться результат преобразования.
char[] s — массив символов, в который посимвольно записывается переменная s0.
char[] t — массив символов, в который посимвольно записывается переменная t0.
int i — целочисленная переменная, являющаяся идентификатором разрядов для массива t[].
int j — целочисленная переменная, являющаяся идентификатором разрядов для массива s[].
a: — метка, предназначенная для перенаправления хода выполнения программы на начало при непрохождении проверки введенных пользователем данных на поддерживаемость Операторы языка C#:
if () — оператор разветвления процесса.
Console.WriteLine () — вывод данных на экран.
Console.ReadLine () — ввод данных с клавиатуры.
for () — цикл со счетчиком.
switch () — разветвитель процесса вычисления на несколько направлений.
break — оператор прерывания.
Console.ReadKey () — получение следующего нажатого пользователем символа или функциональной клавиши.
ToCharArray () — переводит заданный экземпляр в последовательность символов Юникода.
3. Описание программного продукта.
3.1 Алгоритм работы программы.
Алгоритм работы программы представлен на рисунках 1−5.
Рисунок 1 — Алгоритм работы программы. Часть 1.
Рисунок 2 — Алгоритм работы программы. Часть 2.
Рисунок 3 — Алгоритм работы программы. Часть 3.
Рисунок 4 — Алгоритм работы программы. Часть 4.
Рисунок 5 — Алгоритм работы программы. Часть 5.
3.2 Листинг программы.
Рассмотрим исходный код программы, которая будет производить перевод введенного текста в последовательность кодов азбуки Морзе.
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
using System.Threading.Tasks;
namespace text_to_morze.
{.
class Program.
{.
static void Main (string[] args).
{.
a :Console.WriteLine («Введите текст (допускаются кириллица и знаки '.' ',' '!' '?', остальные знаки переводиться не будут) «);
string t0 = Console. ReadLine ();
string s0 = «абвгдежзийклмнопрстуфхцчшщъыьэюя.,!?ё» ;
string r = «» ;
char[] s = s0. ToCharArray ();
char[] t = t0. ToCharArray ();
for (int i = 0; i < t. Length; i++).
{.
for (int j = 0; j < s. Length; j++).
if (t[i] ≠ s[j]); else.
switch (j).
{.
case 0: r += «.- «; break;
case 1: r += «-… «; break;
case 2: r += «.— «; break;
case 3: r += «—. «; break;
case 4: r += «-. «; break;
case 5: r += «. «; break;
case 6: r += «…- «; break;
case 7: r += «—. «; break;
case 8: r += «. «; break;
case 9: r += «.—- «; break;
case 10: r += «-.- «; break;
case 11: r += «.-. «; break;
case 12: r += «— «; break;
case 13: r += «-. «; break;
case 14: r += «—- «; break;
case 15: r += «.—. «; break;
case 16: r += «.-. «; break;
case 17: r += «… «; break;
case 18: r += «- «; break;
case 19: r += «.- «; break;
case 20: r += «.-. «; break;
case 21: r += «… «; break;
case 22: r += «-.-. «; break;
case 23: r += «—-. «; break;
case 24: r += «—— «; break;
case 25: r += «—.- «; break;
case 26: r += «—.— «; break;
case 27: r += «-.— «; break;
case 28: r += «-.- «; break;
case 29: r += «.-. «; break;
case 30: r += «.— «; break;
case 31: r += «.-.- «; break;
case 32: r += «… «; break;
case 33: r += «.-.-.- «; break;
case 34: r += «—.— «; break;
case 35: r += «.—. «; break;
case 36: r += «. «; break;
};
};
if (r ≠ «») { Console. WriteLine («Введенный вами текст в коде Морзе имеет такой вид»); Console. WriteLine®; } else {Console.WriteLine («Вы не ввели ни одного поддерживаемого знака»); goto a;};
Console.ReadKey ();
}.
}.
}.
Приступим к разбору главного метода.
Console.WriteLine («Введите текст (допускаются кириллица и знаки '.' ',' '!' '?') «);
string t0 = Console. ReadLine ();
Здесь производится ввод данных с клавиатуры и объявление строковой переменной t0.
string s0 = «абвгдежзийклмнопрстуфхцчшщъыьэюя.,!?ё» ;
string r = «» ;
Объявление «эталона» s0, с которым будет производиться сравнение символов, и результирующей переменной r, в которую и будет записан окончательный код Морзе.
char[] s = s0. ToCharArray ();
char[] t = t0. ToCharArray ();
На данном этапе происходит объявление массивов элементов, в которые посимвольно вписываются «эталон» и введенный текст.
for (int i = 0; i < t. Length; i++).
{.
for (int j = 0; j < s. Length; j++).
if (t[i] ≠ s[j]); else.
switch (j).
{.
case 0: r += «.- «; break;
case 1: r += «-… «; break;
case 2: r += «.— «; break;
case 3: r += «—. «; break;
case 4: r += «-. «; break;
case 5: r += «. «; break;
case 6: r += «…- «; break;
case 7: r += «—. «; break;
case 8: r += «. «; break;
case 9: r += «.—- «; break;
case 10: r += «-.- «; break;
case 11: r += «.-. «; break;
case 12: r += «— «; break;
case 13: r += «-. «; break;
case 14: r += «—- «; break;
case 15: r += «.—. «; break;
case 16: r += «.-. «; break;
case 17: r += «… «; break;
case 18: r += «- «; break;
case 19: r += «.- «; break;
case 20: r += «.-. «; break;
case 21: r += «… «; break;
case 22: r += «-.-. «; break;
case 23: r += «—-. «; break;
case 24: r += «—— «; break;
case 25: r += «—.- «; break;
case 26: r += «—.— «; break;
case 27: r += «-.— «; break;
case 28: r += «-.- «; break;
case 29: r += «.-. «; break;
case 30: r += «.— «; break;
case 31: r += «.-.- «; break;
case 32: r += «… «; break;
case 33: r += «.-.-.- «; break;
case 34: r += «—.— «; break;
case 35: r += «.—. «; break;
case 36: r += «. «; break;
};
Далее происходит посимвольное сравнение элементов текста и эталона, при совпадении которых идет запись кода Морзе в результирующую переменную.
Console.WriteLine («Введенный вами текст в коде Морзе имеет такой вид»);
Console.WriteLine®;
Console.ReadKey ();
Вывод результата на экран и прерывание программы.
4. Результат работы программы.
4.1 Руководство пользователя.
перевод текст код азбука морзе Для запуска программы необходимо открыть файл программы в компиляторе (для создания кода использовалась программа Microsoft Visual Studio 2012 Professional) и нажать комбинацию клавиш CTRL + F5 или нажать на кнопку запуска. На дисплее появится окно исполняемой программы, которая представлена на рисунке 6.
Рисунок 6 — Стартовое окно программы После запуска программа просит пользователя ввести текст (рисунок 7).
Рисунок 7 — Ввод текста пользователем Программа находит результат и выводит его на экран (рисунок 8). Если введенные текст не соответствует требованиям программы, она не будет его преобразовывать в код Морзе. Если не было введено ни одного поддерживаемого знака, программа уведомит об этом пользователя и вернется на начало.
Рисунок 8 — Вывод результата Программа завершается по нажатию любой клавиши.
4.2 Тестирование программы.
Проверка работоспособности программы будет проводиться по результатам, указанным в таблице 2.
Таблица 2 — Результаты проверки.
№. | Введенный текст. | Результат в коде Морзе. | |
а, б, в. | .-.-.-.- -…-.-.-.-; | ||
проверка. | .—.-. —-.—.-. -.-.; | ||
привет. | .—.-…—. ; | ||
предмет. | .—.-. -. —. ; | ||
поиск. | .—. —-. … -.; | ||
клавиатура. | -.-.-…-.—…- -.-.-.; | ||
монитор | — —- -… — —-.-. | ||
программирование. | .—.-. —- —.-.- — —…-. —-.—.- -… | ||
project курсовая. | -.-.-.-. … —-.—.-.-.; | ||
check. | Вы не ввели ни одного поддерживаемого знака. | ||
Ниже приведены скриншоты всех проверок. Результат первой тестовой выборки представлен на рисунке 9.
Рисунок 9 — Проверка 1.
Результат второй тестовой выборки представлен на рисунке 10.
Рисунок 10 — Проверка 2.
Результат третьей тестовой выборки представлен на рисунке 11.
Рисунок 11 — Проверка 3.
Результат четвертой тестовой выборки представлен на рисунке 12.
Рисунок 12 — Проверка 4.
Результат пятой тестовой выборки представлен на рисунке 13.
Рисунок 13 — Проверка 5.
Результат шестой тестовой выборки представлен на рисунке 14.
Рисунок 14 — Проверка 6.
Результат седьмой тестовой выборки представлен на рисунке 15.
Рисунок 15 — Проверка 7.
Результат восьмой тестовой выборки представлен на рисунке 16.
Рисунок 16 — Проверка 8.
Результат девятой тестовой выборки представлен на рисунке 17.
Рисунок 17 — Проверка 9.
Результат десятой тестовой выборки представлен на рисунке 18.
Рисунок 18 — Проверка 10.
Написанная программа для перевода текста в последовательность кодов азбуки Морзе в заданной области значений работает корректно на всех тестовых выборках.
Заключение.
При выполнении данной курсовой работы выполнялся перевод текста в последовательность кодов азбуки Морзе. Этот перевод производился по семи главным пунктам:
а) Ввод данных б) Создание «эталона».
в) Разбиение строковых переменных на символьные массивы г) Сравнение элементов массивов д) Присвоение значений результирующей строковой переменной е) Проверка ж) Вывод результата на экран В процессе работы я пришел к выводу, что можно переводить в код Морзе тексты, различные по размеру и знаковому содержанию, но результат зачастую будет намного объемней исходного варианта, и к тому же, будет долог по времени передачи (имеются ввиду тоновые радиосигналы). Но, несмотря на эти недостатки, до сих пор является распространенным методом передачи данных, т.к. устройства передачи и приема сигнала очень просты и надежны. В настоящее время код Морзе широко используется в военной и морской сферах, а так же в экстренных ситуациях для подачи сигналов бедствия.
Список используемых источников.
1. Свободная интернет-энциклопедия Википедия ru.wikipedia.org/wiki/Азбука_Морзе.
2. Онлайн-библиотека платформы Microsoft Developer Network http://msdn.microsoft.com/ru-ru/library/vstudio/system.char (v=vs.100).aspx.
3. Научная библиотека естественнонаучных изданий http://www.sernam.ru/book_csharp.php?id=63.
4. Герберт Шилдт. Полный справочник по С# Пер. с англ. — М.: Издательский дом «Вильяме», 2004. — 752 с.: ил. — Парал. тит. англ.
5. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2009. — 432 с: ил.
6. Культин Н. Б. С# в задачах и примерах. — СПб.: БХВ-Петербург, 2007. — 240с.: ил. +CD-ROM.
7. Савельев А. Я. Основы информатики: Учеб. Для вузов. — М.: Изд-во МГТУ им. Н. Е. Баумана, 2001. -328 с.
8. Острейковский В. А. Информатика: Учеб. Для вузов. — М.: Высш. шк., 2000. — 511 с.