RSS    

   Реферат: Разработка интерактивной среды обучения работе

1. 3. 2 Графические команды

          В данной версии программы имеется только одна графическая команда – /:picture, которая загружает и помещает по указанным координатам картинку из файла в формате .BMP.

          Синтаксис:

          /:Picture

          X-координата рисунка.

          Y-координата. рисунка.

          имя файла рисунка

          На одну страницу можно поместить до трех картинок. Этого в большинстве случаев достаточно.

1. 3. 3  Логические команды

          Логическая команда в данной версии тоже одна. Это /:question.

Синтаксис:

         

          /:question

          текст вопроса

          правильный ответ (1-"Да"  2-"Нет")

         

          Результатом выполнения является присутствие на странице вопроса, обведенного двойной красной рамкой. Справа, после текста вопроса, находятся две кнопки – «Да» и «Нет». Пользователь нажимает на кнопку, которая символизирует, по его, юзера,  мненеию, правильный ответ и кнопки сразу становятся неактивными. Программа посчитывает количество правильных и неправильных ответов и в конце работы выставляет оценку.

          На странице не допускается размещать больше одного вопроса!

          Версия программы, представленная в курсовой работе является DEMO-версией, поэтому вообще в уроке допускается лишь одна логическая команда.


1.   4  Описание внутренней структуры программы

1. 4. 1 Общая организация

          Программа имеет четыре окна: frmMain, frmRun, frmLesson и frmRes. В табл. 1. 2 представлены функции, выполняемые каждым из них:

Таблица 1. 2 Функции, выполняемые окнами в программе

Название окна Функции, которые выполняет в программе
frmMain Данное окно появляется, когда пользователь запускает программу. Оно служит как-бы приглашением к работе. Показано данное окно на рис. 1. 1.
FrmRun После frmMain пользователь попадает в окно frmRun. Здесь он может выбрать нужный урок и загрузить его или выйти из программы. Показано оно на рис. 1. 2.
FrmLesson Основное окно для обучения. В нем выводится текст урока, все картинки и вопросы. В модуле этого окна описаны все подпрограммы для обработки файлов уроков. Показано это окно на рис. 1. 3.
FrmRes После прохождения урока пользователь должен знать, как он усвоил материал. В данном окне помещена таблица с числом вопросов и правильных ответов. Это очнь простое окно, поэтому не представлено на рисунках.

1. 4. 2 Алгоритмы, достойные рассмотрения

          Одним из удачно реализованных алгоритмов автор считает реализацию распознавания команд. В приложении А, в конце записки представлен исходный код программы, в котором можно рассмотреть эти процедуры. Текст выводится в окне с помощью объекта Canvas. Это вызвано необходимостью помещать картинки вперемежку с текстом. Проще всего реализуется такая идея с применением Canvas’a. При тестировании возникла проблема: при перерисовке окна (в случае временного перекрытия другим окном и т. п.) объекты, выведенные с помощью Canvas’a, не перерисовывались. Исчезали крупные фрагменты текста. В конце-концов проблема решена: запускается обработчик события OnPaint.

          Каждая страница урока загружается в специальную переменную (процедура LoadPage), а потом выводится на экран процедурой DrawPage. При этом и распознаются команды.

1.   4. 3 Перспективы

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

          Кроме того, используя возможности Windows, можно будет «заставить» обучалку взаимодействовать с системой программирования Delphi, что повысит наглядность примеров и тогда Learn Delphi способна будет готовить неплохих специалистов в области компьютерных технологий.

          Но и это еще не все! LD – универсальная система, в файл урока можно записать что-угодно, так что применять это средство можно и для обучения другим предметам, даже несколько удаленным от информатики, как, например, история, иностранные языки.


2 Типизированные константы

2. 1 Общая характеристика

          Язык Паскаль, и, соответственно, Делфи, имеет специальный вид констант – типизированные. В отличие от обычных, констант, они могут содержать массивы, указатели, записи и значения процедурных типов. При установленной директиве компилятора {$J+} они ведут себя как обычные инициализированные переменные. При {$J-} значения не могут изменяться.

          Синтаксис: Const имя_константы: тип =значение

          Пример:     Const Max: integer=200

2. 2  Константы-массивы

          Чтобы задать какую-либо константу-массив, нужно описать значения всех элементов. Значения описываются в круглых скобках, через запятую. Например:

Const Digits: array[1..5] of byte=(1, 2, 3, 4, 5)

          В данном примере объявляется константа-массив Digits типа Byte. Ей сразу присваиваются числа от 1 до 5.

          Константы-массивы часто используются для задания строк, оканчивающихся символом #0. В этом случае описание выглядит так:

Const Stroka: array[1..5] of char=(‘Hello’)

          Константой может быть и многомерный массив. Для этого каждое его измерение помещается в круглые скобки. Пример:

type TCube = array[0..1, 0..1, 0..1] of Integer;

const Maze: TCube = (((0, 1), (2, 3)), ((4, 5), (6,7)))

          Создается массив Maze, где:

Maze[0,0,0] = 0

Maze[0,0,1] = 1

Maze[0,1,0] = 2

Maze[0,1,1] = 3

Maze[1,0,0] = 4

Maze[1,0,1] = 5

Maze[1,1,0] = 6

Maze[1,1,1] = 7

          Все константы-массивы не могут содержать файловых переменных ни на каком уровне.

2. 3 Константы-записи

         

          Для задания константы-записи необходимо заполнить ее поля согласно синтаксису: Имя_поля: значение. Значения разделяются точками с запятой и все выражение помещается в круглые скобки. Значения должны быть представлены константами. Поля должны быть перечисленны в том порядке, в каком они размещены в описании записи. Поле-описатель, если такое есть, должно быть заполнено; в случае записи с вариантами только вариант, выбранный описателем может использоваться.

          Примеры:

type

  TPoint = record

    X, Y: Single;

  end;

  TVector = array[0..1] of TPoint;

  TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

  TDate = record

    D: 1..31;

    M: TMonth;

    Y: 1900..1999;

  end;

const

  Origin: TPoint = (X: 0.0; Y: 0.0);

  Line: TVector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));

  SomeDay: TDate = (D: 2; M: Dec; Y: 1960);

          Все константы-записи не могут содержать файловых переменных ни на каком уровне.

2. 4 Процедурные константы

          Для определения процедурной константы нужна процедура с подходящими параметрами. Например:

function Calc(X, Y: Integer): Integer;

begin

 ...

end;

type TFunction = function(X, Y: Integer): Integer;

const MyFunction: TFunction = Calc;

          После такого описания, функция вызывается:

I := MyFunction(5, 7)

          Вы также можете присвоить константе значение nil.

2. 5 Константы-указатели

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

          Константа содержит адрес переменной:

const PI: ^Integer = @I;

          Константа содержит адрес подпрограммы:

const PF: Pointer = @MyFunction;

          Вы можете объявить константу типа PChar со строчным значением, т. к. литералы хранятся в памяти как глобальные константы.

          Адреса локальных (размещенных в стеке) и динамических переменных не могут быть помещены в подобную константу.

2. 6 Примеры программ

         

          Ниже приведены примеры программ, использующих типизированные константы. Они написаны в Delphi, но в виде консольного приложения – чтобы не загромождать текст программ описанием форм и других объектов, к которым данная задача не имеет отношения.

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


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.