Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x
для обучения, которая работает с базой данных. Возможности языка и его
преимущества более подробно описаны в п.1.2.3 .
Программа называется "Графика" . Она состоит из основной программы,
содержащейся в файле с именем "Graphic", восьми самостоятельных модулей с
именами Razdel1, Razdel2, Razdel3, Razdel4, Razdel5, Razdel6, Razdel7,
MyBook.
Основная программа формирует заставку к программе, обращается к файлу
Veden, содержащему текст введения, выводит текст введения, формирует
систему меню, через которое затем обращается к процедурам модулей Razdel1 –
Razdel7, получает из этих процедур переменные , содержащие оценки за ответы
на контрольные вопросы, присваивает их значение своим переменный, хранит их
в течение всей работы с программой и отвечает за формирование раздела
"Результаты Вашей работы" системы меню. Основная программа регламентирует
доступ к разделам. Переменные NOMER3 - NOMER7 являются счетчиками и
обеспечивают вход в процедуры модулей Razdel3 – Razdel7 не более двух раз
за сеанс. При этом основная программа хранит все оценки, полученные за
ответы на контрольные вопросы , и все их выводит на экран по обращению к
разделу меню "Результаты Вашей работы".
Модули Razdel1 – Razdel7 содержат процедуры с именами Razdel10 -
Razdel70 соответственно. Эти процедуры устанавливают связь с файлами базы
данных, выводят текст теории, вопросов, справок, содержат программный текст
иллюстраций к теории, вопросам и справкам. По результатам ответов студента
на контрольные вопросы процедура формирует переменную. После отработки
модуля значение этой переменной переприсваивается определенной переменной
основной программы. И основная программа хранит это значение до окончания
работы с программой.
База данных состоит из трех логических частей, которые содержат
теоретическую часть, контрольные вопросы и справки. Они расположены в
каталоге следующим образом. Теоретическая часть размещается в восьми файлах
типа запись . Файлы с именами Raztex1, Raztex2, Raztex3, Raztex4, Raztex5,
Raztex6, Raztex7 содержат тексты теоретической части по семи разделам
соответственно. Файл Veden содержит текст введения. К разделам ,
содержащимся в файлах Razdel3 – Razdel7 имеются контрольные вопросы ,
размещенные в файлах Joing, Joi, Join, Jois, Jos, и справки , размещенные в
файлах lod, lodi, lodin, lodis, los. Файлы контрольных вопросов и справок
так же являются файлами типа запись. Структура базы данных, ее содержание,
возможности дополнения, обновления или частичного изменения, схема
обращений процедур к базе данных подробно описаны в разд.2.
Модуль MyBook является библиотечным модулем. Он включает в себя четыре
процедуры, которые неоднократно встречаются в текстах основной программы и
процедур рабочих модулей. Процедура OKNO -формирует экранную рамку, в
которой будут размещаться тексты программы. Процедура OKN01 формирует
заставку с надписью "Контрольные вопросы". Процедура GraphRegim
обеспечивает вход в графический режим. Эти три процедуры используются
практически во всех процедурах и в основной программе. Процедура Diogramraa
формирует последнюю иллюстрацию к разделу 5 и вынесена в данный модуль так
как занимает значительный объем.
Разработанная программа является самостоятельной программной единицей.
Для ее функционирования необходимо иметь в арсенале следующие средства :
персональный компьютер типа IBM или совместимый с ним, дисплей с
графическим адаптером типа EGA, имеющим объем видеобуфера 256 К,
графическим выводом 640x350 пиксел, 16 регистрами палитры. В качестве
программного обеспечения необходимо иметь DOS, инструментальную
интегрированную среду Turbo-Pascal 7.0, файлы bold.chr, goth.chr, sans.chr,
trip.chr нестандартных шрифтов, файлы с текстом программы, файлы ,
содержащие базу данных. Для работы с программой , при условии наличия выще
указанных технических и программных средств, следует обратиться к файлу с
именем "Graphic". При этом необходимые данные загружаются в оперативную
память компьютера и далее работа с программой идет в диалоговом режиме, не
требующем вмешательства программиста. Выход из программы осуществляется
также по желанию обучаемого при входе в раздел меню "Конец работы".
3.2. Функциональное назначение
Программа для обучения работе в графическом режиме предназначается для
обучения студентов младших курсов Санкт-Петербургской государственной
Академии аэрокосмического приборостроения навыкам программирования, а
именно работе в графическом режиме языка Turbo-Pascal .
Для работы с настоящей программой необходимо знание стандарта языка,
интегрированной среды и элементарным навыкам работы с персональным
компьютером . Программа содержит теоретический материал по семи разделам:
1) Программирование графических режимов.
2) Управление курсором и полем рисования.
3) Формирование прямолинейных монохромных изображений.
4) Управление цветом и стилем изображений.
5) Формирование цветных криволинейных изображений.
6) Формирование графических текстов.
7) Программирование озвученных динамических сцен.
Эти разделы содержат наименование процедур и функций, их параметры,
условия и примеры использования в программах. Текст сопровождается
необходимыми иллюстрациями. Ввиду отсутствия лекций по данной теме, наличие
обучающей программы дает возможность студентам самостоятельно и с
минимальными затратами времени освоить работу с графикой . Разделы 3-7
содержат контрольные вопросы. Элемент контроля знаний обеспечивает
студентам возможность самоконтроля, резко повышает уровень знаний, т.к. в
случае необходимости обучаемый имеет возможность повторно изучить любую
тему и ответить на контрольные вопросы - проверить Полученные знания.
Программа имеет специальное назначение. Она может быть использована только
для обучения заданной теме, а именно работе в графическом режиме. База
данных, в случае необходимости, может быть изменена, дополнена. Однако эти
изменения могут быть сделаны только в пределах темы. При этом, если к
новому теоретическому материалу или контрольным вопросам необходимо сделать
некоторые иллюстрации, то в таком случае потребуется вмешательство
программиста. Текст иллюстраций содержится в процедурах модулей и
вмешательство в их содержимое требует специальных знаний. Существует
теоретическая возможность изменения темы программы. Однако это потребует
изменения меню программы, полной замены базы данных и соответственно
внесения изменений в процедуры модулей. А именно - создание новых
иллюстраций. Все это потребует очень больших трудозатрат программиста и
эквивалентно созданию новой программы.
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.
Блок 15 - проверка наличия иллюстрации. Признаком наличия иллюстрации
служит любой символ кроме "*" , "О" в поле Р1. Если при считывании
очередной записи обнаружен признак наличия иллюстрации, то она выводится на
экран . Проверка наличия иллюстрации и ее выбор осуществляется с помощью
условного оператора CASE.
Блок 16 - вывод иллюстрации. Вывод осуществляется с помощью оператора
outTextXY других операторов формирования графических изображений в
зависимости от содержания иллюстрации.
Блок 17 - проверка введенного числа. При выводе очередного вопроса на
экран внизу экрана располагается надпись : "ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО
ОТВЕТА ___ " . Обучаемый должен ввести число 1,2,3 или 4. Если введено
какое-либо другое число, то на экране останется текст вопроса, место для
ввода номера ответа останется пустым. Если же число введено верно, то
программа переходит к обработке введенной информации.
Блок 18 - связь с файлом текста справок. Устанавливается связь с
файлом текста справок, файл открывается для чтения, осуществляется проверка
наличия файла в каталоге.
Блок 19 - вывод текста справок. Поиск нужной справки происходит
вначале с помощью условного оператора If , когда выбирается запись с нужным
номером вопроса . Далее в цикле REPEAT вплоть до появления Признака конца
вопроса "*" в поле Р1 происходит поиск нужного номера ответа. Когда номер
ответа найден, он выводится на экран .
Блок 20 и 21 - аналогичны блокам 15 и 16.
Блок 22 - фиксация результатов. При считывании и выводе на экран
первой записи справки переменной REZY присваивается значение поля Р5 файла
текста справок, это поле содержит оценку за ответ на вопрос. Переменная
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
|