unit unittest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type Vopros = record    //объявляем тип запись где будем хранить вопросы и варианты ответов к ним
Vopros:string;//здесь храниться вопрос
VariantOtveta1:string;//здесь храниться вариант ответа 1
VariantOtveta2:string;//здесь храниться вариант ответа 2
VariantOtveta3:string;//здесь храниться вариант ответа 3
VariantOtveta4:string;//здесь храниться вариант ответа 4
Variant1TrueOrFalse:boolean;// хранит значение true если вариант ответа верный иначе хранит false
Variant2TrueOrFalse:boolean;// хранит значение true если вариант ответа верный иначе хранит false
Variant3TrueOrFalse:boolean;// хранит значение true если вариант ответа верный иначе хранит false
Variant4TrueOrFalse:boolean;// хранит значение true если вариант ответа верный иначе хранит false
end ;
 type TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Memo4: TMemo;
    Memo5: TMemo;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  //объявим глобальную переменную которая будет хранить номер текущего вопроса
Number:integer;
    MasVoprosov1: array[1..5]of Vopros;//объявляем переменную типа массив из 10 элементов типа Vopros
    MasVoprosov2: array[1..5]of Vopros;//объявляем переменную типа массив из 10 элементов типа Vopros
   MasVoprosov3 : array[1..5]of Vopros;//объявляем переменную типа массив из 10 элементов типа Vopros
   MasVoprosov4: array[1..5]of Vopros;//объявляем переменную типа массив из 10 элементов типа Vopros
 MasVoprosov : array[1..20]of Vopros;//объявляем переменную типа массив из 10 элементов типа Vopros
  MasDataOtvetov:array[1..20]of Vopros;// будем хранить в этом массиве ответы пользователя
implementation

uses Unit2, unit14, unit9, unit5, unit11;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// кнопка начать тестирование

//сначала наш массив с элементами типа запись с именем vopros мы заполняем 5 вопросов по 1 практике
//заполняем 1 вопрос
MasVoprosov1[1].Vopros:='Что входит в структуру  ROADM';
MasVoprosov1[1].VariantOtveta1:='Дискретные компоненты (демультиплексор)';
MasVoprosov1[1].VariantOtveta2:='Оптические переключатели';
MasVoprosov1[1].VariantOtveta3:='Мультиплексор';
MasVoprosov1[1].VariantOtveta4:='Все перечисленное';
MasVoprosov1[1].Variant1TrueOrFalse:=true;
MasVoprosov1[1].Variant2TrueOrFalse:=true;
MasVoprosov1[1].Variant3TrueOrFalse:=true;
MasVoprosov1[1].Variant4TrueOrFalse:=true;
//заполняем 2 вопрос
MasVoprosov1[2].Vopros:='Какое применение ROADM и OADM?';
MasVoprosov1[2].VariantOtveta1:='Сети на базе DWDM';
MasVoprosov1[2].VariantOtveta2:='Сети на базе СWDM';
MasVoprosov1[2].VariantOtveta3:='Сети на базе DWDM и CWDM';
MasVoprosov1[2].VariantOtveta4:='Возможность гибкого развертывания и удаленного конфигурирования спектральных каналов';
MasVoprosov1[2].Variant1TrueOrFalse:=true;
MasVoprosov1[2].Variant2TrueOrFalse:=false;
MasVoprosov1[2].Variant3TrueOrFalse:=false;
MasVoprosov1[2].Variant4TrueOrFalse:=true;
//заполняем 3 вопрос
MasVoprosov1[3].Vopros:='Интерфейс приемо-передающего блока одноканального OADM модуля включает';
MasVoprosov1[3].VariantOtveta1:='COM порт';
MasVoprosov1[3].VariantOtveta2:='Express порт';
MasVoprosov1[3].VariantOtveta3:='Drop порт';
MasVoprosov1[3].VariantOtveta4:='ADD порт';
MasVoprosov1[3].Variant1TrueOrFalse:=true;
MasVoprosov1[3].Variant2TrueOrFalse:=true;
MasVoprosov1[3].Variant3TrueOrFalse:=true;
MasVoprosov1[3].Variant4TrueOrFalse:=true;
//заполняем 4 вопрос
MasVoprosov1[4].Vopros:='Дать расшифровку аббревиатуры ROADM';
MasVoprosov1[4].VariantOtveta1:='Repeat Optical Alarm Drop Multiplexing';
MasVoprosov1[4].VariantOtveta2:='Repeat Optical And Drop Multiplexing';
MasVoprosov1[4].VariantOtveta3:='Reconfigurable Optical Add Digital Multiplexing';
MasVoprosov1[4].VariantOtveta4:='Reconfigurable Optical Add/Drop Multiplexing';
MasVoprosov1[4].Variant1TrueOrFalse:=false;
MasVoprosov1[4].Variant2TrueOrFalse:=false;
MasVoprosov1[4].Variant3TrueOrFalse:=false;
MasVoprosov1[4].Variant4TrueOrFalse:=true;
//заполняем 5 вопрос
MasVoprosov1[5].Vopros:='Дать расшифровку аббревиатуры OADM';
MasVoprosov1[5].VariantOtveta1:='Optical Alarm Drop Multiplexor';
MasVoprosov1[5].VariantOtveta2:='Optical And Drop Multiplexor ';
MasVoprosov1[5].VariantOtveta3:='Optical Add Drop Multiplexor';
MasVoprosov1[5].VariantOtveta4:='Optical Add Digital Multiplexor';
MasVoprosov1[5].Variant1TrueOrFalse:=false;
MasVoprosov1[5].Variant2TrueOrFalse:=false;
MasVoprosov1[5].Variant3TrueOrFalse:=true;
MasVoprosov1[5].Variant4TrueOrFalse:=false;
MasVoprosov4[1].Vopros:='Какова причина использования технологии Flexgrid?';
MasVoprosov4[1].VariantOtveta1:='Управление частотой сигнала';
MasVoprosov4[1].VariantOtveta2:='Управление скоростью передачи';
MasVoprosov4[1].VariantOtveta3:='Объединение множества когерентных оптических носителей';
MasVoprosov4[1].VariantOtveta4:='Возможность гибкого развертывания и удаленного конфигурирования спектральных каналов';
MasVoprosov4[1].Variant1TrueOrFalse:=true;
MasVoprosov4[1].Variant2TrueOrFalse:=true;
MasVoprosov4[1].Variant3TrueOrFalse:=false;
MasVoprosov4[1].Variant4TrueOrFalse:=false;
//заполняем 2 вопрос
MasVoprosov4[2].Vopros:='Flexgrid предлагает';
MasVoprosov4[2].VariantOtveta1:='Частичную совместимость с стандартными сетями ITU с частотой 100 ГГц';
MasVoprosov4[2].VariantOtveta2:='Частичную совместимость с стандартными сетями ITU с частотой 50 ГГц';
MasVoprosov4[2].VariantOtveta3:='Полную совместимость с стандартными сетями ITU с частотой 100 ГГц';
MasVoprosov4[2].VariantOtveta4:='Полную совместимость с стандартными сетями ITU с частотой 50 ГГц';
MasVoprosov4[2].Variant1TrueOrFalse:=false;
MasVoprosov4[2].Variant2TrueOrFalse:=false;
MasVoprosov4[2].Variant3TrueOrFalse:=true;
MasVoprosov4[2].Variant4TrueOrFalse:=true;
//заполняем 3 вопрос
MasVoprosov4[3].Vopros:='Преимущества Flexgrid';
MasVoprosov4[3].VariantOtveta1:='Планы каналов настраиваются "На лету"';
MasVoprosov4[3].VariantOtveta2:='Возможность реализации больших скоростей';
MasVoprosov4[3].VariantOtveta3:='Возможность корректировки пропускной способности канала';
MasVoprosov4[3].VariantOtveta4:='Совместимость со стандартными сетями ITU';
MasVoprosov4[3].Variant1TrueOrFalse:=true;
MasVoprosov4[3].Variant2TrueOrFalse:=true;
MasVoprosov4[3].Variant3TrueOrFalse:=true;
MasVoprosov4[3].Variant4TrueOrFalse:=true;
//заполняем 4 вопрос
MasVoprosov4[4].Vopros:='Flexgrid позволяет использовать динамическое управление центральной частотой канала с разрешением';
MasVoprosov4[4].VariantOtveta1:='6,25 ГГц';
MasVoprosov4[4].VariantOtveta2:='12,5 ГГц';
MasVoprosov4[4].VariantOtveta3:='25 ГГц';
MasVoprosov4[4].VariantOtveta4:='50 ГГц';
MasVoprosov4[4].Variant1TrueOrFalse:=true;
MasVoprosov4[4].Variant2TrueOrFalse:=false;
MasVoprosov4[4].Variant3TrueOrFalse:=false;
MasVoprosov4[4].Variant4TrueOrFalse:=false;
//заполняем 5 вопрос
MasVoprosov4[5].Vopros:='Flexgrid позволяет использовать динамическое управление центральной частотой канала с шириной канала в ';
MasVoprosov4[5].VariantOtveta1:='6,25 ГГц';
MasVoprosov4[5].VariantOtveta2:='12,5 ГГц';
MasVoprosov4[5].VariantOtveta3:='25 ГГц';
MasVoprosov4[5].VariantOtveta4:='50 ГГц';
MasVoprosov4[5].Variant1TrueOrFalse:=false;
MasVoprosov4[5].Variant2TrueOrFalse:=true;
MasVoprosov4[5].Variant3TrueOrFalse:=false;
MasVoprosov4[5].Variant4TrueOrFalse:=false;
MasVoprosov2[1].Vopros:='В чем суть суперканалов DWDM';
MasVoprosov2[1].VariantOtveta1:='Объединение множества когерентных оптических носителей';
MasVoprosov2[1].VariantOtveta2:='Увеличение ширины канала путем изменения длины волны';
MasVoprosov2[1].VariantOtveta3:='Использование нескольких длин волн';
MasVoprosov2[1].VariantOtveta4:='Объединение множества некогерентных оптических излучений в одном канале';
MasVoprosov2[1].Variant1TrueOrFalse:=true;
MasVoprosov2[1].Variant2TrueOrFalse:=false;
MasVoprosov2[1].Variant3TrueOrFalse:=false;
MasVoprosov2[1].Variant4TrueOrFalse:=false;
//заполняем 2 вопрос
MasVoprosov2[2].Vopros:='Какую скорость может предложить суперканал?';
MasVoprosov2[2].VariantOtveta1:='До 10 ГБит/с';
MasVoprosov2[2].VariantOtveta2:='До 100 ГБит/с';
MasVoprosov2[2].VariantOtveta3:='До 200 Гбит/с';
MasVoprosov2[2].VariantOtveta4:='Свыше 200 Гбит/с';
MasVoprosov2[2].Variant1TrueOrFalse:=false;
MasVoprosov2[2].Variant2TrueOrFalse:=false;
MasVoprosov2[2].Variant3TrueOrFalse:=false;
MasVoprosov2[2].Variant4TrueOrFalse:=true;
//заполняем 3 вопрос
MasVoprosov2[3].Vopros:='Преимущества суперканалов DWDM';
MasVoprosov2[3].VariantOtveta1:='Использование больших скоростей';
MasVoprosov2[3].VariantOtveta2:='Повышенная спектральная эффективность';
MasVoprosov2[3].VariantOtveta3:='Операционная масштабируемость';
MasVoprosov2[3].VariantOtveta4:='Повышение помехоустойчивости';
MasVoprosov2[3].Variant1TrueOrFalse:=true;
MasVoprosov2[3].Variant2TrueOrFalse:=true;
MasVoprosov2[3].Variant3TrueOrFalse:=true;
MasVoprosov2[3].Variant4TrueOrFalse:=false;
//заполняем 4 вопрос
MasVoprosov2[4].Vopros:='Что ограничивает скорость в суперканалах DWDM?';
MasVoprosov2[4].VariantOtveta1:='Аналого-цифровой преобразователь';
MasVoprosov2[4].VariantOtveta2:='Окно прозрачности';
MasVoprosov2[4].VariantOtveta3:='Ограниченные диапазоны длин волн';
MasVoprosov2[4].VariantOtveta4:='Скорость света';
MasVoprosov2[4].Variant1TrueOrFalse:=true;
MasVoprosov2[4].Variant2TrueOrFalse:=false;
MasVoprosov2[4].Variant3TrueOrFalse:=false;
MasVoprosov2[4].Variant4TrueOrFalse:=false;
//заполняем 5 вопрос
MasVoprosov2[5].Vopros:='Как формируется супер канал DWDM';
MasVoprosov2[5].VariantOtveta1:='Использование АЦП меньшей частоты';
MasVoprosov2[5].VariantOtveta2:='Использование разных окон прозрачности в одном световоде';
MasVoprosov2[5].VariantOtveta3:='Логическое объединение нескольких физических каналов';
MasVoprosov2[5].VariantOtveta4:='Использование АЦП большей частоты';
MasVoprosov2[5].Variant1TrueOrFalse:=false;
MasVoprosov2[5].Variant2TrueOrFalse:=false;
MasVoprosov2[5].Variant3TrueOrFalse:=true;
MasVoprosov2[5].Variant4TrueOrFalse:=false;
MasVoprosov3[1].Vopros:='Дать расшифровку аббревиатуры ROPA';
MasVoprosov3[1].VariantOtveta1:='Remote Optically Pumped Amplifier';
MasVoprosov3[1].VariantOtveta2:='Repeat Optically Pumped Amplifier';
MasVoprosov3[1].VariantOtveta3:='Restore Optically Pumped Amplifier';
MasVoprosov3[1].VariantOtveta4:='Remote Optically Pumped Amplitude';
MasVoprosov3[1].Variant1TrueOrFalse:=true;
MasVoprosov3[1].Variant2TrueOrFalse:=false;
MasVoprosov3[1].Variant3TrueOrFalse:=false;
MasVoprosov3[1].Variant4TrueOrFalse:=false;
//заполняем 2 вопрос
MasVoprosov3[2].Vopros:='Какой химический элемент лежит в основе ROPA усилителей?';
MasVoprosov3[2].VariantOtveta1:='Er';
MasVoprosov3[2].VariantOtveta2:='Cr';
MasVoprosov3[2].VariantOtveta3:='Si';
MasVoprosov3[2].VariantOtveta4:='SiO2';
MasVoprosov3[2].Variant1TrueOrFalse:=true;
MasVoprosov3[2].Variant2TrueOrFalse:=false;
MasVoprosov3[2].Variant3TrueOrFalse:=false;
MasVoprosov3[2].Variant4TrueOrFalse:=false;
//заполняем 3 вопрос
MasVoprosov3[3].Vopros:='На какой длине волны используется ROPA усилители';
MasVoprosov3[3].VariantOtveta1:='1480 нм';
MasVoprosov3[3].VariantOtveta2:='850 нм';
MasVoprosov3[3].VariantOtveta3:='1310 нм';
MasVoprosov3[3].VariantOtveta4:='1650 ни';
MasVoprosov3[3].Variant1TrueOrFalse:=true;
MasVoprosov3[3].Variant2TrueOrFalse:=false;
MasVoprosov3[3].Variant3TrueOrFalse:=false;
MasVoprosov3[3].Variant4TrueOrFalse:=false;
//заполняем 4 вопрос
MasVoprosov3[4].Vopros:='Конфигурация усилителей ROPA бывают';
MasVoprosov3[4].VariantOtveta1:='Встречной накачки';
MasVoprosov3[4].VariantOtveta2:='Попутной накачки';
MasVoprosov3[4].VariantOtveta3:='Накачки по дополнительному волокну';
MasVoprosov3[4].VariantOtveta4:='Постоянной накачки';
MasVoprosov3[4].Variant1TrueOrFalse:=true;
MasVoprosov3[4].Variant2TrueOrFalse:=true;
MasVoprosov3[4].Variant3TrueOrFalse:=false;
MasVoprosov3[4].Variant4TrueOrFalse:=false;
//заполняем 5 вопрос
MasVoprosov3[5].Vopros:='От чего зависит режим работы и выигрыш в перекрываемом расстоянии при использовании ROPA усилителей?';
MasVoprosov3[5].VariantOtveta1:='Требуемой пропускной способности';
MasVoprosov3[5].VariantOtveta2:='Требуемой скорости';
MasVoprosov3[5].VariantOtveta3:='От длины волны';
MasVoprosov3[5].VariantOtveta4:='От окна прозрачности';
MasVoprosov3[5].Variant1TrueOrFalse:=true;
MasVoprosov3[5].Variant2TrueOrFalse:=true;
MasVoprosov3[5].Variant3TrueOrFalse:=false;
MasVoprosov3[5].Variant4TrueOrFalse:=false;
//сначала наш массив с элементами типа запись с именем vopros мы заполняем 10  вопросами

