Программа имеет специальное назначение. Она может быть использована только для обучения заданной теме, а именно работе в графическом режиме. База данных, в случае необходимости, может быть изменена, дополнена. Однако эти изменения могут быть сделаны только в пределах темы. При этом, если к новому теоретическому материалу или контрольным вопросам необходимо сделать некоторые иллюстрации, то в таком случае потребуется вмешательство программиста. Текст иллюстраций содержится в процедурах модулей и вмешательство в их содержимое требует специальных знаний. Существует теоретическая возможность изменения темы программы. Однако это потребует изменения меню программы, полной замены базы данных и соответственно внесения изменений в процедуры модулей. А именно - создание новых иллюстраций. Все это потребует очень больших трудозатрат программиста и эквивалентно созданию новой программы.
3.3. Описание логической структуры
Обучающая программа "Графика" в своем составе содержит основную программу "Graphic" , семь рабочих модулей, один библиотечный модуль. Назначение каждого из них подробно описано в п,3.1. Текст программы приведен в приложении. Структура обучающей программы приведена на рис. 1 Основная программа "Graphic" вызывает на исполнение модули Razdel1 – Razdel7. Каждый модуль содержит по одной процедуре, которые обеспечивают связь с файлами базы данных, вывод текста теории и контрольных вопросов на экран, вывод справок, регистрацию оценок.
Использование модулей в данном случае является целесообразным по следующим причинам. Это удобно в случае дополнения или изменения базы данных. Если потребуется внесение дополнительных иллюстраций, то нетрудно войти в требуемый раздел и внести дополнения в условный оператор CASE. Модуль является автономно компилируемой программной единицей. Это позволяет работать с одним из модулей программы, не нарушая при этом другие, облегчает поиск ошибок программирования. В данной работе каждый модуль отвечает за обеспечение изучения одного из разделов темы "Графический режим". И один модуль - МУВООК - является библиотечным, содержит процедуры, встречающиеся часто во всех модулях. После окончания работы модуля управление возвращается к главной программе. Главная программа использует в своей работе переменные модулей, а именно переменные формирования оценок REZ3 - REZ7. Подробнее эти переменные описаны ниже в подразделе 3.6.
Схема алгоритма функционирования программы приведена на рис. 2 Алгоритм функционирования рабочих модулей приведен на рис. 3 Рассмотрим первый алгоритм.
Структура обучающей программы
Рис. 1
Алгоритм функционирования программы
Рис. 2
Алгоритм функционирования рабочих модулей
Рис. 3
Блок номер 1 - формирование заставки. В текст заставки входит название программы, "Графика", ее назначение, имя разработчика. Формируется заставка в графическом режиме.
Блок 2 - процедура Windo1. Эта процедура устанавливает связь с файлом текстом введения и выводит его на экран. Более подробно работу блока можно описать с помощью блоков 1-4,7 изображенных на рис.
Блок 3 - выбор режима работы. В данном случае обучаемому требуется выбрать один из трех режимов: работа модуля - изучение теории и ответы на контрольные вопросы, Вывод результатов - получение ведомости оценок, конец - выход из программы, т.е. окончание работы с ликвидацией всех ее результатов. Главная программа содержит процедуру VERTIKALNOE_MENU , которая формирует окно меню программы. Процедура написана в графическом режиме. Меню содержит девять разделов, названия которых соответствуют фактическим параметрам упомянутой процедуры. Выбор режима работы, т.е. выбор соответствующего названия раздела осуществляется с помощью условного оператора CASE. В операторе CASE выражением, значение которого вычисляется , является параметр REGIME процедуры VERTIKALNOE__MENU. Он может принимать значения 1 - 9 . На экране это соответствует девять положениям курсора. Таким образом, если параметр REGIME принимает значения 1 - 7 , то далее управление передается модулю с соответствующим именем. На схеме алгоритма -блоку 5 . Если параметр REGIME принимает значение 8, то управление переходит к блоку схемы с номером 4 и производится вывод результатов работы. Если же параметр REGIME равен 9 , то работа с программой заканчивается.
Блок 4 - вывод результатов. Этот процесс оформлен в главной программе как составной оператор условного оператора CASE. Он выполняется при условии, что параметр REGIME равен 8. В операторе вывода результатов производится формирование самой ведомости оценок в виде таблицы. В эту таблицу вписываются с помощью оператора writeln переменные главной программы, содержащие оценки за работу с программой. Подробнее формирование этих переменных будет описано в подразделе 3.6. После отработки составного оператора с выводом результатов программа возвращается в окно меню.
Блок 5 - отработка модуля. Это - рабочий блок . При входе в этот режим главная программа передает управление одному из семи рабочих модулей - RAZPEH, RAZDEL2, RAZDEL3, RAZDEL4, RAZDEL5, RAZDEL6, RAZ0EL7. Модули обеспечивают изучение семи разделов по теме "Графический режим". Работа модулей описана подробнее в данном подразделе ниже. Схема алгоритма функционирования модулей приведена на рис.
При входе в режим "Конец" обучаемому еще раз задается вопрос: "Вы хотите закончить работу с программой Y/N ? " При нажатии на клавишу "У"("Н") программа заканчивает свою работу . При этом все результаты работы с контрольными вопросами уничтожаются. Принажатии на любую другую клавишу программа возвращается в окно меню.
Рассмотрим подробнее алгоритм функционирования рабочих модулей, изображенный на рис.
Блок 1 - процедура GraphRegim. Эта процедура содержится в библиотечном модуле МУВООК. Она осуществляет вход в графический режим.
Следующие далее блоки 2-8 обеспечивают вывод теоретической части на экран.
Блок 2 - Связь с файлом теории. Этот блок содержит операторы связи с необходимым файлом текста теории. Таблица соответствия между процедурами модулей и файлами базы данных приведена в подразделе 2.2. Файл открывается для чтения, производится проверка на наличие файла в каталоге .
Блок 3, блок 13 - процедура ОКНО . Эта процедура содержится в библиотечном модуле MYBOOK и отвечает за оформление экрана. Она создает рамку и устанавливает фоновый цвет и цвет рисования основного текста.
Блок 4 - вывод текста теории. Этот блок обеспечивает считывание из открытого файла записей и вывод содержимого поля Р2 на экран . Цикл Рог выводит на экран 31 строку текста. После вывода 31 строки на экран, экран очищается и выводятся следующие 31 строка вплоть до появления признака конца файла в поле Р1 очередной считываемой записи. Проверка признака конца файла оформлена оператором цикла REPEAT . В процедурах RAZDEL6-7 использован дополнительно значок # для пометки конца строки. По этому значку с помощью оператора CASE(вывод иллюстраций)прекращается вывод текста теории. Это необходимо, т.к. в этих разделах присутствуют рисунки требующие всего экрана.
Блок 5 - проверка условия наличия иллюстрации. Эта проверка производится после считывания очередной записи файла теории с помощью условного оператора CASE. С константами оператора сравнивается содержимое поля Р1. В случае наличия иллюстрации она выводится на экран. Если иллюстрация не требуется/то выполняется далее считывание текста теории и после окончания цикла REPEAT очистка экрана.
Блок 6 - вывод иллюстрации. Вывод осуществляется с помощью оператора OutTextXY.
Блок 7 - очистка экрана. Производится после вывода 31 строки текста.
Блок 8 - проверка конца файла. Осуществляется с помощью оператора цикла REPEAT. В поле Р1 последней записи содержится значок"0". При обнаружении этого значка считывание прекращается и цикл завершает свою работу.
Блоки 9 -24 обеспечивают работу с контрольными вопросами.
Блок 9 - проверка наличия контрольных вопросов. Этот блок означает, что если это алгоритм работы модулей RAZDEL1 или RAZDEL2 , то блок 8 является последним и так как эти разделы не содержат контрольные вопросы, то после условной вершины блока 9 модуль заканчивает свою работу. Если же мы рассматриваем работу алгоритма для модулей, которые содержат контрольные вопросы, то по "Да" переходим к блоку 10.
Блок 10 - процедура OKNO1 . Эта процедура содержится в библиотечном модуле MYBOOK и формирует заставку с надписью "Контрольные вопросы".
Блок 11 - Случайный выбор номеров вопросов. Выбираются четыре номера вопросов из десяти имеющихся . Это делается случайным образом с помощью генератора случайных чисел RANDOMIZE и функции Random, которая формирует случайное число. Выбранные номера вопросов запоминаются в массиве М[0..3] . Элементы этого массива используются при поиске нужного вопроса при выводе текста теоретической части и при поиске нужного номера вопроса для вывода текста справки.
Блок 12 - связь с файлом текста вопросов. Блок содержит операторы , устанавливающие связь с файлом текста вопросов, открывающие его для чтения и обеспечивающие проверку наличия файлов в каталоге.
Блок 14 - вывод текста очередного вопроса. Записи начинают считываться по одной. Поле Р2 сравнивается с содержимым массива случайно выбранных чисел М[0..3] . При обнаружении необходимого номера вопроса начинается его вывод на экран с помощью процедуры OutTextXY вплоть до появления признака конца вопроса "*", содержащегося в поле Р1.