47790 (608374), страница 5

Файл №608374 47790 (Обучающая программа по информатике) 5 страница47790 (608374) страница 52016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

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

При нажатии кнопки button2 (Ошибка есть) в начале запускается метод Proverka();. Смысл этого метода заключается в том, чтобы проверить ввел ли пользователь достаточное количество разрядов в окно «Исправленный вариант» и являются ли они двоичными числами (0 и 1). Вначале с помощью управляющей конструкции if проверяется, записал ли пользователь строку в окно «Исправленный вариант» требуемой длины и нет ли уже появившегося ответа в окне textBox3 (Правильный ответ): if(textBox2.Text.Length! =textBox1.Text.Length && textBox1.Text.Length! = textBox3.Text.Length)

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

Если это условие не выполняется, то работа алгоритма программы продолжается по ветке else. Вначале снова проверяется отсутствие ответа if(textBox1.Text.Length!=textBox3.Text.Length) и только когда это условие выполнено запускается цикл с параметром (for(int i=0; i

После этого запускается метод 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. Инструкция пользователя

Программа StudyProgram должна запускаться на IBM и совместимых компьютерах. Минимальные системные требования: процессор Pentium и выше, объем оперативной памяти 16MB, видеокарта с расширением 800x600, 256 цветов, операционная система семейства Windows 95 и выше, на компьютере также должен быть установлен .NET Framework.


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

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

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

«Программирование машины Поста»

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

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

При выборе пункта меню «Кодирование по методу четности\нечетности» появляется диалоговое окно.

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

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

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

В данном диалоговом окне предлагается найти и исправить одну ошибку (если она имеется) в 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 = "Приветствуем Вас в обучающей программе по информатике.";

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

//

// groupBox1

//

this.groupBox1.Controls.Add(this.hemming_button);

this.groupBox1.Controls.Add(this.post_button);

this.groupBox1.Controls.Add(this.even_uneven_button);

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

this.groupBox1.Location = new System.Drawing.Point(8, 48);

this.groupBox1.Name = "groupBox1";

this.groupBox1.Size = new System.Drawing.Size(296, 120);

this.groupBox1.TabIndex = 1;

this.groupBox1.TabStop = false;

this.groupBox1.Text = "Выберите раздел";

//

// hemming_button

//

this.hemming_button.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

| System.Windows.Forms.AnchorStyles.Left)

| System.Windows.Forms.AnchorStyles.Right)));

this.hemming_button.Cursor = System.Windows.Forms.Cursors.Hand;

this.hemming_button.Location = new System.Drawing.Point(8, 89);

this.hemming_button.Name = "hemming_button";

this.hemming_button.Size = new System.Drawing.Size(280, 22);

this.hemming_button.TabIndex = 2;

this.hemming_button.Text = "Кодирование по методу Хэмминга";

this.hemming_button.Click += new System.EventHandler(this.hemming_button_Click);

//

// post_button

//

this.post_button.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

| System.Windows.Forms.AnchorStyles.Left)

| System.Windows.Forms.AnchorStyles.Right)));

this.post_button.Cursor = System.Windows.Forms.Cursors.Hand;

this.post_button.Location = new System.Drawing.Point(8, 25);

this.post_button.Name = "post_button";

this.post_button.Size = new System.Drawing.Size(280, 22);

this.post_button.TabIndex = 0;

this.post_button.Text = "Программирование машины Поста";

this.post_button.Click += new System.EventHandler(this.post_button_Click);

//

// even_uneven_button

//

this.even_uneven_button.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

| System.Windows.Forms.AnchorStyles.Left)

| System.Windows.Forms.AnchorStyles.Right)));

this.even_uneven_button.Cursor = System.Windows.Forms.Cursors.Hand;

this.even_uneven_button.Location = new System.Drawing.Point(8, 56);

this.even_uneven_button.Name = "even_uneven_button";

this.even_uneven_button.Size = new System.Drawing.Size(280, 22);

this.even_uneven_button.TabIndex = 1;

this.even_uneven_button.Text = "Кодирование по методу четности\\нечетности";

this.even_uneven_button.Click += new System.EventHandler(this.even_uneven_button_Click);

//

// exit_button

//

this.exit_button.Cursor = System.Windows.Forms.Cursors.Hand;

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

this.exit_button.Location = new System.Drawing.Point(112, 176);

this.exit_button.Name = "exit_button";

this.exit_button.Size = new System.Drawing.Size(72, 24);

this.exit_button.TabIndex = 2;

this.exit_button.Text = "Выход";

this.exit_button.Click += new System.EventHandler(this.exit_button_Click);

//

// Start

//

this.AutoScale = false;

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(306, 206);

this.ControlBox = false;

this.Controls.Add(this.exit_button);

this.Controls.Add(this.groupBox1);

this.Controls.Add(this.label1);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.MaximizeBox = false;

this.MinimizeBox = false;

this.Name = "Start";

this.ShowInTaskbar = false;

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Study Programs";

this.TopMost = true;

this.groupBox1.ResumeLayout(false);

this.ResumeLayout(false);

}

#endregion

[STAThread]

static void Main() {Application.Run(new Start());}

private void exit_button_Click(object sender, System.EventArgs e){this.Close();}

private void post_button_Click(object sender, System.EventArgs e)

{

A1 = new Post();

A1.ShowDialog();

}

private void even_uneven_button_Click(object sender, System.EventArgs e)

{

A2 = new Even_uneven();

A2.ShowDialog();

}

private void hemming_button_Click(object sender, System.EventArgs e)

{

A3 = new Hemming();

A3.ShowDialog();

}

}

}

Post

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace Study_Programs

