Описание логической структуры

Описание логической структуры. Обучающая программа Графика в своем составе содержит основную программу 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. Блок 15 - проверка наличия иллюстрации. Признаком наличия иллюстрации служит любой символ кроме , О в поле Р1. Если при считывании очередной записи обнаружен признак наличия иллюстрации, то она выводится на экран. Проверка наличия иллюстрации и ее выбор осуществляется с помощью условного оператора CASE. Блок 16 - вывод иллюстрации.

Вывод осуществляется с помощью оператора outTextXY других операторов формирования графических изображений в зависимости от содержания иллюстрации. Блок 17 - проверка введенного числа. При выводе очередного вопроса на экран внизу экрана располагается надпись ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА . Обучаемый должен ввести число 1,2,3 или 4. Если введено какое-либо другое число, то на экране останется текст вопроса, место для ввода номера ответа останется пустым.

Если же число введено верно, то программа переходит к обработке введенной информации. Блок 18 - связь с файлом текста справок. Устанавливается связь с файлом текста справок, файл открывается для чтения, осуществляется проверка наличия файла в каталоге. Блок 19 - вывод текста справок. Поиск нужной справки происходит вначале с помощью условного оператора If, когда выбирается запись с нужным номером вопроса. Далее в цикле REPEAT вплоть до появления Признака конца вопроса в поле Р1 происходит поиск нужного номера ответа.

Когда номер ответа найден, он выводится на экран. Блок 20 и 21 - аналогичны блокам 15 и 16. Блок 22 - фиксация результатов. При считывании и выводе на экран первой записи справки переменной REZY присваивается значение поля Р5 файла текста справок, это поле содержит оценку за ответ на вопрос. Переменная REZY накапливает оценки за четыре ответа.

После окончания работы модуля значение этой переменной присваивается переменной главной программы ballY nomerX . При повторном вхождении в данный раздел переменная REZY обнуляется. Блок 23 - очистка экрана. Производится с помощью процедуры ClearDevice. Блок 24 - Проверка условия конца вопросов. Если вопрос не последний, то программа возвращается к выполнению блока 14 и далее. Если уже считано и выведено четыре вопроса, то модуль заканчивает свою работу. 3.4.