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

Реферат

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

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

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

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 1195 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!
Заказать
Узнать стоимость написания уникального реферата

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

Разработка интерактивной среды обучения работе в 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Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Александр Лукашенко выловил сома весом 57 кг. Всё, началась рыбная вакханалия! Думаю, всё кончится синим китом, которого поймает Ким Чен Ын...
Anekdot.ru

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

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

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


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