{

public class Post : System.Windows.Forms.Form

{

private System.Windows.Forms.Label label1;

private System.Windows.Forms.TextBox textBox1;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.TextBox textBox2;

private System.Windows.Forms.Label label3;

private System.Windows.Forms.TextBox textBox3;

private System.Windows.Forms.Button button2;

private System.Windows.Forms.Button button3;

private System.ComponentModel.Container components = null;

private System.Windows.Forms.Button help;

Help A4;Error A5;

static char []input;

static char [][] command;

static byte l,finish,k;

static sbyte position;

static bool chk=true;

public Post(){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.textBox1 = new System.Windows.Forms.TextBox();

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

this.textBox2 = new System.Windows.Forms.TextBox();

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

this.textBox3 = new System.Windows.Forms.TextBox();

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

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

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

this.SuspendLayout();

//

// label1

//

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(8, 8);

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(192, 16);

this.label1.TabIndex = 0;

this.label1.Text = "Входная строка машины Поста";

//

// textBox1

//

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

this.textBox1.Location = new System.Drawing.Point(8, 24);

this.textBox1.Name = "textBox1";

this.textBox1.Size = new System.Drawing.Size(224, 21);

this.textBox1.TabIndex = 1;

this.textBox1.Text = "Введите строку, состоящую из 0 и 1";

//

// label2

//

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

this.label2.Location = new System.Drawing.Point(8, 56);

this.label2.Name = "label2";

this.label2.Size = new System.Drawing.Size(216, 16);

this.label2.TabIndex = 2;

this.label2.Text = "Список команд";

//

// textBox2

//

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

this.textBox2.Location = new System.Drawing.Point(8, 72);

this.textBox2.Name = "textBox2";

this.textBox2.Size = new System.Drawing.Size(224, 21);

this.textBox2.TabIndex = 3;

this.textBox2.Text = "Введите список команд";

//

// label3

//

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

this.label3.Location = new System.Drawing.Point(8, 104);

this.label3.Name = "label3";

this.label3.Size = new System.Drawing.Size(112, 16);

this.label3.TabIndex = 4;

this.label3.Text = "Выходная строка";

//

// textBox3

//

this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None;

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

this.textBox3.Location = new System.Drawing.Point(8, 120);

this.textBox3.Name = "textBox3";

this.textBox3.ReadOnly = true;

this.textBox3.Size = new System.Drawing.Size(224, 14);

this.textBox3.TabIndex = 5;

this.textBox3.Text = "";

//

// help

//

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

this.help.Location = new System.Drawing.Point(136, 144);

this.help.Name = "help";

this.help.Size = new System.Drawing.Size(72, 24);

this.help.TabIndex = 8;

this.help.Text = "Справка";

this.help.Click += new System.EventHandler(this.help_Click);

//

// button2

//

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

this.button2.Location = new System.Drawing.Point(40, 176);

this.button2.Name = "button2";

this.button2.Size = new System.Drawing.Size(168, 24);

this.button2.TabIndex = 9;

this.button2.Text = "Вернуться к выбору темы";

this.button2.Click += new System.EventHandler(this.button2_Click);

//

// button3

//

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

this.button3.Location = new System.Drawing.Point(40, 144);

this.button3.Name = "button3";

this.button3.Size = new System.Drawing.Size(72, 24);

this.button3.TabIndex = 10;

this.button3.Text = "GO";

this.button3.Click += new System.EventHandler(this.button3_Click);

//

// Post

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(242, 208);

this.ControlBox = false;

this.Controls.Add(this.button3);

this.Controls.Add(this.button2);

this.Controls.Add(this.help);

this.Controls.Add(this.textBox3);

this.Controls.Add(this.label3);

this.Controls.Add(this.textBox2);

this.Controls.Add(this.label2);

this.Controls.Add(this.textBox1);

this.Controls.Add(this.label1);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.MaximizeBox = false;

this.Name = "Post";

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Post";

this.TopMost = true;

this.ResumeLayout(false);

}

#endregion

public static byte first()

{

position++;

return(k=Convert.ToByte(char.GetNumericValue(command[k][2])-1));

}

public static byte second()

{

position--;

return(k=Convert.ToByte(char.GetNumericValue(command[k][2])-1));

}

public static byte third()

{

input[position]='1';

return(k=Convert.ToByte(char.GetNumericValue(command[k][2])-1));

}

public static byte fourth()

{

input[position]='0';

return(k=Convert.ToByte(char.GetNumericValue(command[k][2])-1));

}

public void fifth()

{

if(position

{

if (input[position]=='0') k=Convert.ToByte(char.GetNumericValue(command[k][2])-1);

else k=Convert.ToByte(char.GetNumericValue(command[k][3])-1);

}

else

{

A5=new Error("Выход за границы входной строки");

A5.ShowDialog();

finish=1;chk=false;

}

}

bool check_string(string str)

{

int i,s=0,cnt=0;

for (i=0;i

for (i=0;i

{

if (!char.IsDigit(str[s])||str[s]=='0') return(false);

s++;

if (str[s]!=',') return(false);

s++;

if (char.GetNumericValue(str[s])>6||char.GetNumericValue(str[s])<1) return(false);

s++;

if (str[s]!=',') return(false);

s++;

if (!char.IsDigit(str[s])) return (false);

s++;

if (str[s]!=',') return(false);

s++;

if (!char.IsDigit(str[s])) return(false);

s++;

if (str[s]!=';') return(false);

s++;

}

if(s!=str.Length) return(false);

return(true);

}

private void button2_Click(object sender, System.EventArgs e){this.Close();}

private void help_Click(object sender, System.EventArgs e)

{

A4 = new Help(0);

A4.ShowDialog();

}

private void button3_Click(object sender, System.EventArgs e)

{

l=1;k=0;position=0;finish=0;textBox3.Text="";chk=true;

int i,j;

//массив из входной строки

input = new char [textBox1.Text.Length];

command = new char [textBox2.Text.Length/8][];

for (i=0;i

{

if (textBox1.Text[i]!='0' && textBox1.Text[i]!='1')

{

A5 = new Error("Неправильный формат входной строки");

A5.ShowDialog();

i=textBox1.Text.Length;

chk=false;

}

else input[i]=textBox1.Text[i];

}

//массив из списка комманд

if (check_string(textBox2.Text))

{

for (i=0;i

{

command [i]=new char[4];

for (j=0;j<4;j++) command[i][j]=textBox2.Text[i*8+j*2];

}

}

else

{

A5 = new Error("Некорректный формат команды");

A5.ShowDialog();

chk=false;

}

if (chk)

{

do

{

switch(command[k][l])

{

case('1'):

{

first();

break;

}

case('2'):

{

second();

break;

}

case('3'):

{

third();

break;

}

case('4'):

{

fourth();

break;

}

case('5'):

{

fifth();

break;

}

case('6'):

{

finish=1;

break;

}

}

}while (finish!=1);

}

if(chk) for(i=0;i

}

}

}

Hemming

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace Study_Programs

{

public class Hemming : System.Windows.Forms.Form

{

int ChVoprosov=1;

int X=0;

int Nomer=0;

int [] x=new int[10];

Help A4; Error A5;

private System.Windows.Forms.TextBox textBox1;

private System.Windows.Forms.TextBox textBox2;

private System.Windows.Forms.TextBox textBox3;

private System.Windows.Forms.TextBox textBox4;

private System.Windows.Forms.TextBox textBox5;

private System.Windows.Forms.Button button1;

private System.Windows.Forms.Button button2;

private System.Windows.Forms.Button button3;

private System.Windows.Forms.Button button4;

private System.Windows.Forms.Button button5;

private System.Windows.Forms.Label label3;

private System.Windows.Forms.Label label4;

private System.Windows.Forms.Label label1;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.Label label5;

private System.Windows.Forms.GroupBox groupBox1;

private System.Windows.Forms.ToolTip toolTip1;

private System.ComponentModel.IContainer components;

public Hemming(){InitializeComponent();}

protected override void Dispose( bool disposing )

{

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

base.Dispose(disposing);

}

public void Generation()

{

X=1;

textBox1.Text="";

Random r=new System.Random();

int d;

for (int i=1; i<10; i++)

{

d=r.Next(0,2);

textBox1.Text+=d;

x[i]=d;

}

}

public void Number()

{

int x1=0;int x2=0;int x3=0;int x4=0;

x1=x[1]+x[3]+x[5]+x[7]+x[9];

if (x1==0 || x1==2 || x1==4) x1=0; else x1=1;

x2=x[2]+x[3]+x[6]+x[7];

if (x2==0 || x2==2 || x2==4) x2=0; else x2=1;

x3=x[4]+x[5]+x[6]+x[7];

if (x3==0 || x3==2 || x3==4) x3=0; else x3=1;

x4=x[8]+x[9];

if (x4==0 || x4==2) x4=0;else x4=1;

Nomer=x4*1000+x3*100+x2*10+x1;

}

public void Otvet(){textBox3.Text = x[1] + "" + x[2] + "" + x[3] + "" + x[4] + "" + x[5] + "" + x[6] + "" + x[7] + "" + x[8] + "" + x[9];}

public void Sravnenie()

{

if (X==1)

{

int i=0;

if (Nomer == 1) i = 1;

if (Nomer == 10) i = 2;

if (Nomer == 11) i = 3;

if (Nomer == 100) i = 4;

if (Nomer == 101) i = 5;

if (Nomer == 110) i = 6;

if (Nomer == 111) i = 7;

if (Nomer == 1000) i = 8;

if (Nomer == 1001) i = 9;

if (i!=0)

{

if (x[i] == 0)

{

x[i] = 1; Otvet();

}

else

{

x[i] = 0; Otvet();

}

}

}

}

public void Proverka()

{

if(textBox2.Text.Length!=textBox1.Text.Length && textBox1.Text.Length!=textBox3.Text.Length)

{

A5=new Error("Исправленный вариант должен содержать 9-ти разрядное двоичное число");

A5.ShowDialog();

X=0;

}

else

{

if(textBox1.Text.Length!=textBox3.Text.Length)

{

for(int i=0; i

{

string a="1";

string b="0";

string d=textBox2.Text.Substring(i,1);

if(d!=b && d!=a)

{

A5=new Error("Исправленный вариант должен содержать 9-ти разрядное двоичное число");

A5.ShowDialog();

X=0;

i=textBox2.Text.Length;

}

else X=1;

}

}

}

}

#region Windows Form Designer generated code

private void InitializeComponent()

{

this.components = new System.ComponentModel.Container();

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Hemming));

this.textBox1 = new System.Windows.Forms.TextBox();

this.textBox2 = new System.Windows.Forms.TextBox();

this.textBox3 = new System.Windows.Forms.TextBox();

this.textBox4 = new System.Windows.Forms.TextBox();

this.textBox5 = new System.Windows.Forms.TextBox();

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

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

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

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

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

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

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

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

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

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

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

this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);

this.groupBox1.SuspendLayout();

this.SuspendLayout();

//

// textBox1

//

this.textBox1.Location = new System.Drawing.Point(216, 16);

this.textBox1.Name = "textBox1";

this.textBox1.ReadOnly = true;

this.textBox1.Size = new System.Drawing.Size(88, 20);

this.textBox1.TabIndex = 0;

this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// textBox2

//

this.textBox2.Location = new System.Drawing.Point(216, 40);

this.textBox2.MaxLength = 9;

this.textBox2.Name = "textBox2";

this.textBox2.Size = new System.Drawing.Size(88, 20);

this.textBox2.TabIndex = 1;

this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// textBox3

//

this.textBox3.Location = new System.Drawing.Point(216, 64);

this.textBox3.Name = "textBox3";

this.textBox3.ReadOnly = true;

this.textBox3.Size = new System.Drawing.Size(88, 20);

this.textBox3.TabIndex = 2;

this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// textBox4

//

this.textBox4.Location = new System.Drawing.Point(104, 136);

this.textBox4.Name = "textBox4";

this.textBox4.ReadOnly = true;

this.textBox4.Size = new System.Drawing.Size(40, 20);

this.textBox4.TabIndex = 3;

this.textBox4.Text = "1";

this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// textBox5

//

this.textBox5.Location = new System.Drawing.Point(272, 136);

this.textBox5.Name = "textBox5";

this.textBox5.ReadOnly = true;

this.textBox5.Size = new System.Drawing.Size(40, 20);

this.textBox5.TabIndex = 4;

this.textBox5.Text = "0";

this.textBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// button1

//

this.button1.Location = new System.Drawing.Point(8, 102);

this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(88, 24);

this.button1.TabIndex = 5;

this.button1.Text = "Ошибки нет";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// button2

//

this.button2.Location = new System.Drawing.Point(108, 102);

this.button2.Name = "button2";

this.button2.Size = new System.Drawing.Size(88, 24);

this.button2.TabIndex = 6;

this.button2.Text = "Ошибка есть";

this.button2.Click += new System.EventHandler(this.button2_Click);

//

// button3

//

this.button3.Location = new System.Drawing.Point(206, 101);

this.button3.Name = "button3";

this.button3.Size = new System.Drawing.Size(112, 24);

this.button3.TabIndex = 7;

this.button3.Text = "Следующее число";

this.button3.Click += new System.EventHandler(this.button3_Click);

//

// button4

//

this.button4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));

this.button4.Location = new System.Drawing.Point(128, 160);

this.button4.Name = "button4";

this.button4.Size = new System.Drawing.Size(72, 24);

this.button4.TabIndex = 11;

this.button4.Text = "Справка";

this.button4.Click += new System.EventHandler(this.button4_Click);

//

// button5

//

this.button5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));

this.button5.Location = new System.Drawing.Point(80, 192);

this.button5.Name = "button5";

this.button5.Size = new System.Drawing.Size(168, 24);

this.button5.TabIndex = 12;

this.button5.Text = "Вернуться к выбору темы";

this.button5.Click += new System.EventHandler(this.button5_Click);

//

// label3

//

this.label3.Location = new System.Drawing.Point(8, 136);

this.label3.Name = "label3";

this.label3.Size = new System.Drawing.Size(96, 24);

this.label3.TabIndex = 13;

this.label3.Text = "Номер вопроса:";

//

// label4

//

this.label4.Location = new System.Drawing.Point(152, 136);

this.label4.Name = "label4";

this.label4.Size = new System.Drawing.Size(120, 24);

this.label4.TabIndex = 14;

this.label4.Text = "Правильных ответов:";

//

// label1

//

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

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(216, 16);

this.label1.TabIndex = 15;

this.label1.Text = "Число, возможно содержащее ошибку";

//

// label2

//

this.label2.Location = new System.Drawing.Point(8, 40);

this.label2.Name = "label2";

this.label2.Size = new System.Drawing.Size(128, 16);

this.label2.TabIndex = 16;

this.label2.Text = "Исправленный вариант";

//

// label5

//

this.label5.Location = new System.Drawing.Point(8, 64);

this.label5.Name = "label5";

this.label5.Size = new System.Drawing.Size(112, 16);

this.label5.TabIndex = 17;

this.label5.Text = "Правильный ответ";

//

// groupBox1

//

this.groupBox1.Controls.Add(this.label2);

this.groupBox1.Controls.Add(this.textBox3);

this.groupBox1.Controls.Add(this.label5);

this.groupBox1.Controls.Add(this.textBox1);

this.groupBox1.Controls.Add(this.textBox2);

this.groupBox1.Controls.Add(this.label1);

this.groupBox1.Location = new System.Drawing.Point(6, -1);

this.groupBox1.Name = "groupBox1";

this.groupBox1.Size = new System.Drawing.Size(312, 96);

this.groupBox1.TabIndex = 19;

this.groupBox1.TabStop = false;

this.toolTip1.SetToolTip(this.groupBox1, @"9-ти разрядное двоичное число, закодированно по методу Хэмминга. В одном из разрядов"+"\n"+"возможно присутствует ошибка. Если она есть, необходимо её исправить и записать правильный"+"\n"+"вариант в соответствующее окно, после этого нажмите кнопку «Ошибка есть».Если ошибка"+"\n"+"отсутствует, то в окно Исправленный вариант ничего писать не нужно и следуетнажать"+"\n"+"кнопку «Ошибки нет». Далее нужно нажать кнопку «Cледующее число»");

//

// toolTip1

//

this.toolTip1.AutomaticDelay = 10;

this.toolTip1.AutoPopDelay = 100000;

this.toolTip1.InitialDelay = 10;

this.toolTip1.ReshowDelay = 2;

this.toolTip1.ShowAlways = true;

//

// Hemming

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(322, 224);

this.ControlBox = false;

this.Controls.Add(this.groupBox1);

this.Controls.Add(this.label4);

this.Controls.Add(this.label3);

this.Controls.Add(this.button5);

this.Controls.Add(this.button4);

this.Controls.Add(this.button3);

this.Controls.Add(this.button2);

this.Controls.Add(this.button1);

this.Controls.Add(this.textBox5);

this.Controls.Add(this.textBox4);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.MaximizeBox = false;

this.Name = "Hemming";

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Hemming";

this.TopMost = true;

this.Load += new System.EventHandler(this.Hemming_Load);

this.groupBox1.ResumeLayout(false);

this.groupBox1.PerformLayout();

this.ResumeLayout(false);

this.PerformLayout();

}

#endregion

private void Hemming_Load(object sender, System.EventArgs e)

{

Generation();

Number();

}

private void button1_Click(object sender, System.EventArgs e)

{

textBox2.Text="";

if(textBox1.Text.Length!=textBox3.Text.Length) X=1;

if (X==1)textBox3.Text="";

int Prav=Convert.ToInt32(textBox5.Text);

if (X==1)

{

if (Nomer==0)

{

Prav++; Otvet();

}

Sravnenie();

if (textBox3.Text.Length==0)

{

Prav++; Otvet();

}

textBox5.Text=""; textBox5.Text+=Prav;

}

X=0;

}

private void button2_Click(object sender, System.EventArgs e)

{

Proverka();

if(X==1)textBox3.Text="";

int Prav=Convert.ToInt32(textBox5.Text);

if (X==1)

{

if (Nomer==0) Otvet();

Sravnenie();

if (textBox3.Text.Length==0) Otvet();

int Moe=Convert.ToInt32(textBox2.Text);

int Pravilnoe=Convert.ToInt32(textBox3.Text);

if (Moe==Pravilnoe) Prav++;

textBox5.Text="";

textBox5.Text+=Prav;

}

X=0;

}

private void button4_Click(object sender, System.EventArgs e)

{

A4 = new Help(2);

A4.ShowDialog();

}

private void button5_Click(object sender, System.EventArgs e){this.Close();}

private void button3_Click(object sender, System.EventArgs e)

{

ChVoprosov++;

textBox2.Text="";

textBox3.Text="";

textBox4.Text="";

textBox4.Text+=ChVoprosov;

Generation();

Number();

}

}

}

Even_ueven

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace Study_Programs

{

public class Even_uneven : System.Windows.Forms.Form

{

int Prav;

int ch;

int ChVoprosov=1;

Help A4;

private System.Windows.Forms.TextBox textBox1;

private System.Windows.Forms.Button button1;

private System.Windows.Forms.TextBox textBox2;

private System.Windows.Forms.Button button2;

private System.Windows.Forms.TextBox textBox3;

private System.Windows.Forms.TextBox textBox4;

private System.Windows.Forms.Label label1;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.Label label3;

private System.Windows.Forms.Label label4;

private System.Windows.Forms.Button button3;

private System.Windows.Forms.Button button4;

private System.Windows.Forms.Label label6;

private System.Windows.Forms.GroupBox groupBox1;

private System.ComponentModel.Container components = null;

public Even_uneven(){InitializeComponent();}

protected override void Dispose( bool disposing )

{

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

base.Dispose( disposing );

}

public void Generation()

{

textBox1.Text="";

Random r=new System.Random();

int d;

for (int i=0; i<7; i++)

{

d=r.Next(0,2);

textBox1.Text+=d;

ch+=d;

}

textBox2.Text="";

int g=r.Next(0,2);

textBox2.Text+=g;

ch+=g;

}

public void ChangeChVoprosov()

{

ChVoprosov++;

textBox3.Text="";

textBox3.Text+=ChVoprosov;

}

public void ChangePrav()

{

textBox4.Text="";

textBox4.Text+=Prav;

}

#region Windows Form Designer generated code

private void InitializeComponent()

{

this.textBox1 = new System.Windows.Forms.TextBox();

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

this.textBox2 = new System.Windows.Forms.TextBox();

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

this.textBox3 = new System.Windows.Forms.TextBox();

this.textBox4 = new System.Windows.Forms.TextBox();

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

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

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

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

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

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

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

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

this.groupBox1.SuspendLayout();

this.SuspendLayout();

//

// textBox1

//

this.textBox1.Location = new System.Drawing.Point(192, 15);

this.textBox1.Name = "textBox1";

this.textBox1.ReadOnly = true;

this.textBox1.Size = new System.Drawing.Size(88, 20);

this.textBox1.TabIndex = 0;

this.textBox1.Text = "";

this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// button1

//

this.button1.Location = new System.Drawing.Point(7, 156);

this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(140, 22);

this.button1.TabIndex = 1;

this.button1.Text = "Код числа правильный";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// textBox2

//

this.textBox2.Location = new System.Drawing.Point(192, 45);

this.textBox2.Name = "textBox2";

this.textBox2.ReadOnly = true;

this.textBox2.Size = new System.Drawing.Size(88, 20);

this.textBox2.TabIndex = 2;

this.textBox2.Text = "0";

this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// button2

//

this.button2.Location = new System.Drawing.Point(153, 156);

this.button2.Name = "button2";

this.button2.Size = new System.Drawing.Size(140, 21);

this.button2.TabIndex = 3;

this.button2.Text = "Код числа неправильный";

this.button2.Click += new System.EventHandler(this.button2_Click);

//

// textBox3

//

this.textBox3.Location = new System.Drawing.Point(103, 186);

this.textBox3.Name = "textBox3";

this.textBox3.ReadOnly = true;

this.textBox3.Size = new System.Drawing.Size(34, 20);

this.textBox3.TabIndex = 4;

this.textBox3.Text = "1";

this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// textBox4

//

this.textBox4.Location = new System.Drawing.Point(260, 186);

this.textBox4.Name = "textBox4";

this.textBox4.ReadOnly = true;

this.textBox4.Size = new System.Drawing.Size(33, 20);

this.textBox4.TabIndex = 5;

this.textBox4.Text = "0";

this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;

//

// label1

//

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

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(113, 22);

this.label1.TabIndex = 6;

this.label1.Text = "Цифровые разряды:";

//

// label2

//

this.label2.Location = new System.Drawing.Point(7, 45);

this.label2.Name = "label2";

this.label2.Size = new System.Drawing.Size(120, 22);

this.label2.TabIndex = 7;

this.label2.Text = "Контрольный разряд:";

//

// label3

//

this.label3.Location = new System.Drawing.Point(12, 189);

this.label3.Name = "label3";

this.label3.Size = new System.Drawing.Size(86, 15);

this.label3.TabIndex = 8;

this.label3.Text = "Номер вопроса:";

//

// label4

//

this.label4.Location = new System.Drawing.Point(146, 186);

this.label4.Name = "label4";

this.label4.Size = new System.Drawing.Size(114, 14);

this.label4.TabIndex = 9;

this.label4.Text = "Правильных ответов:";

//

// button3

//

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

this.button3.Location = new System.Drawing.Point(120, 208);

this.button3.Name = "button3";

this.button3.Size = new System.Drawing.Size(60, 22);

this.button3.TabIndex = 10;

this.button3.Text = "Справка";

this.button3.Click += new System.EventHandler(this.button3_Click);

//

// button4

//

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

this.button4.Location = new System.Drawing.Point(80, 238);

this.button4.Name = "button4";

this.button4.Size = new System.Drawing.Size(140, 22);

this.button4.TabIndex = 11;

this.button4.Text = "Вернуться к выбору темы";

this.button4.Click += new System.EventHandler(this.button4_Click);

//

// label6

//

this.label6.Location = new System.Drawing.Point(8, 88);

this.label6.Name = "label6";

this.label6.Size = new System.Drawing.Size(288, 64);

this.label6.TabIndex = 13;

this.label6.Text = "Нужно определить присутствует или не присутствует ошибка в записи числа.Если числ" +

"о записано правильно, нужно щелкнуть по кнопке «Код числа правильный». Если чис" +

"ло содержит ошибку, нужно щелкнуть кнопку «Код числа неправильный». ";

this.label6.TextAlign = System.Drawing.ContentAlignment.BottomLeft;

//

// groupBox1

//

this.groupBox1.Controls.Add(this.label1);

this.groupBox1.Controls.Add(this.textBox1);

this.groupBox1.Controls.Add(this.label2);

this.groupBox1.Controls.Add(this.textBox2);

this.groupBox1.Location = new System.Drawing.Point(7, 7);

this.groupBox1.Name = "groupBox1";

this.groupBox1.Size = new System.Drawing.Size(286, 75);

this.groupBox1.TabIndex = 14;

this.groupBox1.TabStop = false;

this.groupBox1.Text = "Задано случайное число:";

//

// Even_uneven

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(301, 272);

this.ControlBox = false;

this.Controls.Add(this.groupBox1);

this.Controls.Add(this.label6);

this.Controls.Add(this.button4);

this.Controls.Add(this.button3);

this.Controls.Add(this.label4);

this.Controls.Add(this.label3);

this.Controls.Add(this.textBox4);

this.Controls.Add(this.textBox3);

this.Controls.Add(this.button2);

this.Controls.Add(this.button1);

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

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.Name = "Even_uneven";

this.ShowInTaskbar = false;

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Even_uneven";

this.TopMost = true;

this.Load += new System.EventHandler(this.Form1_Load);

this.groupBox1.ResumeLayout(false);

this.ResumeLayout(false);

}

#endregion

private void Form1_Load(object sender, System.EventArgs e)

{

Generation();

}

private void button1_Click(object sender, System.EventArgs e)

{

ChangeChVoprosov();

Prav=Convert.ToInt32(textBox4.Text);

if (ch==0 || ch==2 || ch==4 || ch==6) Prav++;

ChangePrav();

ch=0;

Generation();

}

private void button2_Click(object sender, System.EventArgs e)

{

ChangeChVoprosov();

Prav=Convert.ToInt32(textBox4.Text);

if (ch==1 || ch==3 || ch==5 || ch==7) Prav++;

ChangePrav();

ch=0;

Generation();

}

private void button4_Click(object sender, System.EventArgs e){this.Close();}

private void button3_Click(object sender, System.EventArgs e)

{

A4 = new Help(1); A4.ShowDialog();

}

}

}