//копируем в массив все предыдущие вопросы и ответы
MasVoprosov[1].Vopros:=MasVoprosov1[1].Vopros;
MasVoprosov[1].VariantOtveta1:=MasVoprosov1[1].VariantOtveta1;
MasVoprosov[1].VariantOtveta2:=MasVoprosov1[1].VariantOtveta2;
MasVoprosov[1].VariantOtveta3:=MasVoprosov1[1].VariantOtveta3;
MasVoprosov[1].VariantOtveta4:=MasVoprosov1[1].VariantOtveta4;
MasVoprosov[1].Variant1TrueOrFalse:=MasVoprosov1[1].Variant1TrueOrFalse;
MasVoprosov[1].Variant2TrueOrFalse:=MasVoprosov1[1].Variant2TrueOrFalse;
MasVoprosov[1].Variant3TrueOrFalse:=MasVoprosov1[1].Variant3TrueOrFalse;
MasVoprosov[1].Variant4TrueOrFalse:=MasVoprosov1[1].Variant4TrueOrFalse;
//заполняем 2 вопрос
MasVoprosov[2].Vopros:=MasVoprosov1[2].Vopros;
MasVoprosov[2].VariantOtveta1:=MasVoprosov1[2].VariantOtveta1;
MasVoprosov[2].VariantOtveta2:=MasVoprosov1[2].VariantOtveta2;
MasVoprosov[2].VariantOtveta3:=MasVoprosov1[2].VariantOtveta3;
MasVoprosov[2].VariantOtveta4:=MasVoprosov1[2].VariantOtveta4;
MasVoprosov[2].Variant1TrueOrFalse:=MasVoprosov1[2].Variant1TrueOrFalse;
MasVoprosov[2].Variant2TrueOrFalse:=MasVoprosov1[2].Variant2TrueOrFalse;
MasVoprosov[2].Variant3TrueOrFalse:=MasVoprosov1[2].Variant3TrueOrFalse;
MasVoprosov[2].Variant4TrueOrFalse:=MasVoprosov1[2].Variant4TrueOrFalse;
//заполняем 3 вопрос
MasVoprosov[3].Vopros:=MasVoprosov1[3].Vopros;
MasVoprosov[3].VariantOtveta1:=MasVoprosov1[3].VariantOtveta1;
MasVoprosov[3].VariantOtveta2:=MasVoprosov1[3].VariantOtveta2;
MasVoprosov[3].VariantOtveta3:=MasVoprosov1[3].VariantOtveta3;
MasVoprosov[3].VariantOtveta4:=MasVoprosov1[3].VariantOtveta4;
MasVoprosov[3].Variant1TrueOrFalse:=MasVoprosov1[3].Variant1TrueOrFalse;
MasVoprosov[3].Variant2TrueOrFalse:=MasVoprosov1[3].Variant2TrueOrFalse;
MasVoprosov[3].Variant3TrueOrFalse:=MasVoprosov1[3].Variant3TrueOrFalse;
MasVoprosov[3].Variant4TrueOrFalse:=MasVoprosov1[3].Variant4TrueOrFalse;
//заполняем 4 вопрос
MasVoprosov[4].Vopros:=MasVoprosov1[4].Vopros;
MasVoprosov[4].VariantOtveta1:=MasVoprosov1[4].VariantOtveta1;
MasVoprosov[4].VariantOtveta2:=MasVoprosov1[4].VariantOtveta2;
MasVoprosov[4].VariantOtveta3:=MasVoprosov1[4].VariantOtveta3;
MasVoprosov[4].VariantOtveta4:=MasVoprosov1[4].VariantOtveta4;
MasVoprosov[4].Variant1TrueOrFalse:=MasVoprosov1[4].Variant1TrueOrFalse;
MasVoprosov[4].Variant2TrueOrFalse:=MasVoprosov1[4].Variant2TrueOrFalse;
MasVoprosov[4].Variant3TrueOrFalse:=MasVoprosov1[4].Variant3TrueOrFalse;
MasVoprosov[4].Variant4TrueOrFalse:=MasVoprosov1[4].Variant4TrueOrFalse;
//заполняем 5 вопрос
MasVoprosov[5].Vopros:=MasVoprosov1[5].Vopros;
MasVoprosov[5].VariantOtveta1:=MasVoprosov1[5].VariantOtveta1;
MasVoprosov[5].VariantOtveta2:=MasVoprosov1[5].VariantOtveta2;
MasVoprosov[5].VariantOtveta3:=MasVoprosov1[5].VariantOtveta3;
MasVoprosov[5].VariantOtveta4:=MasVoprosov1[5].VariantOtveta4;
MasVoprosov[5].Variant1TrueOrFalse:=MasVoprosov1[5].Variant1TrueOrFalse;
MasVoprosov[5].Variant2TrueOrFalse:=MasVoprosov1[5].Variant2TrueOrFalse;
MasVoprosov[5].Variant3TrueOrFalse:=MasVoprosov1[5].Variant3TrueOrFalse;
MasVoprosov[5].Variant4TrueOrFalse:=MasVoprosov1[5].Variant4TrueOrFalse;
//вопросы из 2 задания
//заполняем 1 вопрос
MasVoprosov[6].Vopros:=MasVoprosov2[1].Vopros;
MasVoprosov[6].VariantOtveta1:=MasVoprosov2[1].VariantOtveta1;
MasVoprosov[6].VariantOtveta2:=MasVoprosov2[1].VariantOtveta2;
MasVoprosov[6].VariantOtveta3:=MasVoprosov2[1].VariantOtveta3;
MasVoprosov[6].VariantOtveta4:=MasVoprosov2[1].VariantOtveta4;
MasVoprosov[6].Variant1TrueOrFalse:=MasVoprosov2[1].Variant1TrueOrFalse;
MasVoprosov[6].Variant2TrueOrFalse:=MasVoprosov2[1].Variant2TrueOrFalse;
MasVoprosov[6].Variant3TrueOrFalse:=MasVoprosov2[1].Variant3TrueOrFalse;
MasVoprosov[6].Variant4TrueOrFalse:=MasVoprosov2[1].Variant4TrueOrFalse;
//заполняем 2 вопрос
MasVoprosov[7].Vopros:=MasVoprosov2[2].Vopros;
MasVoprosov[7].VariantOtveta1:=MasVoprosov2[2].VariantOtveta1;
MasVoprosov[7].VariantOtveta2:=MasVoprosov2[2].VariantOtveta2;
MasVoprosov[7].VariantOtveta3:=MasVoprosov2[2].VariantOtveta3;
MasVoprosov[7].VariantOtveta4:=MasVoprosov2[2].VariantOtveta4;
MasVoprosov[7].Variant1TrueOrFalse:=MasVoprosov2[2].Variant1TrueOrFalse;
MasVoprosov[7].Variant2TrueOrFalse:=MasVoprosov2[2].Variant2TrueOrFalse;
MasVoprosov[7].Variant3TrueOrFalse:=MasVoprosov2[2].Variant3TrueOrFalse;
MasVoprosov[7].Variant4TrueOrFalse:=MasVoprosov2[2].Variant4TrueOrFalse;
//заполняем 3 вопрос
MasVoprosov[8].Vopros:=MasVoprosov2[3].Vopros;
MasVoprosov[8].VariantOtveta1:=MasVoprosov2[3].VariantOtveta1;
MasVoprosov[8].VariantOtveta2:=MasVoprosov2[3].VariantOtveta2;
MasVoprosov[8].VariantOtveta3:=MasVoprosov2[3].VariantOtveta3;
MasVoprosov[8].VariantOtveta4:=MasVoprosov2[3].VariantOtveta4;
MasVoprosov[8].Variant1TrueOrFalse:=MasVoprosov2[3].Variant1TrueOrFalse;
MasVoprosov[8].Variant2TrueOrFalse:=MasVoprosov2[3].Variant2TrueOrFalse;
MasVoprosov[8].Variant3TrueOrFalse:=MasVoprosov2[3].Variant3TrueOrFalse;
MasVoprosov[8].Variant4TrueOrFalse:=MasVoprosov2[3].Variant4TrueOrFalse;
//заполняем 4 вопрос
MasVoprosov[9].Vopros:=MasVoprosov2[4].Vopros;
MasVoprosov[9].VariantOtveta1:=MasVoprosov2[4].VariantOtveta1;
MasVoprosov[9].VariantOtveta2:=MasVoprosov2[4].VariantOtveta2;
MasVoprosov[9].VariantOtveta3:=MasVoprosov2[4].VariantOtveta3;
MasVoprosov[9].VariantOtveta4:=MasVoprosov2[4].VariantOtveta4;
MasVoprosov[9].Variant1TrueOrFalse:=MasVoprosov2[4].Variant1TrueOrFalse;
MasVoprosov[9].Variant2TrueOrFalse:=MasVoprosov2[4].Variant2TrueOrFalse;
MasVoprosov[9].Variant3TrueOrFalse:=MasVoprosov2[4].Variant3TrueOrFalse;
MasVoprosov[9].Variant4TrueOrFalse:=MasVoprosov2[4].Variant4TrueOrFalse;
//заполняем 5 вопрос
MasVoprosov[10].Vopros:=MasVoprosov2[5].Vopros;
MasVoprosov[10].VariantOtveta1:=MasVoprosov2[5].VariantOtveta1;
MasVoprosov[10].VariantOtveta2:=MasVoprosov2[5].VariantOtveta2;
MasVoprosov[10].VariantOtveta3:=MasVoprosov2[5].VariantOtveta3;
MasVoprosov[10].VariantOtveta4:=MasVoprosov2[5].VariantOtveta4;
MasVoprosov[10].Variant1TrueOrFalse:=MasVoprosov2[5].Variant1TrueOrFalse;
MasVoprosov[10].Variant2TrueOrFalse:=MasVoprosov2[5].Variant2TrueOrFalse;
MasVoprosov[10].Variant3TrueOrFalse:=MasVoprosov2[5].Variant3TrueOrFalse;
MasVoprosov[10].Variant4TrueOrFalse:=MasVoprosov2[5].Variant4TrueOrFalse;
//вопросы из 3 задания
//заполняем 1 вопрос
MasVoprosov[11].Vopros:=MasVoprosov3[1].Vopros;
MasVoprosov[11].VariantOtveta1:=MasVoprosov3[1].VariantOtveta1;
MasVoprosov[11].VariantOtveta2:=MasVoprosov3[1].VariantOtveta2;
MasVoprosov[11].VariantOtveta3:=MasVoprosov3[1].VariantOtveta3;
MasVoprosov[11].VariantOtveta4:=MasVoprosov3[1].VariantOtveta4;
MasVoprosov[11].Variant1TrueOrFalse:=MasVoprosov3[1].Variant1TrueOrFalse;
MasVoprosov[11].Variant2TrueOrFalse:=MasVoprosov3[1].Variant2TrueOrFalse;
MasVoprosov[11].Variant3TrueOrFalse:=MasVoprosov3[1].Variant3TrueOrFalse;
MasVoprosov[11].Variant4TrueOrFalse:=MasVoprosov3[1].Variant4TrueOrFalse;
//заполняем 2 вопрос
MasVoprosov[12].Vopros:=MasVoprosov3[2].Vopros;
MasVoprosov[12].VariantOtveta1:=MasVoprosov3[2].VariantOtveta1;
MasVoprosov[12].VariantOtveta2:=MasVoprosov3[2].VariantOtveta2;
MasVoprosov[12].VariantOtveta3:=MasVoprosov3[2].VariantOtveta3;
MasVoprosov[12].VariantOtveta4:=MasVoprosov3[2].VariantOtveta4;
MasVoprosov[12].Variant1TrueOrFalse:=MasVoprosov3[2].Variant1TrueOrFalse;
MasVoprosov[12].Variant2TrueOrFalse:=MasVoprosov3[2].Variant2TrueOrFalse;
MasVoprosov[12].Variant3TrueOrFalse:=MasVoprosov3[2].Variant3TrueOrFalse;
MasVoprosov[12].Variant4TrueOrFalse:=MasVoprosov3[2].Variant4TrueOrFalse;
//заполняем 3 вопрос
MasVoprosov[13].Vopros:=MasVoprosov3[3].Vopros;
MasVoprosov[13].VariantOtveta1:=MasVoprosov3[3].VariantOtveta1;
MasVoprosov[13].VariantOtveta2:=MasVoprosov3[3].VariantOtveta2;
MasVoprosov[13].VariantOtveta3:=MasVoprosov3[3].VariantOtveta3;
MasVoprosov[13].VariantOtveta4:=MasVoprosov3[3].VariantOtveta4;
MasVoprosov[13].Variant1TrueOrFalse:=MasVoprosov3[3].Variant1TrueOrFalse;
MasVoprosov[13].Variant2TrueOrFalse:=MasVoprosov3[3].Variant2TrueOrFalse;
MasVoprosov[13].Variant3TrueOrFalse:=MasVoprosov3[3].Variant3TrueOrFalse;
MasVoprosov[13].Variant4TrueOrFalse:=MasVoprosov3[3].Variant4TrueOrFalse;
//заполняем 4 вопрос
MasVoprosov[14].Vopros:=MasVoprosov3[4].Vopros;
MasVoprosov[14].VariantOtveta1:=MasVoprosov3[4].VariantOtveta1;
MasVoprosov[14].VariantOtveta2:=MasVoprosov3[4].VariantOtveta2;
MasVoprosov[14].VariantOtveta3:=MasVoprosov3[4].VariantOtveta3;
MasVoprosov[14].VariantOtveta4:=MasVoprosov3[4].VariantOtveta4;
MasVoprosov[14].Variant1TrueOrFalse:=MasVoprosov3[4].Variant1TrueOrFalse;
MasVoprosov[14].Variant2TrueOrFalse:=MasVoprosov3[4].Variant2TrueOrFalse;
MasVoprosov[14].Variant3TrueOrFalse:=MasVoprosov3[4].Variant3TrueOrFalse;
MasVoprosov[14].Variant4TrueOrFalse:=MasVoprosov3[4].Variant4TrueOrFalse;
//заполняем 5 вопрос
MasVoprosov[15].Vopros:=MasVoprosov3[5].Vopros;
MasVoprosov[15].VariantOtveta1:=MasVoprosov3[5].VariantOtveta1;
MasVoprosov[15].VariantOtveta2:=MasVoprosov3[5].VariantOtveta2;
MasVoprosov[15].VariantOtveta3:=MasVoprosov3[5].VariantOtveta3;
MasVoprosov[15].VariantOtveta4:=MasVoprosov3[5].VariantOtveta4;
MasVoprosov[15].Variant1TrueOrFalse:=MasVoprosov3[5].Variant1TrueOrFalse;
MasVoprosov[15].Variant2TrueOrFalse:=MasVoprosov3[5].Variant2TrueOrFalse;
MasVoprosov[15].Variant3TrueOrFalse:=MasVoprosov3[5].Variant3TrueOrFalse;
MasVoprosov[15].Variant4TrueOrFalse:=MasVoprosov3[5].Variant4TrueOrFalse;
//вопросы из 4 задания
//заполняем 1 вопрос
MasVoprosov[16].Vopros:=MasVoprosov4[1].Vopros;
MasVoprosov[16].VariantOtveta1:=MasVoprosov4[1].VariantOtveta1;
MasVoprosov[16].VariantOtveta2:=MasVoprosov4[1].VariantOtveta2;
MasVoprosov[16].VariantOtveta3:=MasVoprosov4[1].VariantOtveta3;
MasVoprosov[16].VariantOtveta4:=MasVoprosov4[1].VariantOtveta4;
MasVoprosov[16].Variant1TrueOrFalse:=MasVoprosov4[1].Variant1TrueOrFalse;
MasVoprosov[16].Variant2TrueOrFalse:=MasVoprosov4[1].Variant2TrueOrFalse;
MasVoprosov[16].Variant3TrueOrFalse:=MasVoprosov4[1].Variant3TrueOrFalse;
MasVoprosov[16].Variant4TrueOrFalse:=MasVoprosov4[1].Variant4TrueOrFalse;
//заполняем 2 вопрос
MasVoprosov[17].Vopros:=MasVoprosov4[2].Vopros;
MasVoprosov[17].VariantOtveta1:=MasVoprosov4[2].VariantOtveta1;
MasVoprosov[17].VariantOtveta2:=MasVoprosov4[2].VariantOtveta2;
MasVoprosov[17].VariantOtveta3:=MasVoprosov4[2].VariantOtveta3;
MasVoprosov[17].VariantOtveta4:=MasVoprosov4[2].VariantOtveta4;
MasVoprosov[17].Variant1TrueOrFalse:=MasVoprosov4[2].Variant1TrueOrFalse;
MasVoprosov[17].Variant2TrueOrFalse:=MasVoprosov4[2].Variant2TrueOrFalse;
MasVoprosov[17].Variant3TrueOrFalse:=MasVoprosov4[2].Variant3TrueOrFalse;
MasVoprosov[17].Variant4TrueOrFalse:=MasVoprosov4[2].Variant4TrueOrFalse;
//заполняем 3 вопрос
MasVoprosov[18].Vopros:=MasVoprosov4[3].Vopros;
MasVoprosov[18].VariantOtveta1:=MasVoprosov4[3].VariantOtveta1;
MasVoprosov[18].VariantOtveta2:=MasVoprosov4[3].VariantOtveta2;
MasVoprosov[18].VariantOtveta3:=MasVoprosov4[3].VariantOtveta3;
MasVoprosov[18].VariantOtveta4:=MasVoprosov4[3].VariantOtveta4;
MasVoprosov[18].Variant1TrueOrFalse:=MasVoprosov4[3].Variant1TrueOrFalse;
MasVoprosov[18].Variant2TrueOrFalse:=MasVoprosov4[3].Variant2TrueOrFalse;
MasVoprosov[18].Variant3TrueOrFalse:=MasVoprosov4[3].Variant3TrueOrFalse;
MasVoprosov[18].Variant4TrueOrFalse:=MasVoprosov4[3].Variant4TrueOrFalse;
//заполняем 4 вопрос
MasVoprosov[19].Vopros:=MasVoprosov4[4].Vopros;
MasVoprosov[19].VariantOtveta1:=MasVoprosov4[4].VariantOtveta1;
MasVoprosov[19].VariantOtveta2:=MasVoprosov4[4].VariantOtveta2;
MasVoprosov[19].VariantOtveta3:=MasVoprosov4[4].VariantOtveta3;
MasVoprosov[19].VariantOtveta4:=MasVoprosov4[4].VariantOtveta4;
MasVoprosov[19].Variant1TrueOrFalse:=MasVoprosov4[4].Variant1TrueOrFalse;
MasVoprosov[19].Variant2TrueOrFalse:=MasVoprosov4[4].Variant2TrueOrFalse;
MasVoprosov[19].Variant3TrueOrFalse:=MasVoprosov4[4].Variant3TrueOrFalse;
MasVoprosov[19].Variant4TrueOrFalse:=MasVoprosov4[4].Variant4TrueOrFalse;
//заполняем 5 вопрос
MasVoprosov[20].Vopros:=MasVoprosov4[5].Vopros;
MasVoprosov[20].VariantOtveta1:=MasVoprosov4[5].VariantOtveta1;
MasVoprosov[20].VariantOtveta2:=MasVoprosov4[5].VariantOtveta2;
MasVoprosov[20].VariantOtveta3:=MasVoprosov4[5].VariantOtveta3;
MasVoprosov[20].VariantOtveta4:=MasVoprosov4[5].VariantOtveta4;
MasVoprosov[20].Variant1TrueOrFalse:=MasVoprosov4[5].Variant1TrueOrFalse;
MasVoprosov[20].Variant2TrueOrFalse:=MasVoprosov4[5].Variant2TrueOrFalse;
MasVoprosov[20].Variant3TrueOrFalse:=MasVoprosov4[5].Variant3TrueOrFalse;
MasVoprosov[20].Variant4TrueOrFalse:=MasVoprosov4[5].Variant4TrueOrFalse;


