Реферат: Разработка интерактивной среды обучения - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 1195 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Разработка интерактивной среды обучения работе в 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 Алгоритмы , достойные рассмотрения Одним из удачно реализованных алгоритмов автор считает реализацию распознавания команд . В приложении А , в конце записки представлен исходный код программы , в котором можно рассмотреть эти процедуры . Текст выводится в окне с помощью объекта C anvas . Это вызвано необходимостью помещать картинки вперемежку с текстом . Проще всего реализуется такая идея с применением 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: Po inter = @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. Пример 2. unit Example 2 frm ; Этот пример показывает,как применяются константы-записи . Здесь строится многоугольник (с применением мет ода Polyline объекта Canvas ),а координаты вершин многоугольника содержатся в массиве констант-записей. interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private Private declarations public Public declarations end; var Form1: TForm1; PolyLines:array[1..4] of tpoint=((x:170;y:20),(x:320;y:320),(x:20;y:320), (x:170;y:20)); implementation $R *.DFM procedure TForm1.Button1Click(Sender: TObject); begin form1.Canvas.Pen.Width:=3; form1.canvas.Polyline(polylines) end; end . Окно этой программы-примера приведено на рис . 2. 1 (стр . 20): Рисунок 2. 1 – Окно программы-примера Выводы В данной работе представлена образовательная программа , разработанная в среде программирования Borland Delphi 5. К ней пр илагается файл урока , описывающего основы Delphi . Но вообще , эту систему обучения можно “ заставить ” обучать какой-угодно дисциплине – для этого достаточно создать файлы уроков и записать их имена в файл конфигурации. В процессе разработки программы детальн о изучены графические возможности Делфи и объекта Canvas . Во второй части работ ы рассмотрены типизированные константы в Паскале , их применение . Даны примеры программ. Приложени е А Ниже дан исходный код всех модулей программы unit Mainfrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TfrmMain = class(TForm) Image1: TImage; Timer1: TTimer; Button1: TButton; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private Private declarations public Public declarations end; var frmMain: TfrmMain ; implementation uses runfrm; $R *.DFM var x:integer; procedure TfrmMain.Timer1Timer(Sender: TObject); var r:trect; begin r.Left:=x; r.Top:=150; r.Bottom:=170; r.Right:=frmmain.Width; frmmain.canvas.fillrect(r); frmmain.canvas.TextOut(x,151,' Д обро пожаловать в программу "Learn Delphi" !!!'); dec(x,3); if x<-720 then x:=frmmain.width end; procedure TfrmMain.FormCreate(Sender: TObject); begin frmmain.canvas.Brush.Color:=clsilver; frmmain.canvas.pen.color:=clblue; x:=frmmain.width; frmmain .canvas.font.name:='Times New Roman'; frmmain.canvas.font.size:=19; frmmain.canvas.font.color:=clblue end; procedure TfrmMain.Button1Click(Sender: TObject); begin frmmain.hide; frmrun.show; end; end. unit runfrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, checklst; type Tfrmrun = class(TForm) lblessons: TListBox; Label1: TLabel; Button1: TButton; Button2: TButton; procedure FormClose(Sender: TObject; var Action: TCl oseAction); procedure FormCreate(Sender: TObject); procedure lblessonsDblClick(Sender: TObject); procedure lblessonsKeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private Private declarations public Public declarations end; var frmrun: Tfrmrun; lessonname:string[40]; implementation uses Mainfrm, lessonfrm; $R *.DFM type tconfig=record name:string[50]; filename:string[40]; end; var names:array[1..100] of string[40]; procedure loadlesson; begin lessonname:=names[frmrun.lblessons.itemindex+1]; frmrun.hide; frmlesson.show end; procedure Tfrmrun.FormClose(Sender: TObject; var Action: TCloseAction); begin halt; end; procedure T frmrun.FormCreate(Sender: TObject); var f:file of tconfig; lesson:tconfig; n:byte; begin n:=0; assignfile(f,'ld.cfg'); reset(f); while not eof(f) do begin inc(n); read(f,lesson); names[n]:=lesson.filename; lblessons.Items.Add('Урок '+inttostr(n)+' '+lesson.name); end; closefile(f); end; procedure Tfrmrun.lblessonsDblClick(Sender: TObject); begin loadlesson; end; procedure Tfrmrun.lblessonsKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then loadlesson end; procedur e Tfrmrun.Button2Click(Sender: TObject); begin close end; procedure Tfrmrun.Button1Click(Sender: TObject); begin loadlesson; end; end. unit lessonfrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Buttons, StdCtrls; type TfrmLesson = class(TForm) pic1:timage; pic2:timage; pic3:timage; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; cmdYes: TButton; cmdNo: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SpeedButton3Click(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormDeactivate(Sender: TObject); procedure Timer1Timer( Sender: TObject); procedure FormCreate(Sender: TObject); procedure cmdYesClick(Sender: TObject); procedure cmdNoClick(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure FormActivate (Sender: TObject); private Private declarations public nq,npq:byte; end; var frmLesson: TfrmLesson; implementation $R *.DFM uses runfrm, resfrm; var f:textfile; textY:integer; first,nopaint:boolean; strpage:array[1..80] of string[80]; numpage,ap,np,sp,pp:byte; прав . ответ ; кол-во вопросов ; правильных ответов pages:array[0..100] of byte; fontemp:tfont; pagefonts:array[1..100] of tfont; procedure loadpage; begin pagefonts[numpage]:=frmlesson.canvas.font; sp:=1; inc(pp); pages[pp]:= pages[pp-1]; while not eof(f) do begin readln(f,strpage[sp]); inc(sp); inc(pages[pp]); if strpage[sp-1]='/:newpage' then exit end; end; procedure drawpage; label 1; var s:string; x,y:integer; npic:^timage; q:tcolor; i,n:byte; w:tfontstyles; r:trect; temp:tfont; begin frmlesson.pic1.left:=0; frmlesson.Canvas.TextOut(3,3,''); np:=1; r.Left:=0; r.Top:=0; r.Right:=frmlesson.Width; r.Bottom:=frmlesson.Height-80; frmlesson.Canvas.FillRect(r); if not nopaint then begin npic:=@frmlesson.pic1; frmlesson.pic1.hide; frmlesson.pic2.hide; frmlesson.pic3.hide end; frmlesson.canvas.fillrect(r); i:=1; while i0 then frmresult.show else frmrun.Show end; procedure TfrmLesson.SpeedButton3Click(Sender: TObject); begin frmlesson.hide; frmresult.show end; procedure TfrmLesson.FormPaint(Sender: TObject); begin texty:=2; if first then begin first:=false; fontemp:=frmlesson.canvas.font; drawpage end else begin nopaint:=true; drawpage; nopaint:=false end end; procedure TfrmLesson.FormShow(Sender: TObject); var s,name:string; begin nq:=0; first:=true; nopaint:=true; assignfile(f,lessonname); rese t(f); while not eof(f) do begin readln(f,s); if s='/:question' then inc(nq) end; closefile(f); reset(f); readln(f,name); frmlesson.Caption:=name; textY:=2; loadpage; frmlesson.Canvas.textout(20,20,''); end; procedure TfrmLesson.FormDeactivate(Sender: TObject); begin nopaint:=true end; procedure TfrmLesson.Timer1Timer(Sender: TObject); var q:tcolor; x,y:integer; begin if not frmlesson.Visible then exit; x:=random(frmlesson.Width); y:=random(frmlesson.Hei ght); if (x in [pic1.Left..pic1.Left+pic1.Width]) or (y in [pic1.Top..pic1.Top+pic1.Height]) then exit; q:=frmlesson.canvas.pixels[x,y]; if q<>clwhite then begin nopaint:=true; texty:=1; drawpage end; frmlesson.canvas.pixels[x,y]:=clred; end; procedure TfrmLesson.FormCreate(Sender: TObject); begin npq:=0; ap:=1; pp:=0; numpage:=1; end; procedure TfrmLesson.cmdYesClick(Sender: TObject); begin if ap=1 then inc(npq); frmlesson.cmdYes.enabled:=false; frmlesson.cmdno.enabled:=false; end; pr ocedure TfrmLesson.cmdNoClick(Sender: TObject); begin if ap=2 then inc(npq); frmlesson.cmdYes.enabled:=false; frmlesson.cmdno.enabled:=false; end; procedure TfrmLesson.SpeedButton2Click(Sender: TObject); begin canvas.Rectangle(0,0,width,height); pic1.Hide; pic2.Hide; pic3.Hide; frmlesson.Repaint; pic1.show; pic1.hide; inc(numpage); if not speedbutton1.enabled then speedbutton1.Enabled:=true; frmlesson.cmdYes.hide; frmlesson.cmdno.hide; frmlesson.pic1.hide; frmlesson.pic2.hide; fr mlesson.pic3.hide; texty:=1; sp:=0; loadpage; drawpage; if eof(f) then speedbutton2.Enabled:=false end; procedure TfrmLesson.SpeedButton1Click(Sender: TObject); var i:byte; q:integer; s:string[100]; begin pic1.Hide; pic2.Hide; pic3.Hide; frmlesson.Repaint; dec(numpage); if not speedbutton2.enabled then speedbutton2.Enabled:=true; closefile(f); reset(f); canvas.Font:=pagefonts[numpage]; if numpage=1 then begin readln(f); speedbutton1.Enabled:=false end else begin i:=0; while i
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
SMS-переписка:
- Ты злой и циничный! Я ставлю жирную точку в наших отношениях.
- У тебя всё жирное.
- Что?!
- Всё!
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Разработка интерактивной среды обучения", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru