Кодирование информации

Целесообразность выбора языка программирования. Основные структуры языка программирования C#. Кодирование по методу четности/нечетности. Кодирование по методу Хэмминга. Машина Поста. Использование программы StudyProgram для усвоения учебного материала.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.11.2008
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Если это условие выполняется, то это означает, что пользователь ввел в окно “Исправленный вариант” строку меньшую по своей длине 9 или то, что уже был получен ответ и, следовательно, выполняется действие, заключенное в фигурных скобках: запуск формы об ошибке, содержащее пояснение того, в чем заключается ошибка ввода (A5=new Error("Исправленный вариант должен содержать 9-ти разрядное число"); A5. ShowDialog();)

Если это условие не выполняется, то работа алгоритма программы продолжается по ветке else. Вначале снова проверяется отсутствие ответа if(textBox1. Text. Length! =textBox3. Text. Length) и только когда это условие выполнено запускается цикл с параметром (for(int i=0; i<textBox2. Text. Length; i++)), который сравнивает все разряды введенного пользователем числа с 0 или 1. Для этого используется заложенный в языке C# метод работы со строками Substring(i, 1) (string d=textBox2. Text. Substring(i, 1); - в строку d записывается один символ введенного пользователем числа, начиная с i-ой позиции (а i меняется от 0 до длины введенной строки, т. е. до 9)). В ходе работы цикла d 9 раз сравнивается с 0 или 1 (if(d! =b && d! =a)), и при первом же случая, когда d не является 1 или 0 появляется форма ошибки, содержащее пояснение того, в чем заключается ошибка ввода (A5=new Error("Исправленный вариант должен содержать 9-ти разрядное двоичное число"); A5. ShowDialog();), а цикл прекращается, т. к. переменной i присваивается значение равное textBox2. Text. Length. Также в случае появления ошибки переменная X приравнивается к 0. В случае отсутствии ошибки ввода переменная X приравнивается к 1. На этом метод Proverka(); заканчивается. Если X=1, то возможны дальнейшие операции заключенные в фигурных скобках условия if (X==1). Используя условную конструкцию if, Nomer сравнивается с нулем (if (Nomer==0)). Если данное условие выполняется (т. е. номер ошибочного разряда равняется нулю, что означает отсутствие ошибки), то пользователь ответил неправильно, неверно предположив, что содержится ошибка. Затем запускается метод Otvet(), который выведет число в окне textBox3, равное сгенерированному числу.

После этого запускается метод Sravnenie(); (его запуск требуется, если не выполняется условие Nomer==0). Если Nomer не равен нулю и метод Sravnenie(); не дает правильного ответа в окне textBox3, , то, следовательно, Nomer при переводе в десятичную систему счисления дает число, большее, чем 9. Это означает, что сгенерированное число не содержит неправильных разрядов и в окно textBox3 нужно записать заданное число без изменений. Для этого используется условная конструкция, которая проверяет, записан ли ответ в textBox3: if (textBox3. Text. Length==0) Otvet();. Затем в переменную Moe считывается число, которое пользователь ввел в окно textBox2, а в переменную Pravilnoe считывается ответ из textBox3. После чего эти две переменные сравниваются между собой и в случае равенства количество правильных ответов увеличивается на 1: if (Moe==Pravilnoe) Prav++;. Затем переменная X приравнивается к нулю, что означает, что пользователь уже сделал свой окончательный выбор.

Кнопка button3 служит для того чтобы сгенерировать следующее число, когда работа с предыдущим закончена. При нажатии кнопки button3 (Следующее число) число вопросов увеличивается на единицу, а также запускаются методы: Generation() и Number();

Машина Поста

Для того чтобы лучше понять, как изменить программу, подробнее разберем ее код.

private void button2_Click(object sender, System. EventArgs e) - метод, вызывающийся при нажатии кнопки “Вернуться к выбору темы”.

private void help_Click(object sender, System. EventArgs e) - метод, вызывающийся при нажатии кнопки “Справка”.

private void button3_Click(object sender, System. EventArgs e) - метод, вызывающийся при нажатии кнопки “GO”.

public static byte first() - метод, который запускается при выполнении команды типа “Движение головки на одну клетку вправо и переход к команде m1”.

public static byte second() - метод, который запускается при выполнении команды типа “Движение головки на одну клетку влево и переход к команде m1”.

