Смекни!
smekni.com

Обучающая программа по информатике (стр. 7 из 11)

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

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

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

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-й команде, которая является командой остановки машины.

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

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

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

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

Заключение

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

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

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

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

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

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


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

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

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

3. http://computer-museum.ru

4. http://pascalstudy.narod.ru

5. http://de.uspu.ru

6. http://c-sharp.ru

7. http://dotsite.spb.ru

8. http://i-u.ru

9. http://mf.grsu.by

10. Троелсен Э. «С# и платформа .NET. Библиотека программиста»


Приложение

Start

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

namespace Study_Programs

{

public class Start : System.Windows.Forms.Form

{

private System.Windows.Forms.Label label1;

private System.Windows.Forms.GroupBox groupBox1;

private System.ComponentModel.Container components = null;

Post A1;

Even_uneven A2;

Hemming A3;

private System.Windows.Forms.Button even_uneven_button;

private System.Windows.Forms.Button hemming_button;

private System.Windows.Forms.Button exit_button;

private System.Windows.Forms.Button post_button;

public Start(){InitializeComponent();}

protected override void Dispose( bool disposing )

{

if(disposing) if (components != null) components.Dispose();

base.Dispose( disposing );

}

#region Windows Form Designer generated code

private void InitializeComponent()

{

this.label1 = new System.Windows.Forms.Label();

this.groupBox1 = new System.Windows.Forms.GroupBox();

this.hemming_button = new System.Windows.Forms.Button();

this.post_button = new System.Windows.Forms.Button();

this.even_uneven_button = new System.Windows.Forms.Button();

this.exit_button = new System.Windows.Forms.Button();

this.groupBox1.SuspendLayout();

this.SuspendLayout();

//

// label1

//

this.label1.Dock = System.Windows.Forms.DockStyle.Top;

this.label1.Font = new System.Drawing.Font("MS Reference Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));

this.label1.Location = new System.Drawing.Point(0, 0);

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(306, 48);

this.label1.TabIndex = 0;

this.label1.Text = "Приветствуем Вас в обучающей программе по информатике.";