Help

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace Study_Programs

{

public class Help : System.Windows.Forms.Form

{

private System.Windows.Forms.Label label1;

private System.Windows.Forms.ComboBox comboBox1;

private System.Windows.Forms.RichTextBox richTextBox1;

private System.Windows.Forms.Button button1;

private System.ComponentModel.Container components = null;

public Help(byte n)

{

InitializeComponent();

comboBox1.SelectedIndex=n;

}

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.comboBox1 = new System.Windows.Forms.ComboBox();

this.richTextBox1 = new System.Windows.Forms.RichTextBox();

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

this.SuspendLayout();

//

// label1

//

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(56, 0);

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(280, 24);

this.label1.TabIndex = 0;

this.label1.Text = "Выберите интересующий Вас раздел";

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

//

// comboBox1

//

this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

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

this.comboBox1.Items.AddRange(new object[] {

"Программирование машины Поста",

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

"Кодирование по методу Хэмминга"});

this.comboBox1.Location = new System.Drawing.Point(8, 24);

this.comboBox1.Name = "comboBox1";

this.comboBox1.Size = new System.Drawing.Size(376, 23);

this.comboBox1.TabIndex = 1;

this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);

//

// richTextBox1

//

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

this.richTextBox1.Location = new System.Drawing.Point(8, 56);

this.richTextBox1.Name = "richTextBox1";

this.richTextBox1.ReadOnly = true;

this.richTextBox1.Size = new System.Drawing.Size(376, 184);

this.richTextBox1.TabIndex = 2;

this.richTextBox1.Text = "";

//

// button1

//

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

this.button1.Location = new System.Drawing.Point(160, 248);

this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(80, 24);

this.button1.TabIndex = 3;

this.button1.Text = "Выход";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// Help

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(394, 280);

this.ControlBox = false;

this.Controls.Add(this.button1);

this.Controls.Add(this.richTextBox1);

this.Controls.Add(this.comboBox1);

this.Controls.Add(this.label1);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.MaximizeBox = false;

this.Name = "Help";

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Help";

this.TopMost = true;

this.ResumeLayout(false);

}

#endregion

private void button1_Click(object sender, System.EventArgs e){this.Close();}

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)

{

string temp;

switch(comboBox1.SelectedIndex)

{

case (0):

{

richTextBox1.Text="";

temp="Машина Поста (как и машина Тьюринга) является одним из способов формализации понятия алгоритма. Машина Поста является абстрактной машиной, предназначенной для доказательства различных утверждений о свойствах программ для них. Машина Поста является полностью детерминированной машиной, читающей начальные данные и, после выполнения программы, выдающей результат. На содержательном уровне машина Поста представляет собой бесконечную ленту, разделенную на одинаковые клетки, каждая из которых может быть либо пустой либо заполненной меткой, вдоль которой может перемещаться головка. За один такт или за одну команду головка может переместиться на одну клетку вправо или влево (или остаться на месте). Кроме того головка может записать в клетку, над которой она находится, метку (если ее там не было) или стереть метку (если она там была). В результате работы машина Поста перерабатывает содержимое ленты в соответствие с заданной программой.В общем виде отдельная команда машины Поста имеет следующий вид: n,K,m1,m2; где n – порядковый номер команды, К – тип команды, m1, m2 – порядковые номера следующих команды. Имеется шесть типов команд машины Поста, которым для удобства можно дать номера от 1 до 6. Ниже дано описание команд машины Поста.\n1 - Движение головки на одну клетку вправо и переход к команде m1.\n2 - Движение головки на одну клетку влево и переход к команде m1.\n3 - Нанесение метки в ячейку и переход к команде m1.\n4 - Стирание метки в ячейке и переход к команде m1.\n5 - Проверка наличия метки в клетке, над которой находится головка. Если метка отсутствует, то управление передается с номером m1, если метка есть, то с номером m2.\n6 - Остановка машины.\nПример команды машины Поста: 1,1,2,0;. Данная команда имеет порядковый номер 1, тип команды – 1 (движение головки на одну клетку вправо). После выполнения команды управление передается команде, имеющей порядковый номер 2.\nРассмотрим пример простой программы, которая стирает первую метку, записанную на ленте. Предположим, ";

richTextBox1.Text = temp + "что в начале работы головка находится над крайне левой ячейкой ленты. Поставленная задача может быть выполнена с помощью следующего набора команд.\n• 1,5,2,4; 1-я команда.\n• 2,1,3,0; 2-я команда.\n• 3,5,2,4; 3-я команда.\n• 4,4,5,0; 4-я команда.\n• 5,6,0,0; 5-я команда.\nРазберем работу программы.\n1-я команда – это команда типа 5, т.е. условный переход. Если ячейка пустая, то управление передается команде 2, в противном случае – 4-й команде.\n2-я команда – это сдвиг головки на одну ячейку вправо и передача управления 3-й команде.\n3-я команда – это опять условный переход. Если метка отсутствует, то возврат ко второй команде и переход на 4-ю в противном случае.\n4-я команда стирает метку (очевидно, она там есть, т.к. мы попадаем на 4-ю команду только при наличии метки) и передает управление 5-й команде, которая является командой остановки машины.\nПорядок записи и выполнения программы следующий:\n1.В окно «Входная строка машины Поста» введите произвольную строку, состоящую из нулей и единиц, для которой поставленная задача имеет смысл. Например, если задача состоит в стирании 1-й метки, то, чтобы проверить правильность работы программы, во входной строке должна присутствовать хотя бы одна метка, т.е. единица.\n2.В нижележащее окно введите в соответствии с выше перечисленными правилами набор команд, решающих поставленную задачу.\n3.Нажмите кнопку «GO», после чего записанные команды будут выполнены и в окне «Выходная строка» появится результат работы машины Поста в виде выходной строки символов, состоящей из нулей и единиц.\nВ качестве упражнения задайте произвольную входную строку и введите рассмотренную выше программу, стирающую 1-ю метку. Запустите программу на выполнение. Результат работы программы покажите преподавателю.";

break;

}

case (1):

{

richTextBox1.Text="";

temp="Понятие двоичного кода.\nДля контроля правильности передачи информации, а также как средство шифрования информации используются различные коды. Коды, использующие для передачи информации два различных элементарных сигнала, называются двоичными. Эти сигналы удобно обозначать символами 0 и 1. Тогда кодовое слово будет состоять из последовательности нулей и единиц.\nПри выполнении арифметических операций в цифровом автомате правильный результат будет получен только в случае, если машина работает без нарушений. При возникновении какой-либо ошибки в двоичном коде результат операции будет неверным, однако пользователь об этом не узнает, если не будут предусмотрены меры, сигнализирующие о появлении ошибки. То есть должна быть разработана определенная система контроля работы цифрового автомата. Для этой цели и служат различные методы кодирования двоичной информации. Кодирование по методу четности-нечетности. В случае кодирования по методу четности-нечетности к каждому двоичному числу добавляется один избыточный разряд и в него записывается 1 или 0 с таким условием, чтобы сумма цифр в числе была по модулю 2 равна 0 в случае кодирования по методу четности и 1 – по методу нечетности. Другими словами число единиц в двоичном числе (вместе с контрольным разрядом) должно быть четным числом в случае четности и нечетным – в случае нечетности. Появление ошибки в двоичном коде обнаружится по нарушению этого правила. Например, число 10011011 будет ошибочным в случае кодирования по четности, так как число единиц в числе нечетно и равно 5. При таком кодировании допускается, что может возникнуть только одна ошибка. Очевидно, что если число содержит две ошибки (или вообще четное число ошибок) то его код по методу четности будет правильным. То же самое можно сказать и о кодировании по методу нечетности. Пример реализации метода четности:\nI.Цифровой разряд - 1011101\nКонтрольный разряд - 1\nПризнак правильности числа - 0\n\nII.Цифровой разряд - 1110100\nКонтрольный разряд - 0\nПризнак правильности числа - 0\n\nIII.Ц";

richTextBox1.Text = temp + "ифровой разряд - 1000011\nКонтрольный разряд - 0\nПризнак правильности числа - 1\n\nIV.Цифровой разряд - 1110111\nКонтрольный разряд - 1\nПризнак правильности числа - 1.\nПризнак правильности равный 0 означает, что код числа правильный и 1 - неправильный. Такое кодирование не позволяет в случае появления ошибки определить какой именно разряд является ошибочным. Избыточность информации при таком кодировании минимальна и равна одному биту (один дополнительный разряд). Можно представить видоизмененный метод контроля по методу четности. Цифровые разряды двоичного числа разбиваются на группы, каждая из которых содержит одинаковое количество разрядов. Контрольные разряды добавляются к каждой группе по строкам и по столбцам. Увеличение избыточности информации (вместо одного дополнительного разряда для 9 разрядного числа мы имеем 6 дополнительных разрядов) приводит к тому, что появляется возможность не только обнаружить наличие ошибки, но и место ее возникновения.";

break;

}

case (2):

{

richTextBox1.Text="";

temp="Как и в последнем варианте метода четности, коды Хэмминга позволяют не только обнаружить наличие ошибки, но и место ее нахождения и следовательно дают возможность ее исправить. Однако, в отличие от предыдущего методы, коды Хэмминга обладают меньшей избыточностью, т.е. количеством дополнительных контрольных разрядов. Предположим, что имеется код, содержащий m информационных и k контрольных разрядов. Все разряды, включая контрольные, разбиваются на k групп по определенным правилам, о которых будет сказано ниже. Каждая группа, содержащая один контрольный разряд, проверяется на четность. Пусть были проведены все k проверок. Если результат данной проверки свидетельствует об отсутствии ошибки, то записывается 0, если есть ошибка, то записывается 1. В результате получается последовательность, состоящая из k нулей и единиц. При отсутствии ошибки в коде получается последовательность нулей. Полученное k-разрядное двоичное число может содержать 2k различных комбинаций нулей и единиц. С помощью этой информации нужно определить ошибочный разряд в коде, содержащем m+k разрядов. Для того, чтобы это было возможно должно выполняться неравенство:2^k=>(m+k+1)\nОпределить максимальное значение m для данного k можно из следующей таблицы.\n n|1,2,3,4…|8,…,15|16,…,31|…|\nm|0,0,1,1…|4,…,11|11,…,26|…|\nk | 1,2,2,3 | 4,…,4 | 5,…,5 |…|\nИз таблицы видно, для 16-ти разрядного числа требуется 5 контрольных разрядов. В качестве сравнения, в случае модифицированного метода четности потребовалось бы 8 контрольных разрядов. Позиции контрольных разрядов в методе Хэмминга определены заранее, это разряды 1,2,4,8,… Разряды, входящие в каждую группу проверки представлены в следующей таблице (1-й разряд в каждой группе является контрольным).\n\nНомер группы проверки - 1.\nПроверяемые разряды - 1,3,5,7,9,11,13,15,…\n\nНомер группы проверки - 2.\nПроверяемые разряды - 2,3,6,7,10,11,14,15,18,19,22,23,…\n\nНомер группы проверки - 3.\nПроверяемые разряды - 4,5,6,7,12,13,14,15,20,21,22,23,…\n\nНомер группы проверки - 4.\n";

richTextBox1.Text = temp + "Проверяемые разряды - 8,9,10,11,12,13,14,15,24,…\nИз таблицы видно, что если например код Хэмминга содержит 9 разрядов, включая контрольные, то 1-я группа проверки содержит 1,3,5,7,9 разряды. 2-я группа проверки содержит 2,3,6,7 разряды. 3-группа проверки содержит 4,5,6,7 разряды и 4-я группа – 8,9 разряды. Каждой группе проверки приписывается 1, если проверка на четность обнаруживает ошибку и 0, если ошибки нет. Полученное двоичное число дает номер ошибочного разряда. Рассмотрим в качестве примера 5-ти разрядное двоичное число 10011. В этом случае, как следует из вышеприведенной таблицы, 1-я группа проверки состоит из 1,3, и 5-го разрядов. 2-я группа проверки состоит из 2 и 3-го разряда. 3-я группа проверки состоит из 4 и 5-го разрядов. Результат проверки на четность 1-й группы дает 0 (101), проверка 2-й группы дает 0 (00), проверка 3-й группы дает 0 (11). Таким образом, данное число не содержит ошибки. Искусственно введем ошибку, заменив, например, 4-й разряд на 0. В этом случае 1, 2 и 3-я проверки дадут соответственно 0, 0, 1. Полученное двоичное число 100 дает номер ошибочного разряда, т.е. 4.";

break;

}

}

}

}

}

