Смекни!
smekni.com

Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x (стр. 8 из 24)

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

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.