// после того как все вопросы заполнены прячем кнопку 'начать тестирование'
Button1.visible:=false;
Button2.visible:=true;

// выводим первый вопрос и варианты ответов к нему в memo1,memo2,memo3,memo4,memo5
Number:=1;//
memo1.Text:=MasVoprosov[Number].Vopros;
memo2.Text:=MasVoprosov[Number].VariantOtveta1;
memo3.Text:=MasVoprosov[Number].VariantOtveta2;
memo4.Text:=MasVoprosov[Number].VariantOtveta3;
memo5.Text:=MasVoprosov[Number].VariantOtveta4;



end;


procedure TForm1.Button2Click(Sender: TObject);
var i:integer;//переменная цикла for
Error:integer;// переменная количества ошибок
ocenka,Stroka:string;// оценка/ строка для вывода
ColVop:integer;//количество  вопросов на которые были даны неправильные ответы
begin
if (Number<>20)then
begin
// сначала запоминаем в массиве MasDataOtvetov ответы данные пользователем
//если пользователь поставил галочку на первом
//варианте ответов запишем true в соответствующюю запись иначе запишем false
//
if(CheckBox1.Checked=true)then MasDataOtvetov[Number].Variant1TrueOrFalse:=true else
MasDataOtvetov[Number].Variant1TrueOrFalse:=false;
//если пользователь поставил галочку на 2
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox2.Checked=true)then MasDataOtvetov[Number].Variant2TrueOrFalse:=true else
MasDataOtvetov[Number].Variant2TrueOrFalse:=false;
//если пользователь поставил галочку на 3
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox3.Checked=true)then MasDataOtvetov[Number].Variant3TrueOrFalse:=true else
MasDataOtvetov[Number].Variant3TrueOrFalse:=false;
//если пользователь поставил галочку на 4
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox4.Checked=true)then MasDataOtvetov[Number].Variant4TrueOrFalse:=true else
MasDataOtvetov[Number].Variant4TrueOrFalse:=false;
//закончили запись данных ответов в массив
// увеличиваем номер вопроса на единицу если это не десятый вопрос
 Number:=Number+1;
// очищаем CheckBox1,CheckBox2,CheckBox3,CheckBox4
CheckBox1.Checked:=false;
CheckBox2.Checked:=false;
CheckBox3.Checked:=false;
CheckBox4.Checked:=false;
//выводим следующий вопрос и варианты ответа к нему
memo1.Text:=MasVoprosov[Number].Vopros;
memo2.Text:=MasVoprosov[Number].VariantOtveta1;
memo3.Text:=MasVoprosov[Number].VariantOtveta2;
memo4.Text:=MasVoprosov[Number].VariantOtveta3;
memo5.Text:=MasVoprosov[Number].VariantOtveta4;
end
else
begin
// записываем ответы данные пользователем на последний вопрос
if(CheckBox1.Checked=true)then MasDataOtvetov[Number].Variant1TrueOrFalse:=true else
MasDataOtvetov[Number].Variant1TrueOrFalse:=false;
//если пользователь поставил галочку на 2
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox2.Checked=true)then MasDataOtvetov[Number].Variant2TrueOrFalse:=true else
MasDataOtvetov[Number].Variant2TrueOrFalse:=false;
//если пользователь поставил галочку на 3
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox3.Checked=true)then MasDataOtvetov[Number].Variant3TrueOrFalse:=true else
MasDataOtvetov[Number].Variant3TrueOrFalse:=false;
//если пользователь поставил галочку на 4
//варианте ответов запишем true в соответствующюю запись иначе запишем false
if(CheckBox4.Checked=true)then MasDataOtvetov[Number].Variant4TrueOrFalse:=true else
MasDataOtvetov[Number].Variant4TrueOrFalse:=false;
//закончили запись данных ответов в массив
Button2.Visible:=false;// прячем кнопку 'следующий вопрос'
// обнуляем переменную ошибок
Error:=0;
//подсчитываем количество не правильных ответов
for i:= 1 to 20 do
 begin
   //при сравнении записей двух массивов если записи разные то переменной ошибок Error
   //добавляем единицу
  if (MasVoprosov[i].Variant1TrueOrFalse<>MasDataOtvetov[i].Variant1TrueOrFalse)or
  (MasVoprosov[i].Variant2TrueOrFalse<>MasDataOtvetov[i].Variant2TrueOrFalse)or
  (MasVoprosov[i].Variant3TrueOrFalse<>MasDataOtvetov[i].Variant3TrueOrFalse)or
  (MasVoprosov[i].Variant4TrueOrFalse<>MasDataOtvetov[i].Variant4TrueOrFalse)then
    begin
    Error:=Error+1;
    end;
 end;