Error

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

namespace Study_Programs

{

public class Error : System.Windows.Forms.Form

{

private System.Windows.Forms.Button button1;

private System.Windows.Forms.Label label1;

private System.Windows.Forms.PictureBox pictureBox1;

private System.ComponentModel.Container components = null;

public Error(string error)

{

InitializeComponent();

label1.Text=error;

}

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()

{

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Error));

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

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

this.pictureBox1 = new System.Windows.Forms.PictureBox();

this.SuspendLayout();

//

// button1

//

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

this.button1.Location = new System.Drawing.Point(136, 56);

this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(72, 24);

this.button1.TabIndex = 0;

this.button1.Text = "OK";

this.button1.Click += new System.EventHandler(this.button1_Click);

//

// label1

//

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(48, 8);

this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(272, 40);

this.label1.TabIndex = 1;

this.label1.Text = "label1";

this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;

//

// pictureBox1

//

this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));

this.pictureBox1.Location = new System.Drawing.Point(8, 16);

this.pictureBox1.Name = "pictureBox1";

this.pictureBox1.Size = new System.Drawing.Size(32, 32);

this.pictureBox1.TabIndex = 2;

this.pictureBox1.TabStop = false;

//

// Error

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.BackColor = System.Drawing.SystemColors.InactiveBorder;

this.ClientSize = new System.Drawing.Size(338, 88);

this.ControlBox = false;

this.Controls.Add(this.pictureBox1);

this.Controls.Add(this.label1);

this.Controls.Add(this.button1);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

this.Name = "Error";

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

this.Text = "Error";

this.TopMost = true;

this.ResumeLayout(false);

}

#endregion

private void button1_Click(object sender, System.EventArgs e){this.Close();}

}

}

Характеристики

Тип файла
Документ
Размер
1,88 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7028
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее