Язык С и его особенности




Министерство образования РФ

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по теме «Перекодирование текстовой информации»

 

 

 


РЕФЕРАТ

 

Объектом исследования является помехоустойчивое кодирование, а так же декодирование информации с коррекцией одиночных ошибочных битов по методу Хемминга 15-11.

Целью работы является разработка программного продукта, дающего возможность произвести данные операции, используя аппаратные средства ПК, а так же, по окончанию выполнения проекта, оформить соответствующую техническую документацию.

Для написания программы необходимо использовать язык программирования высокого уровня C, а так же язык низкого уровня Ассемблер для внешних функций кодирования-декодирования.

Перед выполнением работы были разработан алгоритм, который позволил создать максимально эффективный и удобный в обращении программный продукт.

В ходе курсового проектирования было разработано приложение MS-DOS с интерактивным интерфейсом, отвечающее всем современным требованиям.

 


СОДЕРЖАНИЕ

 

Введение

. Сведения об используемых языках программирования

1.1 Язык С и его особенности

Преимущества Ассемблера

2. Интерфейс

2.1 Интерактивный режим работы

Взаимодействие пользователя с программным интерфейсом

Диагностические сообщения

3. Программная реализация

Заключение

Список используемых источников

Приложения

 


Введение

 

Основной задачей, поставленной в курсовом проектировании, является разработка программы, которая позволила бы осуществлять работу с файлами и их последующее помехоустойчивое кодирование-декодирование по методу Хемминга-15,11 в интерактивном режиме.

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

Особенностью интерфейса этой программы является особый режим работы, при котором выход из программы осуществляется только в случае прямого указания соответствующего пункта меню. В случае возникновения ошибочных ситуации программа просит изменить параметры, например, имена входного или выходного файлов на корректные и после внесения исправлений продолжит работу. Этот режим позволяет оператору не тратить время на повторный запуск программы и увеличивает скорость эффективной работы в 1.5-2 раза.

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

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

вторая - это внешние функции кодирования-декодирования. Функции созданы на языке низкого уровня Ассемблере;

третья часть - это реализация интерактивного интерфейса.

 


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

 

Язык С и его особенности

 

Язык C является универсальным языком программирования. Он тесно связан с операционной системой UNIX, так как эта операционная система и ее программное обеспечение написано именно на этом языке. Сам язык, однако, не связан с какой-либо одной операционной системой или машиной, т.е. является системно-независимым; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он с равным успехом может использоваться при написании больших вычислительных программ, программ для обработки текстов и баз данных. Язык C - это язык достаточно низкого уровня.

В такой характеристике нет ничего оскорбительного; это просто означает, что C имеет дело с объектами того же вида, что и большинство ЭВМ, а именно с символами, числами и адресами. Они могут объединяться и пересылаться посредством обычных арифметических и логических операций, осуществляемых реальными ЭВМ. В языке C отсутствуют операции, имеющие дело непосредственно с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Наконец, сам по себе C не обеспечивает никаких возможностей ввода-вывода: здесь нет операторов READ или WRITE, как в языке Pascal, и никаких встроенных методов доступа к файлам. Все эти механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями. Аналогично, язык C предлагает только простые, последовательные конструкции потоков управления: проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизацию или сопрограммы. Хотя отсутствие некоторых из этих средств может выглядеть как некая неполноценность, но удержание количества ключевых элементов языка в скромных размерах дает реальные преимущества. Так как лексикон языка C относительно мал, он не требует многотомных трудов для своего описания и может быть быстро выучен. Отсюда же следует и относительная лёгкость написания компилятора для любой ОС и процессорной архитектуры,что обеспечивает высокую степень мобильности языка.

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

 

Преимущества Ассемблера

программный интерфейс помехоустойчивый декодирование

Зачем нужно программировать на языке ассемблера? Сегодня обычно используют такие языки высокого уровня, как С или Паскаль. Зачем же нужен еще один язык программирования, особенно такой, который сулит определенные трудности? Даже располагая сегодня языками высокого уровня, мы все равно нуждаемся в языке ассемблера в силу его эффективности и четкости. Программы на языке ассемблера могут быть очень эффективными. К сожалению, по мере увеличения своего размера программы на языке ассемблера теряют некоторые из своих преимуществ. Это связано с тем, что в ассемблерных программах требуется уделять много внимания деталям. Язык ассемблера требует от вас планирования буквально каждого шага ЭВМ. В случае небольших программ это позволяет вам сделать их оптимальными с точки зрения эффективности использования аппаратных средств. В случае же больших программ бесконечное число деталей может помешать вам добиться оптимальности программы в целом, несмотря на то, что отдельные фрагменты программы будут написаны очень хорошо. Язык ассемблера, безусловно, не является универсальным средством для написания всех программ. Конечно, эффективность и четкость программ на языке ассемблера предоставляет определенные преимущества. Но вместе с тем, необходимое внимание к деталям создает определенные трудности. Язык ассемблера должен использоваться в тех случаях, когда невозможно написать программу никаким другим способом.

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

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


Интерфейс



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: