Введение
Тесты давно зарекомендовали себя как средство оперативной оценки знаний не только в школе, но и во взрослой жизни. Тесты очень простой и быстрый способ проверить знания человека.
Тестовые задания отлично поддаются алгоритмизации. Поэтому получили большое распространение именно компьютерные варианты тестов. Они позволяют, например, генерировать случайную последовательность вопросов, менять последовательность вариантов ответов, оперативно обрабатывать результаты работы тестируемого. Но в условиях школы, это требует доступа преподавателей различных предметов в кабинеты информатики и ИКТ. В школе активно используются бумажные варианты тестов. Но недостатком этих тестов является ограниченное количество вариантов заданий.
Поэтому было предложено разработать технологию, которая бы позволила реализовать в бумажном варианте работы плюсы компьютерного тестирования.
Перед созданием программы были поставлены следующие цели и задачи.
Цели: Создать программу для генерации тестов в бумажном варианте.
Задачи:
Познакомится с существующими технологиями оценки знаний и месте тестов в учебном процессе. Изучить среду программирования Pascal Abc и Lazarus, алгоритмы сортировки, обработки массивов. Работу с файлами. Разработать программу для создания нескольких вариантов тестов из одного исходного сначала в PascalABC, а затем в Lazarus. Подготовить пакет тестов по одному из школьных предметов.Аннотация
В современном образовании активно используются тесты. Тесты позволяют быстро и оперативно проверить знание учащегося.
Большинство тестов, продающихся в магазине или составленные учителями имеют ограниченное количество вариантов. Для оперативной проверки знаний требуются индивидуальнее варианты тестов для каждого ученика. Поэтому была поставлена задача создать программу для генерации тестов и подготовить комплект тестов по одному из предметов.
Программа, создававшаяся в среде разработки Lazarus, позволила создать пакет тестов для проверки знаний учащегося.
1. Литературный обзор
1.1. Языки и среды программирования
В современном мире существует множество различных языков программирования, но для создания программы для генерации тестов был выбран язык Pascal. Он очень прост и удобен в использовании и проходится в старших классах.
Язык Паскаль был разработан в 1970 г. Николаусом Виртом как язык, обеспечивающий строгую типизацию и интуитивно понятный синтаксис. Он был назван в честь французского математика, физика и философа Блеза Паскаля.
Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в промышленном программировании
Наиболее известной свободной реализаций языка Паскаль является Free Pascal. Помимо открытости исходного кода, его основным преимуществом является мультиплатформенность, а также поддержка различных диалектов Паскаля. На основе FreePascal создана свободная мультиплатформенная среда Lazarus,
Для создания программы были использованы среды программирования Pascal Abc и Lazarus.
В Pascal Abc была продумана технология создания тоестов.
Lazarus свободная среда программирования позволяющая создавать оконные приложения с графическим интерфейсом. Основным языком программирования является Object pascal, последующий язык после pascal abc.
1.2. Алгоритмы работы с массивами.
Для создания программы потребовалось изучить работу с массивами их заполнение и создание, работу с текстовыми файлами.
Для начала рассмотрим принцип создания массива и его заполнения.
Program z1;
….
a: array[1..100] of integer; {создаем массив с 100-а значениями }
Begin
ClrScr;
randomize;
for i:= 1 to 10 do {от 1 до 10 мы делаем}
begin
a[i]:=random(9)+1; {создаем число от 0 до 9 и прибавляем 1, чтобы получились числа от 1 до 10}
write (' ', a[i]); {выводим на экран массив чисел}
end;
end.
Для того чтобы в будущей программе вопросы были в разном порядке, нужно было разработать алгоритм для создания неповторяющихся чисел. Генерация различных чисел происходит при помощи оператора random, но в этом массиве числа могут повторяться. Во избежание этого, был введен цикл для проверки каждого последующего сгенерированного числа с использованием метки, возвращающей программу в определенное действие. Пример приведен снизу.
Program z1;
………
Begin
randomize;
for i:= 1 to 10 do {заполняем массив}
begin
textcolor (4);
1:a[i]:=random(10)+1; {создаем число}
b:=i-1 {присваиваем b предыдущий элемент}
for j := b downto 1 do
if a[i] = a[j] then goto 1; {проверяем число на совпадение, если число совпало, то генерируем число еще раз}
write (' ', a[i]); {выводим на экран массив чисел}
delay(100);
end;
end.
1.3. Алгоритмы работы с файлами.
Далее потребовалось изучить организацию работы с файлами в pascal ABC.
Основными операторами для работы с файлами являются Assign, close, write.
Работа связанна с определенной последовательностью использования команд, показана на фрагменте, приведенном ниже.
f1: text; {объявляем, что f1 файловая переменная текстового типа}
…
begin;
assign (f1,'file1.txt'); {связываем файловую переменную с именем файла }
rewrite(f1); {переписываем файл}
writeln (f1, ' .....'); {записываем в файле}
close (f1); {закрываем файл}
reset (f1); {сохраняем файл}
while not eof (f1) do {пока не конец файла f1 мы делаем…..}
begin
readln (f1;st); {считываем первую строку из файла f1}
writeln(st); {записываем
end;
close (f1); {закрываем файл}
end.

Таким образом был создан прототип программы для генерации тестов в бумажных вариантах. Но такая программа имеет консольный вид и не имеет графического интерфейса, для решения этой проблемы было решено воспользоваться средой разработки Lazarus, позволяющей программировать на языке object pascal.
2. Разработка программы
2.1. Структура программы, описание программы.
Создавая программу в среде программирования Lazarus готовый проект можно скомпилировать для запуска на любой операционной системе. 
В среде разработки предусмотрен графический интерфейс, позволяющий создавать готовые формы для программы с последующим их программированием. Так была создана форма с тремя кнопками и тремя текстовыми полями. Так как язык разработки фактически одинаков, для программирования были использованы те же алгоритмы, разработанные на pascal abc.
Каждому графическому элементу присваивается своя определенная команда.
Первая кнопка отвечает за справку, показывающую как использовать программу и создавать для нее тесты. Вторая кнопка отвечает за подсчет количества вопросов в выбранном файле. Третья кнопка запускает сам цикл генерации тестов. Программа считывает нужные данные с текстовых полей и заносит себе в значения.


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


Вывод
Целью данной работы является создание программы для генерации тестов в бумажном варианте.
В процессе выполнения проектной работы мною были изучены технологии оценки знаний в школьном обучении, были обнаружены плюсы и минусы в бумажных и компьютерных тестированиях. Эти знания помогли определиться с задачами моей будущей программы.
Также были изучены среды разработки Lazarus и PascalAbc, позволившие исследовать подробно алгоритмы сортировки, обработки массивов и создать полностью рабочую программу для генерации тестов в бумажном варианте.
В перспективах развития проекта, создание программы для генерации тестов в среде Virtual Basic of Application, позволяющей работать с документами Microsoft Word.
Итогом всей моей работы является функционирующая программа для генерации тестов и составленный пакет тестов по одному из выбранному предмету.
Список литературы
Книги:
Курс практического программирования в Delphi
Языки программирования , , _2008.
Практикум по информатике Могилев Пак Хеннер_2005 2-е.
Интернет ресурсы:
Среда разработки Pascal abc http:/// . Ссылка действительна на 22.12.2015.
Среда разработки Lazarus http://www. lazarus-ide. org/. Ссылка действительна на 22.12.2015.
Оглавление
Введение 1
Аннотация 2
1. Литературный обзор 3
1.1 Языки и среды программирования 3
1.2 Алгоритмы работы с массивами. 4
1.3 Алгоритмы работы с файлами. 6
2. Разработка программы 8
2.1 Структура программы, описание программы. 8
Вывод 10
Список литературы 11