public static byte third() - метод, который запускается при выполнении команды типа “Нанесение метки в ячейку и переход к команде m1. ”.

public static byte fourth() - метод, который запускается при выполнении команды типа “Стирание метки в ячейке и переход к команде m1. ”.

public void fifth() - метод, который запускается при выполнении команды типа “Проверка наличия метки в клетке, над которой находится головка. Если метка отсутствует, то управление передается с номером m1, если метка есть, то с номером m2. ”.

bool check_string(string str) метод, вызываемый для проверки командной строки.

Разберем подробно работу программы.

Задаются два массива типа char input [] и command [] []. При нажатии кнопки “GO” формируется массив из входной строки и записывается в input []. Далее этот массив проверяется, если в нем содержатся символы, отличные от 0 и 1, то выдается ошибка. Затем проверяется список команд в методе check_string(string str), если он не соответствует заданному шаблону, то выдается ошибка, в противном случае он записывается в массив command [] []. После этого запускается цикл с постусловием, в котором проверяется какая команда должна выполняться в данный момент и запускается соответствующий метод. Во время выполнения команды останова - цикл завершается и выводится результат работы программы.

Глава 3. Инструкция пользователя

3.1. Использование программы StudyProgram для усвоения учебного материала по кодированию информации методом четности и методом Хэмминга

Программа StudyProgram предоставляет возможность выполнить упражнения по кодированию информации методом четности и методом Хэмминга. Для запуска программы сделайте двойной щелчок по ярлыку программы. После запуска программы на экране появляется окно “StudyProgram”, представленное на Рис.

Стартовое окно программы

Пункт меню StudyProgram содержит следующие разделы:

“Программирование машины Поста”

“Кодирование по методу четности\нечетности”

“Кодирование по методу Хэмминга”

При выборе пункта меню “Кодирование по методу четности\нечетности” появляется диалоговое окно, изображенное на Рис.

Окно Even_uneven

В данном диалоговом окне предлагаются вопросы по теме “Кодирование по методу четности\нечетности”. Число вопросов неограниченно. После каждого ответа показывается номер задаваемого вопроса и количество правильных ответов.

Диалоговое окно содержит три кнопки: “Код числа правильный”, “Код числа неправильный”, “Справка” и “Вернуться к выбору темы”. Вверху расположено текстовое поле “Цифровые разряды”, в котором задано случайное семизначное двоичное число. Чуть ниже расположено текстовое поле “Контрольного разряд”, в котором задан контрольный разряд, с помощью которого происходит кодирование случайного семизначного двоичного числа по методу четности. Нужно определить присутствует или не присутствует ошибка в записи числа. Если число записано правильно, нужно щелкнуть по кнопке “Код числа правильный”. Если число содержит ошибку, нужно щелкнуть кнопку “Код числа неправильный”. Если ответ был правильным, счетчик правильных ответов увеличивается на единицу. Переход к следующему заданию происходит автоматически при нажатии на любую из двух кнопок: “Код числа правильный”, “Код числа неправильный”, при этом счетчик заданных вопросов увеличивается на единицу. Число заданий неограниченно. Чтобы прервать работу с диалоговым окном, нужно щелкнуть по кнопке “Вернуться к выбору темы” при этом счетчик правильных ответов обнуляется и при следующем запуске раздела “Кодирование по методу четности\нечетности” количество верных ответов снова равно нулю. Если пользователю требуется помощь по теории, то тогда можно щелкнуть по кнопке “Справка”, и тогда появится диалоговое окно Help

Окно Help

Диалоговое окно, которое появляется при выборе пункта меню “Кодирование по методу Хэмминга” имеет вид

Окно Hemming

В данном диалоговом окне предлагается найти и исправить одну ошибку (если она имеется) в 9-ти разрядном двоичном числе, закодированном по методу Хэмминга. В диалоговом окне “Кодирование по методу Хэмминга” имеется 5 кнопок: “Ошибки нет”, “Ошибка есть”, “Следующее число”, “Справка”, “Вернуться к выбору темы”. Вверху расположены текстовые поля: “Число, возможно содержащее ошибку”, “Исправленный вариант”, “Правильный ответ”. Если пользователь считает, что число появившееся в текстовом поле “Число, возможно содержащее ошибку” не содержит ошибочных разрядов, то следует щелкнуть по кнопке “Ошибки нет”. После чего в текстовом поле “Правильный ответ” записывается верный ответ. Если пользователь отвечает правильно, то число правильных ответов увеличивается на 1. Если пользователь считает, что число появившееся в текстовом поле “Число, возможно содержащее ошибку” содержит ошибку в одном из разрядов числа, то тогда в результат корректировки нужно записать в текстовое поле “Исправленный вариант”, после чего нажать кнопку “Ошибка есть”. Пользователь должен учесть, что вводимое им число в текстовое поле “Исправленный вариант” должно быть двоичным и содержать 9 разрядов. В случае неправильного ввода на экран выведется сообщение об ошибке

Если ответ правильный, счетчик правильных ответов увеличивается на единицу, при этом на экране появляется правильный вариант ответа. После того, как пользователь дал свой ответ нужно нажать кнопку “Следующее число”, и тогда программа сгенерирует новое число, возможно содержащее ошибку. Работа с диалоговым окном завершается нажатием кнопки “Вернуться к выбору темы” при этом счетчик правильных ответов обнуляется. При работе с данным разделом пользователь может просмотреть информацию по кодированию по методу Хэмминга, нажав кнопку “Справка”.

3.2. Использование обучающей программы StudyProgram для овладения навыками составления программ для машины Поста

Программа StudyProgram предназначена для того, чтобы помочь в усвоении приемов составления программ для машины Поста. Работа с программой осуществляется следующим образом. После запуска программы на экране появляется окно “StudyProgram”, представленное на Рис.4. В нем имеется 3 раздела. Выберите 1-й раздел “Программирование машины Поста”.

При выборе данного пункта меню появляется диалоговое окно,

Диалоговое окно содержит три кнопки: “GO”, “Справка” и “Вернуться к выбору темы”. Вверху расположено текстовое поле “Входная строка машины Поста”. Сюда вводится входная строка машины Поста. Каждый символ строки соответствует одной ячейке ленты, 0 - отсутствие метки, 1 - наличие метки. Предполагается, что головка ленты находится над 1-й слева ячейкой. В окно, расположенное под данным окном вводится набор команд, выполняющий поставленную задачу. Каждая команда должна состоять из 4-х целых положительных чисел. 1-е число - это порядковый номер команды, 2-е число - тип команды, 3-е число - номер следующей команды при безусловном переходе и 4-е число - номер следующей команды при условном переходе. Если команда не является командой условного перехода, то 4-е число может быть любым. Числа в команде должны отделяться друг от друга запятой, а каждая команда заканчиваться точкой с запятой.

Порядок записи и выполнения программы следующий:

1) В окно “Входная строка машины Поста” введите произвольную строку, состоящую из нулей и единиц, для которой поставленная задача имеет смысл. Например, если задача состоит в стирании 1-й метки, то, чтобы проверить правильность работы программы, во входной строке должна присутствовать хотя бы одна метка, т. е. единица.

2) В нижележащее окно введите в соответствии с выше перечисленными правилами набор команд, решающих поставленную задачу.

3) Нажмите кнопку “GO”, после чего записанные команды будут выполнены и в поле “Выходная строка” появится результат работы машины Поста в виде выходной строки символов, состоящей из нулей и единиц.

В общем виде отдельная команда машины Поста имеет следующий вид: n, K, m1, m2; где n - порядковый номер команды, К - тип команды, m1, m2 - порядковые номера следующих команд. Имеется шесть типов команд машины Поста, которым для удобства можно дать номера от 1 до 6. Ниже дано описание команд машины Поста.

Тип команды

Действие команды

1

Движение головки на одну клетку вправо и переход к команде m1

2

Движение головки на одну клетку влево и переход к команде m1

3

Нанесение метки в ячейку и переход к команде m1

4

Стирание метки в ячейке и переход к команде m1

5

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

6

Остановка машины

Пример команды машины Поста: 1, 1, 2, 0;. Данная команда имеет порядковый номер 1, тип команды - 1 (движение головки на одну клетку вправо). После выполнения команды управление передается команде, имеющей порядковый номер 2.

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

· 1, 5, 2, 4; 1-я команда

· 2, 1, 3, 0; 2-я команда

· 3, 5, 2, 4; 3-я команда

· 4, 4, 5, 0; 4-я команда

· 5, 6, 0, 0; 5-я команда

Разберем работу программы. 1-я команда - это команда типа 5, т. е. условный переход. Если ячейка пустая, то управление передается команде 2, в противном случае - 4-й команде. 2-я команда - это сдвиг головки на одну ячейку вправо и передача управления 3-й команде. 3-я команда - это опять условный переход. Если метка отсутствует, то возврат ко второй команде и переход на 4-ю в противном случае. 4-я команда стирает метку (очевидно, она там есть, т. к. мы попадаем на 4-ю команду только при наличии метки) и передает управление 5-й команде, которая является командой остановки машины.

При нажатии кнопки “Справка” выводится окно со справочным материалом по данной теме

При нажатии кнопки “Вернуться к выбору темы” Вы возвращаетесь на стартовое окно программы.

Если входная строка введена неправильно, то выведется сообщение об ошибке

Если список команд не соответствует заданному шаблону, то выведется сообщение об ошибке

Заключение

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

Разработанный проект содержит следующие разделы:

· Глава 1 - исследовательская часть, содержащая разделы, посвященные целесообразности выбора языка, основным структурам языка программирования C#, кодированию по методу четности / нечетности, кодированию по методу Хэмминга, машине Поста.

· Глава 2 - инструкция программиста, которая содержит общую информацию по созданию и изменению обучающей программы, а также подробно расписанный алгоритм работы программы.

· Глава 3 - инструкция пользователя, включающая в себя разделы: использование программы StudyProgram для усвоения учебного материала по кодированию информации методом четности и методом Хэмминга; использование обучающей программы StudyProgram для овладения навыками составления программ для машины Поста.

Задание курсовой работы выполнено полностью в соответствии с заданием.

Список литературы

Акулов О. А., Медведев Н. В. “Информатика базовый курс”. Москва, Омега-Л, 2005

Успенский В. А. “Машина Поста”. Москва, Наука, 1988

http: // computer-museum. ru

http: // pascalstudy. narod. ru

http: // de. uspu. ru

http: // c-sharp. ru

http: // dotsite. spb. ru

http: // i-u. ru

http: // mf. grsu. by


Подобные документы

  • Целесообразность выбора языка программирования. Основные структуры языка программирования. Кодирование по методу четности/нечетности, по методу Хэмминга. Машина Поста. Инструкция программиста и пользователя. Использование программы StudyProgram.

    курсовая работа [294,7 K], добавлен 27.02.2009

  • Анализ эффективности способов кодирования. Средний размер одного разряда и средняя длина кодового слова. Кодирование по методу Хаффмена. Кодирование информации по методу Шенона-Фано. Построение кодового дерево для различных методов кодирования.

    контрольная работа [491,4 K], добавлен 15.10.2013

  • Представление числовой информации с помощью систем счисления. Кодирование символьной, текстовой, числовой и графической информации. Устройство жесткого диска; дисковод компакт-дисков CD-ROM. Использование главного меню Windows; языки программирования.

    контрольная работа [62,9 K], добавлен 16.03.2015

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

    курсовая работа [1,9 M], добавлен 06.06.2012

  • Методика и технологический прием структурного программирования; построение алгоритма программы логической задачи в виде блок-схемы из структур "следование, ветвление, цикл"; кодирование текста программы, языки структурного программирования Паскаль и Си.

    реферат [623,5 K], добавлен 25.03.2012

  • Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.

    курсовая работа [980,1 K], добавлен 05.03.2015

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

    учебное пособие [1,4 M], добавлен 25.12.2009

  • Место темы "Кодирование информации" в школьном курсе информатики. Рекомендации по изучению "Кодирования информации" в школьном курсе информатики. Дидактический материал для изучения темы "Кодирование информации" и внеклассное мероприятие по информатике.

    курсовая работа [2,3 M], добавлен 17.06.2012

  • Информация и информационные процессы в природе, обществе, технике. Информационная деятельность человека. Кодирование информации. Способы кодирования. Кодирование изображений. Информация в кибернетике. Свойства информации. Измерение количества информации.

    реферат [21,4 K], добавлен 18.11.2008

  • Представление информации в двоичной системе. Необходимость кодирования в программировании. Кодирование графической информации, чисел, текста, звука. Разница между кодированием и шифрованием. Двоичное кодирование символьной (текстовой) информации.

    реферат [31,7 K], добавлен 27.03.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.