на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Среда программирования программы Borland Pascal 7.0

Среда программирования программы Borland Pascal 7.0

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 модуля.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Листинг программы

Основная программа

uses CRT, Graph, Mouse, DOS, Entr;

type q = record

a: string[72];

end;

var

f1,f2,f3,f4: text;

mas: array[1..9] of q;

e: array[1..670] of string[72];

i,j,x,y,sum,timer: integer;

z,mark,s1,s2,s3,s4: string;

procedure GraphInit;

var Driver, Mode, Error: integer;

begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

Error:=GraphResult;

if Error<>grok then

begin

Writeln(GraphErrorMsg(Error));

halt;

end;

end;

function ButtonPressed(x1,y1,x2,y2:integer):boolean;

{функция на проверку нажатия кнопки}

var

Mx,My:integer;

ctt:integer;

begin

GetMouse;

ButtonPressed:= (but=1)and(m>x1)and(m<x2)and(n>y1)and(n<y2);

end;

procedure Face; {прорисовка интерфейса}

begin

SetFillStyle(1,10);

Bar(10,10,GetMaxx-10,GetMaxy-10);

SetColor(15);

Line(20,20,620,20);

Line(20,20,20,150);

SetColor(0);

Line(620,20,620,150);

Line(20,150,620,150);

SetColor(15);

Line(20,195,450,195);

Line(20,195,20,210);

SetColor(0);

Line(20,210,450,210);

Line(450,195,450,210);

SetColor(15);

Line(20,215,450,215);

Line(20,215,20,230);

SetColor(0);

Line(20,230,450,230);

Line(450,215,450,230);

SetColor(15);

Line(20,235,450,235);

Line(20,235,20,250);

SetColor(0);

Line(20,250,450,250);

Line(450,235,450,250);

SetColor(15);

Line(20,255,450,255);

Line(20,255,20,270);

SetColor(0);

Line(20,270,450,270);

Line(450,255,450,270);

OutTextxy(35,340,'время');

OutTextxy(140,340,'ответ');

SetColor(15);

Line(20,390,100,390);

Line(100,360,100,390);

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.