45937 (665242)

Файл №665242 45937 (Разработка интерактивной среды обучения)45937 (665242)2016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

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

Введение

На Земле каждый час увеличивается количество компьютеров. Они работают с

программами, количество которых тоже растет. Написаны все программы с

использованием разных языков программирования – С++, Delphi, Assembler. Изучение

таких языков мало уступает по сложности изучению обычных, человеческих. Это

очень сложный и трудоемкий процесс.

Для его облегчения и упрощения создаются различные обучающие программы.

Компьютер учит человека. Такой “учитель” никогда не устает, всегда объективен,

не обижается…

В данной работе представлена подобная программа, способная (как мне кажется),

обучить начинающего программиста основам визуальной среды Delphi и языка

Паскаль.

1 Описание программы

1. 1 Основные характеристики

Рассматриваемая программа имеет возможность использования уроков, хранящихся в

файлах, что позволяет создавать уроки, не изменяя кода программы.

Файл урока представляет собой текстовый файл с расширением .LES; в нем сдержится

текст урока и специальные команды, заставляющие программу, выполнять некоторые

действия, например, выводить текст таким-то цветом, изменять размер шрифта,

вставлять картинки. Описание команд будет приведено ниже.

1. 2 Руководство для пользователя

Выполняемый файл называется LD. EXE. После его запуска на экране появляется

окно.

По нему “ползет” надпись: “Добро пожаловать в программу Learn Delphi!!!”. Для

входа в программу надо нажать кнопку “ОК”. Следующее окно показано на рис. 1. 2:

Рисунок 1. 2 – Окно выбора нужного урока

Пользователь выбирает нужный ему урок и нажимает кнопку “Загрузить”. После этого

он видит основное окно, в которое загружена первая страница урока. Это окно

представлено на рис. 1. 3 (стр. 8).

1. 3 Описание команд формата .LES

Как уже было сказано выше, данная программа имеет специальную систему команд.

Они делятся на три типа:

Текстовые

Графические

Логические.

Все команды предваряются символами /:, чтобы их можно было отличить от обычного

текста, выводимого на экран.

Все, что не имеет в начале символов /: будет выведено!

Рисунок 1. 3 – Окно урока

1. 3. 1 Текстовые команды

Таблица 1. 1 – Текстовые команды

/:size

размер шрифтаУстанавливает размер шрифта. Размер вводится сразу после

команды.

Пример:

Таблица 1. 1 – Текстовые команды (продолжение)

/:size

750

/:color

цветУстанавливает цвет выводимого текста. Поддерживает основные цвета:

red, blue, black, yellow, green, grey.

Пример:

/:color

red

/:style

стильУстанавливает стиль выводимого текста:

1 – нормальный,

2 – полужирный,

3 – подчеркнутый,

4 – курсив,

5 – перечеркнутый.

Пример:

/:style

5

/:font

имяЗагружает другой шрифт.

Пример:

/:font

Times New Roman

/:newpageДает знать системе, что дальше следует новая страница.

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

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

которая загружает и помещает по указанным координатам картинку из файла в

формате .BMP.

Синтаксис:

/:Picture

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

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

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

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

достаточно.

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

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

Синтаксис:

/:question

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

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

Результатом выполнения является присутствие на странице вопроса, обведенного

двойной красной рамкой. Справа, после текста вопроса, находятся две кнопки –

“Да” и “Нет”. Пользователь нажимает на кнопку, которая символизирует, по его,

юзера, мненеию, правильный ответ и кнопки сразу становятся неактивными.

Программа посчитывает количество правильных и неправильных ответов и в конце

работы выставляет оценку.

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

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

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

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. При этом и распознаются команды.

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, но в виде консольного приложения – чтобы не загромождать

текст программ описанием форм и других объектов, к которым данная задача не

имеет отношения.

Тексты программ-примеров помещены на дискете с курсовой работой в директории

EXAMPLES.

Пример 1.

program Example1;

{$APPTYPE CONSOLE}

{Данная программа-пример демонстрирует применение констант-массивов. Преобразует

численный формат даты в обычный, с названием месяца}

uses

SysUtils;

const month:array[1..12] of

string[20]=('January','February','March','April','May',

'June','July','August','September','October','November', 'December');

var d:string[10];

s:string[30];

s1:string[3];

begin

write('Enter date (dd:mm:yyyy): ');

readln(d);

s:='';

if copy(d,1,1)<>'1' then begin

if copy(d,2,1)='1' then s1:='`st' else

if copy(d,2,1)='2' then s1:='`nd' else

if copy(d,2,1)='3' then s1:='`rd'

end else s1:='`th';

s:=copy(d,1,2)+s1+' of '+month[strtoint(copy(d,4,2))]+' ' +copy(d,7,4);

writeln(s);

readln

end.

Характеристики

Тип файла
Документ
Размер
56,03 Kb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов реферата

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6525
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее