Смекни!
smekni.com

Среда программирования программы Borland Pascal 70 (стр. 1 из 4)

Введение

Данная программа, написанная в среде программирования BorlandPascal 7.0, является электронным тестирующим пособием в области химии для 8-11 классов. В данное время существует достаточное количество программ, охватывающих различные области наук, в частности химии, использующиеся учеными. В связи с тем, что химические закономерности весьма разнообразны, одной программой их невозможно описать. Так как сейчас в школах осуществляется более основательное внедрение компьютерных технологий в систему обучения, но тем не менее, узко распространены автоматизированные проверки знаний учащихся, мною решено представить программу, позволяющую тестировать знания в системе обучения среднего образования. Создание подобных программ предусматривает значительное облегчение работы преподавателей и позволяет учащимся расширить знания в области информационных технологий.

Разработка программы

Модель и метод решения задачи

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

Описание структуры данных

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

Алгоритм решения задачи

a – переменная, вводимая с клавиатуры

bпеременная из дополнительной строки из файла, сравниваемая с переменной а

c – строковаяпеременная, считываемая из массива

nколичество истинности сравнения переменныхaиb

kномер считанного массива

mколичество массивов из файла

Руководство программиста

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

В программе используются:

Функция ButtonPressed(x1,y1,x2,y2: integer): boolean. Функция осуществляет проверку на нажатие клавиши в области заданной формальными параметрами целочисленного типа.

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

Процедура Faceпрорисовывает интерфейс с помощью стандартных процедур библиотеки Graph.

Используются следующие процедуры библиотеки Graph:

1. SetFillStyle(pattern, color: word) – устанавливает образец штриховки и цвет.

2. Bar(x1,y1,x2,y2: integer) – рисует полосу заданного размера, используя текущий стиль и цвет.

3. SetColor(color: word) – устанавливает основной цвет, которым будет осуществляться рисование.

4. Line(x1,y1,x2.y2: integer) – рисует линию от точки (x1,y1) до точки (x2,y2).

5. OutTextxy(x,y: integer, textstring: string) – выводит текст в заданную область экрана.

Процедура PressButton с помощью мышипроизводит нажатие кнопки, прорисованной в интерфейсе. Задается условие нажатия кнопки мыши в определенной области экрана, с последующим выполнением процедур указанных в условии.

Процедуры Question4, Question3, Question2, Question1 – выполняют считывание строковых данных длиной в 72 символа из файлов, указанных в процедурах. Задаются файловые переменные текстового типа. С помощью массива с девятью составляющими на экран выводятся строки записи q. Десятая дополнительная строка сравнивается со строковой переменной, введенной с клавиатуры и в случае истинности сравнения значение целочисленной переменной sumувеличивается на единицу. Результирующая сумма выводится на экран. Также в процедурах создается эффект протекания времени, которая выполняется переменной timer целочисленного типа, прибавляющей единицу в цикле, приостанавливая работу процедурой Delay до 50000 миллисекунд.

Модуль Entrреализуется с помощью библиотеки Graphдля создания интерфейса в процедуре Enter.

Свеления о модулях.

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

Модуль имеет следующую структуру:

UNIT<имя>; {начинает заголовок модуля}

INTERFACE{начинает интерфейсную часть модуля}

<интерфейсная часть>

IMPLEMENTATION{ начинает исполняемую часть}

<исполняемая часть>

BEGIN{начинает инициирующую часть модуля}

<инициирующая часть>

END. {признакконца модуля}

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

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

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

Исполняемая часть содержит описания подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты – вспомогательные типы, константы, переменные и блоки. Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных переменных, так как они уже описаны в интерфейсной части.

Инициирующая часть завершает модуль. Она может отсутствовать вместе с начинающим словом BEGIN или быть пустой. В инициирующей части размещаются исполняемые операторы, содержащие некоторый фрагмент программы. Эти операторы исполняются до передачи управления основной программе и обычно используются для подготовки ее к работе.

Определены три режима компиляции модулей:

При компиляции в режимеCOMPILE, все упоминающиеся в предложении USES модули должны быть предварительно откомпилированы и результаты помещены в одноименные файлы с расширением TPU.

В режиме MAKEкомпилятор проверяет наличие TPU-файлов для каждого объявленного модуля. Если какой-либо из файлов не обнаружен, система пытается отыскать одноименный файл с расширением PAS, и если искомый файл найден, приступает к его компиляции. Кроме того, в этом режиме система следит за возможными изменениями исходного текста любого используемого модуля. Если в PAS-файл внесены какие-либо изменения, то независимо от того, есть ли уже в каталоге соответствующий TPU-файл или нет, система осуществляет его компиляцию перед компиляцией основной программы.

В режиме BUILD существующие TPU-файлы игнорируются, и система пытается отыскать и компилировать соответствующий PAS-файл для каждого объявленного в предложении USES модуля.

Файловые переменные, использованные в программе являются текстовыми.

Сведения о файлах

Файл это либо именованная часть внешней памяти ПК, либо логическое устройство – потенциальный источник или приемник информации.

Любой файл имеет три характерные особенности.

1. У файла есть имя, что дает возможность программе работать одновременно с несколькими файлами.

2. Файл содержит компоненты одного типа.

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

Файловый тип можно задать одним из трех способов:

1. <имя> = fileof <тип> - типизированные файлы;

2. <имя> = text – текстовые файлы;

3. <имя> = file – нетипизированные файлы.

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре Assign:

Assign(<файловая переменная>, <имя файла>)

Инициировать файл означает указать для этого файла направление передачи данных. В Турбо Паскале можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно.

Для чтения файл инициируется с помощью стандартной процедуры Reset(<файловая переменная>).

Стандартная процедура Rerite(<файловая переменная>) инициирует запись информации в файл, связанный ранее с файловой переменной. Этой процедурой нельзя инициировать запись информации в ранее существовавший дисковый файл: при выполнении старый файл уничтожается.

Стандартная процедура Append(<файловая переменная>) инициирует запись в ранее существовавший текстовый файл для его расширения.

Руководство пользователя

После запуска программы, программы, производится прорисовка интерфейса, после чего пользователю предоставляется выбор уровней сложности тестирования. Первые три уровня, с соответствующим увеличением сложности, содержат теоретические вопросы, на которые пользователь отвечает введением номера варианта с клавиатуры. На обдумывание вопроса дается 30 секунд, после чего экран очищается и программа ожидает ввод ответа. В процессе работы следует дождаться истечения времени и появления курсора в области ответов, после этого программа примет выбранный вариант. После завершения вывода на экран всех вопросов, программа выставляет оценку в зависимости от количества правильных ответов, которое также выводится на экран. Четвертый уровень содержит задачи по химии, на решение которых дается 120 секунд. Первый и третий уровни составляют по 30 вопросов, второй 20, четвертый 10.