//подсчитываем оценку
if (Error=0) then ocenka:='5';
if (Error=1) then ocenka:='5';
if (Error=2) then ocenka:='4';
if (Error=3) then ocenka:='4';
if (Error=4) then ocenka:='4';
if (Error=5) then ocenka:='4';
if (Error=6) then ocenka:='3';
if (Error=7) then ocenka:='3';
if (Error=8) then ocenka:='3';
if (Error=9) then ocenka:='3';
if (Error=10) then ocenka:='3';
if (Error=11) then ocenka:='2';
if (Error>12) then ocenka:='2';
//формируем строку для вывода в сообщение
Stroka:='вы ответили правильно на :'+''+IntToStr(20-Error)+' вопросов,ваша оценка:'+ocenka;
if strtoint(ocenka)=2 then
begin
  unit2.p1:=false;
    unit2.p2:=false;
      unit2.p3:=false;
        unit2.p4:=false;
  unit2.form2.done1.visible:=not   unit2.form2.done1.visible;
    unit2.form2.done2.visible:=not   unit2.form2.done2.visible;
      unit2.form2.done3.visible:=not   unit2.form2.done3.visible;
        unit2.form2.done4.visible:=not   unit2.form2.done4.visible;
unit2.form2.praktika2.visible:=false;
unit2.form2.praktika3.visible:=false;
unit2.form2.praktika4.visible:=false;
end;
 //выводим оценку в сообщении
 ShowMessage(Stroka);
 // после закрываем наше приложение закрывая главную форму
  unit2.Form2.ocenka.caption:=('Ваша оценка-' + ocenka);
 unit2.Form2.ocenka.visible:= not   unit2.Form2.ocenka.visible;
 Form1.Close;
Form1.Memo1.Lines.Clear;
form1.Memo2.Lines.Clear;
Form1.Memo3.Lines.Clear;
Form1.Memo4.Lines.Clear;
Form1.Memo5.Lines.Clear;
form1.CheckBox1.Checked:=false;
form1.CheckBox2.Checked:=false;
form1.CheckBox3.Checked:=false;
form1.CheckBox4.Checked:=false;
 Button1.visible:=true;
 Button2.visible:=false;
end;
end;

end.



























