Паскаль
<<  Знакомство со средой Pascal Организация ветвления на языке Паскаль  >>
Учебная система программирования Pascal ABC и возможность ее
Учебная система программирования Pascal ABC и возможность ее
Причины создания
Причины создания
Недостатки Borland Pascal
Недостатки Borland Pascal
Недостатки Borland Delphi (1)
Недостатки Borland Delphi (1)
Недостатки Borland Delphi (2)
Недостатки Borland Delphi (2)
Недостатки Borland Delphi (3)
Недостатки Borland Delphi (3)
Требования к Pascal ABC
Требования к Pascal ABC
Ограничения Pascal ABC
Ограничения Pascal ABC
Тест скорости Pascal ABC проводился на следующей программе:
Тест скорости Pascal ABC проводился на следующей программе:
Вид окна Pascal ABC
Вид окна Pascal ABC
Особенности языка Pascal ABC
Особенности языка Pascal ABC
Переменная Result
Переменная Result
Структурная эквивалентность типов
Структурная эквивалентность типов
Операции с указателями
Операции с указателями
Тип complex
Тип complex
Перегрузка имен – нет overload
Перегрузка имен – нет overload
Встроенные учебные модули
Встроенные учебные модули
Электронный задачник – группы заданий
Электронный задачник – группы заданий
Окно задачника
Окно задачника
Шаблон программы и процесс решения
Шаблон программы и процесс решения
Задание Pointer2
Задание Pointer2
Решение задания Pointer2
Решение задания Pointer2
Просмотр результатов выполнения заданий
Просмотр результатов выполнения заданий
Другие возможности электронного задачника
Другие возможности электронного задачника
Модуль GraphABC – возможность быстрого написания графических программ
Модуль GraphABC – возможность быстрого написания графических программ
Модуль GraphABC (1)
Модуль GraphABC (1)
Модуль GraphABC (2)
Модуль GraphABC (2)
Модуль GraphABC (3)
Модуль GraphABC (3)
Модуль Sounds
Модуль Sounds
Модуль Events
Модуль Events
События OnMouseDown и OnMouseMove
События OnMouseDown и OnMouseMove
Событие OnKeyDown
Событие OnKeyDown
Модуль Timers
Модуль Timers
Модуль Utils
Модуль Utils
Модуль Sockets
Модуль Sockets
Структура модуля Pascal ABC
Структура модуля Pascal ABC
Создание модулей во внешних DLL
Создание модулей во внешних DLL
Особенности классов в Pascal ABC
Особенности классов в Pascal ABC
Класс Object – неявный предок всех классов
Класс Object – неявный предок всех классов
Определение методов внутри класса
Определение методов внутри класса
Определение методов внутри и вне класса
Определение методов внутри и вне класса
Модуль Containers
Модуль Containers
Модуль Containers – интерфейсы классов
Модуль Containers – интерфейсы классов
Модуль Containers – интерфейсы классов
Модуль Containers – интерфейсы классов
Пример 1: сортировка по критерию в динамических массивах объектов
Пример 1: сортировка по критерию в динамических массивах объектов
Пример 2: ассоциативные массивы
Пример 2: ассоциативные массивы
Библиотека визуальных компонентов VCL
Библиотека визуальных компонентов VCL
Библиотека VCL
Библиотека VCL
Пример 1 программы PABC Forms
Пример 1 программы PABC Forms
Пример 2. Экран более сложной программы
Пример 2. Экран более сложной программы
Pascal ABC в сети Интернет
Pascal ABC в сети Интернет
Что на повестке дня
Что на повестке дня
Как можно использовать Pascal ABC в учебном процессе
Как можно использовать Pascal ABC в учебном процессе

Презентация на тему: «Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе». Автор: Станислав. Файл: «Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе.ppt». Размер zip-архива: 465 КБ.

Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе

содержание презентации «Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе.ppt»
СлайдТекст
1 Учебная система программирования Pascal ABC и возможность ее

Учебная система программирования Pascal ABC и возможность ее

использования в учебном процессе

С.С. Михалкович Доклад 12.05.05

2 Причины создания

Причины создания

Необходима среда для обучения программированию Язык Паскаль – лучший язык для первоначального обучения Система Borland Pascal 7.0 (1993 г.) устарела Система Borland Delphi сложна для первоначального обучения

3 Недостатки Borland Pascal

Недостатки Borland Pascal

Устаревший интерфейс Устаревшая графика Неудобная объектная модель Невозможность писать программы, управляемые событиями

4 Недостатки Borland Delphi (1)

Недостатки Borland Delphi (1)

Насыщенный интерфейс

5 Недостатки Borland Delphi (2)

Недостатки Borland Delphi (2)

Консольное приложение выглядит неуклюже. Его минимальный текст выглядит достаточно сложно Поддержка русификации проблематична

6 Недостатки Borland Delphi (3)

Недостатки Borland Delphi (3)

Минимальный текст Windows-приложения выглядит абсолютно непонятным Программа не имеет ни начала ни конца

7 Требования к Pascal ABC

Требования к Pascal ABC

Простая система для первоначального обучения программированию. Является стартовой площадкой для изучения профессиональных систем программирования. Содержит все основные элементы современного программирования (богатая графика, классы, стандартные контейнеры, богатые библиотеки). Позволяет осваивать технически сложные понятия на более ранних этапах обучения (модули, классы, сокеты, структуры данных). Содержит встроенный электронный задачник, позволяющий генерировать задания и осуществлять их автоматическую проверку.

8 Ограничения Pascal ABC

Ограничения Pascal ABC

Компиляция в память с последующей интерпретацией дерева программы, отсутствие возможности создания .exe-файлов, выполнение программ лишь в рамках интегрированной среды Быстродействие в вычислительных задачах примерно в 50 раз меньше, чем в Borland Delphi, и в 20 раз меньше, чем в Borland Pascal

9 Тест скорости Pascal ABC проводился на следующей программе:

Тест скорости Pascal ABC проводился на следующей программе:

uses Utils; var s: real; i,j: integer; begin cls; i:=1; while i<=1000 do begin j:=1; while j<=1000 do begin s:=s+1/i/j; j:=j+1; end; i:=i+1; end; write(s,' ',Milliseconds/1000); end.

10 Вид окна Pascal ABC

Вид окна Pascal ABC

11 Особенности языка Pascal ABC

Особенности языка Pascal ABC

Тип string – максимум 255 символов Оператор Goto отсутствует Двоичные нетипизированные файлы отсутствуют Переменная Result в функциях Операции + и – с типизированными указателями Тип complex Структурная эквивалентность типов Перегрузка имен – без слова overload

12 Переменная Result

Переменная Result

function MinElement (var a: array [1..100] of real; n: integer): real; var i: integer; begin Result:=a[1]; for i:=1 to n do if a[i]<Result then Result:=a[i]; end; function f(r,i: integer): record r,i: integer end; begin Result.r:=r; Result.i:=i end;

13 Структурная эквивалентность типов

Структурная эквивалентность типов

Var a: array [1..100] of integer; b: array [1..100] of integer; p1: procedure (i: integer); p2: procedure (x: integer); r1: record i,j: integer end; r2: record x,y: integer end; begin a:=b; // все в порядке p1:=p2; // все в порядке r1:=r2; // ошибка! ... Procedure foreach(var a: array [1..100] of real; n: integer; f: function(r: real): real); var i: integer; begin for i:=1 to n do a[i]:=f(a[i]); end;

14 Операции с указателями

Операции с указателями

const n=20; type pinteger=^integer; ArrN=^array [1..MaxInt] of integer; var p,pi: ^integer; pa: ArrN; i: integer; begin GetMem(p,n*sizeof(integer)); pi:=p; for i:=1 to n do begin pi^:=2*i; pi:=pi+1; end; pa:=ArrN(p); for i:=1 to n do write(pa^[i]:3); FreeMem(p); end.

15 Тип complex

Тип complex

const ci=(0,1); var c: complex; begin c:=(3,7); c.Re:=2*c.Im; c:=ci*c+(2*c.Im,c.Re); writeln(c:10:2); writeln(abs(c)); writeln(conj(c)); writeln(carg(c)); writeln(sin(c),' ',cos(c),' ',exp(c)); writeln(ln(c),' ',sqrt(c)); end.

16 Перегрузка имен – нет overload

Перегрузка имен – нет overload

procedure p(b: byte); begin end; procedure p(r: real); begin end; type A=class constructor Create; constructor Create(n: integer); end; ... p(2); p(2.0);

17 Встроенные учебные модули

Встроенные учебные модули

Электронный задачник Programming Taskbook (автор М.Э.Абрамян) – 1000 заданий от простейших до заданий на файлы, рекурсию, указатели и структуры данных. Исполнители Робот и Чертежник (для школьников 7-9 классов) Позволяют автоматически ставить задания и проверять правильность их выполнения

18 Электронный задачник – группы заданий

Электронный задачник – группы заданий

Begin — ввод и вывод данных, оператор присваивания (40), integer — целые числа (30), for — цикл с параметром (40), boolean — логические выражения (40), if — условный оператор (30), case — оператор выбора (20), while — цикл с условием (30), series — последовательности (40), proc — процедуры и функции (60), minmax — минимумы и максимумы (30), array — одномерные массивы (140), matrix — двумерные массивы (матрицы) (100), string — символы и строки (70), file — типизированные файлы (90), text — текстовые файлы (60), param — составные типы данных в процедурах и функциях (70), recur — рекурсия (30), pointer — указатели и динамические структуры данных (80)

19 Окно задачника

Окно задачника

20 Шаблон программы и процесс решения

Шаблон программы и процесс решения

uses PT4; begin Task('Begin3'); end.

uses PT4; var a,b,S,P: real; begin Task('Begin3'); read(a,b); S:=a*b; P:=2*(a+b); write(S,P) end.

Перенаправление ввода-вывода – при подключении модуля задачника PT4 ввод осуществляется из полей вода окна задачника, а вывод - в соответствующие поля вывода окна задачника

21 Задание Pointer2

Задание Pointer2

22 Решение задания Pointer2

Решение задания Pointer2

Uses PT4; var P1,P2: pnode; n: integer; begin task('pointer2'); read(p1); n:=0; while p1<>nil do begin write(p1^.Data); inc(n); P2:=P1; // сохраняем адрес текущего элемента P1:=P1^.Next; // и переходим к следующему элементу end; write(n,p2); end.

type PNode = ^TNode; TNode = record Data: Integer; Next: PNode; Prev: PNode; end;

23 Просмотр результатов выполнения заданий

Просмотр результатов выполнения заданий

24 Другие возможности электронного задачника

Другие возможности электронного задачника

Задачник реализован для следующих сред: Borland Pascal 7.0, Borland Delphi 3.0–7.0, Microsoft Visual Basic 5.0–6.0, Borland C++Builder 4.0–5.0, Microsoft Visual C++ 6.0, Microsoft Visual Studio .NET 2003 (языки Visual C++ 7.0, Visual Basic .NET и Visual C# .NET) Имеется контрольный центр преподавателя (не входит в дистрибутив Pascal ABC), позволяющий управлять файлами результатов учащихся, выводить сводную информацию, создавать файлы вариантов заданий

25 Модуль GraphABC – возможность быстрого написания графических программ

Модуль GraphABC – возможность быстрого написания графических программ

26 Модуль GraphABC (1)

Модуль GraphABC (1)

Примитивы, перья и кисти

function RGB(r,g,b: integer): integer; procedure SetPixel(x,y,color: integer); procedure Line(x1,y1,x2,y2: integer); procedure Circle(x,y,r: integer); procedure Ellipse(x1,y1,x2,y2: integer); procedure Rectangle(x1,y1,x2,y2: integer); procedure FloodFill(x,y,color: integer); procedure Pie(x,y,r,a1,a2: integer); procedure Polygon(var a; n: integer); procedure Polyline(var a; n: integer); procedure SetPenColor(color: integer); function PenColor: integer; procedure SetPenWidth(w: integer); function PenWidth: integer; procedure SetPenStyle(ps: integer); function PenStyle: integer; procedure SetBrushColor(color: integer); function BrushColor: integer; procedure SetBrushStyle(bs: integer); function BrushStyle: integer;

27 Модуль GraphABC (2)

Модуль GraphABC (2)

Текст и графическое окно

procedure TextOut(x,y: integer; s: string); procedure SetFontColor(color: integer); function FontColor: integer; procedure SetFontSize(sz: integer); function FontSize: integer; procedure SetFontName(name: string); function FontName: string; procedure SetFontStyle(fs: integer); function FontStyle: integer; fsNormal fsBold fsItalic fsBoldItalic fsUnderline fsBoldUnderline fsItalicUnderline fsBoldItalicUnderline procedure ClearWindow; procedure SetWindowWidth(w: integer); function WindowWidth: integer; procedure SetWindowHeight(h: integer); function WindowHeight: integer; procedure SetWindowCaption(s: string); function WindowCaption: string;

28 Модуль GraphABC (3)

Модуль GraphABC (3)

Рисунки: дескрипторная модель. Каждый рисунок имеет описатель – целое число

function LoadPicture(fname: string): integer; procedure DrawPicture(n,x,y: integer); procedure DestroyPicture(n: integer); function PictureWidth(n: integer): integer; function PictureHeight(n: integer): integer; function CreatePicture: integer; procedure CopyToPicture(n: integer; r: Rect); procedure SavePicture(n: integer; fname: string); n:=LoadPicture('demo.bmp'); w:=PictureWidth(n); h:=PictureHeight(n); SetBrushColor(clWhite); for i:=0 to WindowWidth-w do begin DrawPicture(n,i,0); Sleep(10); FillRect(i,0,i+1,0+h); end; DestroyPicture(n);

29 Модуль Sounds

Модуль Sounds

Звуки: дескрипторная модель

Пример uses Sounds; var snd: integer; begin snd:=LoadSound('kuku.wav'); PlaySound(snd); while SoundIsPlaying(snd) do Sleep(100); DestroySound(snd); end.

Интерфейс модуля n:=LoadSound(fname); PlaySound(n); StopSound(n); RewindSound(n); DestroySound(n); b:=SoundIsPlaying(n); t:=SoundTime(n);

30 Модуль Events

Модуль Events

Простейшие события

OnMouseDown: procedure (x,y,mb: integer); OnMouseUp : procedure (x,y,mb: integer); OnMouseMove: procedure (x,y,mb: integer); OnKeyDown : procedure (key: integer); OnKeyUp : procedure (key: integer); OnKeyPress : procedure (ch: char); OnResize : procedure; OnClose : procedure;

31 События OnMouseDown и OnMouseMove

События OnMouseDown и OnMouseMove

uses GraphABC,Events; procedure MouseDown(x,y,mb: integer); begin MoveTo(x,y); end; procedure MouseMove(x,y,mb: integer); begin if mb=1 then LineTo(x,y); end; begin OnMouseDown:=MouseDown; OnMouseMove:=MouseMove end.

32 Событие OnKeyDown

Событие OnKeyDown

begin x:=WindowWidth div 2; y:=WindowHeight div 2; SetPenStyle(psClear); OnKeyDown:=KeyDown; SetBrushColor(clBlack); Ellipse(x-9,y-9,x+9,y+9); end.

uses GraphABC,Events; var x,y: integer; procedure KeyDown(Key: integer); begin SetBrushColor(clWhite); Ellipse(x-9,y-9,x+9,y+9); case Key of VK_Left: x:=x-5; VK_Up: y:=y-5; VK_Right: x:=x+5; VK_Down: y:=y+5; end; SetBrushColor(clBlack); Ellipse(x-9,y-9,x+9,y+9); end;

33 Модуль Timers

Модуль Timers

uses Timers, Events; procedure p; begin write(1); end; var t: integer; begin t:=CreateTimer(500,p); readln; StopTimer(t); readln; StartTimer(t); end.

Таймеры: дескрипторная модель

34 Модуль Utils

Модуль Utils

type DateTime=record Day, Month, Year, Hour, Minute, Second, Milliseconds: integer; end; LongSize=record Megabytes, Bytes: integer; end; function CreateDir(name: string): boolean; function DeleteFile(name: string): boolean; function DirectoryExists(name: string): boolean; function GetCurrentDir: string; function RemoveDir(name: string): boolean; function RenameFile(OldName,NewName: string): boolean; function SetCurrentDir(name: string): boolean; function Trim(s: string): string; function TrimLeft(s: string): string; function TrimRight(s: string): string; function Milliseconds: integer; function CompileTime: integer; function CurrentDateTime: DateTime; procedure ShowMessage(s: string); function CompareMem(p1,p2: pointer; len: integer): boolean; function DiskSize(Drive: integer): LongSize; function DiskFree(Drive: integer): LongSize;

35 Модуль Sockets

Модуль Sockets

Сокеты: дескрипторная модель

Серверная программа

Клиентская программа

36 Структура модуля Pascal ABC

Структура модуля Pascal ABC

Модули должны находиться либо в папке основной программы, либо в папке UNITS корневой папки Pascal ABC

unit GraphLib; uses GraphABC; const Dim=5; var Colors: array [1..Dim] of integer; function RandomColor: integer; begin Result:=RGB(Random(255),Random(255),Random(255)); end; procedure FillByRandomColor; var i: integer; begin for i:=1 to Dim do Colors[i]:=RandomColor; end; begin FillByRandomColor; end.

37 Создание модулей во внешних DLL

Создание модулей во внешних DLL

Library Test; procedure RegisterLib(s: string); begin s:='unit Test;'+ 'procedure myInc(var i: integer; n: integer); external 1;'+ 'function Sum(a,b: integer): integer; external 2;'+ 'end.'; end; procedure Execute(n: integer; p: pointer); var pi: pinteger; a,b: pinteger; begin case n of 1:begin // myInc pi:=getpointer(p); pi^:=pi^+pinteger(p)^; end; 2:begin // Sum a:=getinteger(p); b:=getinteger(p); pinteger(p)^:=a+b; end; end; end;

38 Особенности классов в Pascal ABC

Особенности классов в Pascal ABC

Ссылочная объектная модель – как в Delphi Все методы – виртуальные Возможность определять тела методов как внутри, так и вне тела класса Отсутствуют абстрактные классы, интерфейсы и статические методы Имеются свойства и индексированные свойства с одним индексом По умолчанию все поля и методы – public

39 Класс Object – неявный предок всех классов

Класс Object – неявный предок всех классов

type Object=class constructor Create; destructor Destroy; function TypeName: string; function ToString: string; end;

40 Определение методов внутри класса

Определение методов внутри класса

type Figure=class private x,y: integer; public constructor Create(xx,yy:integer); begin x:=xx; y:=yy; end; procedure Draw; begin end; procedure Show; begin SetPenColor(clBlack); Draw; end; procedure Hide; begin SetPenColor(clWhite); Draw; end; procedure MoveTo(xx,yy: integer); begin Hide; x:=xx; y:=yy; Show; end; function Clone: Figure; begin Clone:=Figure.Create(x,y); end; end;

RectG=class(Figure) private w,h: integer; public constructor Create(x1,y1,x2,y2: integer); begin inherited Create(x1,y1); w:=x2-x1; h:=y2-y1; end; procedure Draw; begin Rectangle(x,y,x+w,y+h); end; function Clone: Figure; begin Clone:=RectG.Create(x,y,x+w,y+h); end; end;

41 Определение методов внутри и вне класса

Определение методов внутри и вне класса

type AssocArray=class private words: StringArray; nums: IntArray; procedure setProp(ind: string; value: integer); function getProp(ind: string):integer; public constructor Create; begin words:=StringArray.Create; nums:=IntArray.Create; end; function getSize: integer; begin Result:=words.Size; end; property Size: integer read getSize; property Items[ind: string]:integer read getProp write setProp; property Keys: StringArray read words; property Values: IntArray read nums; end;

procedure AssocArray.setProp (ind: string; value: integer); var i: integer; begin i:=words.IndexOf(ind); if i<>0 then nums[i]:=value else begin words.add(ind); nums.add(value); end; end; function AssocArray.getProp (ind:string): integer; var i: integer; begin i:=words.IndexOf(ind); if i<>0 then Result:=nums[i] else begin words.add(ind); nums.add(0); Result:=0; end; end;

42 Модуль Containers

Модуль Containers

Классы контейнеров: IntArray RealArray StringArray ObjectArray IntStack RealStack StringStack ObjectStack IntQueue RealQueue StringQueue ObjectQueue

IntSet RealSet StringSet ObjectSet IntAssocArray RealAssocArray StringAssocArray ObjectAssocArray

43 Модуль Containers – интерфейсы классов

Модуль Containers – интерфейсы классов

IntArray=class constructor Create; constructor Create(n: integer); destructor Destroy; procedure Put(ind,v: integer); function Get(ind: integer): integer; property Items[n: integer]: integer read get write put; function Size: integer; function Count: integer; procedure Resize(n: integer); procedure Add(v: integer); procedure Fill(v: integer); procedure Clear; procedure Insert(ind,v: integer); procedure Delete(ind: integer); procedure Remove(v: integer); procedure Exchange(i1,i2: integer); function IndexOf(v: integer): integer; function LastIndexOf(v: integer): integer; function Find(v: integer): boolean; function MinElement: integer; function MaxElement: integer; function MinInd: integer; function MaxInd: integer; procedure Sort; procedure Reverse; function Sum: integer; function Average: real; procedure Print; procedure Println; end;

StringStack=class constructor Create; destructor Destroy; procedure Push(s: string); function Pop: string; function Top: string; function IsEmpty: boolean; end; RealQueue=class constructor Create; destructor Destroy; procedure Push(r: real); function Pop: real; function First: real; function Last: real; function IsEmpty: boolean; end;

44 Модуль Containers – интерфейсы классов

Модуль Containers – интерфейсы классов

IntAssocArray=class constructor Create; destructor Destroy; procedure Clear; procedure Add(key: string; value: integer); function Find(key: string): boolean; procedure Delete(key: string); procedure Reset; procedure MoveFirst; procedure MoveLast; procedure Next; procedure Prev; function CurrentKey: string; function CurrentValue: integer; function EoA: boolean; procedure Put(key: string; value: integer); function Get(key: string): integer; property Items[key: string]: integer read get write put; function Count: integer; function IsEmpty: boolean; procedure Print; procedure Println; procedure Print(delim: string); procedure Println(delim: string); end;

ObjectSet=class OwnsObjects: boolean; constructor Create; destructor Destroy; procedure Include(o: Object); procedure Exclude(o: Object); function Find(o: Object): boolean; procedure Delete(o: Object); procedure Reset; procedure MoveFirst; procedure MoveLast; procedure Next; procedure Prev; function Current: Object; function Eos: boolean; function First: Object; function Last: Object; procedure Clear; procedure Union(s1,s2: ObjectSet); procedure Intersect(s1,s2: ObjectSet); procedure Difference(s1,s2: ObjectSet); function Embed(s: ObjectSet): boolean; function Count: integer; function IsEmpty: boolean; procedure Print; procedure Println; procedure Print(delim: string); procedure Println(delim: string); end;

45 Пример 1: сортировка по критерию в динамических массивах объектов

Пример 1: сортировка по критерию в динамических массивах объектов

var d: ObjectArray; begin cls; d:=ObjectArray.Create; d.Add(Pupil.Create('Иванов',15)); d.Add(Pupil.Create('Попов',14)); d.Add(Pupil.Create('Петров',12)); d.Add(Pupil.Create('Козлова',16)); d.Add(Pupil.Create('Кротова',12)); d.Add(Pupil.Create('Дурова',13)); d.Sort(LessName); writeln('Сортировка по имени:'); d.Println(#10); d.Sort(LessAge); writeln('Сортировка по возрасту:'); d.Println(#10); d.Destroy; end.

uses Containers; type Pupil=class age: integer; name: string; constructor Create(name: string; age: integer); begin Self.age:=age; Self.name:=name; end; function ToString: string; begin Result:=name+' '+IntToStr(age); end; end; function LessAge(o1,o2: Object): boolean; begin Result:=Pupil(o1).age<Pupil(o2).age end; function LessName(o1,o2: Object): boolean; begin Result:=Pupil(o1).name<Pupil(o2).name end;

46 Пример 2: ассоциативные массивы

Пример 2: ассоциативные массивы

Uses containers; var zoo: intassocarray; begin zoo:=intassocarray.Create; zoo['бегемоты']:=8; zoo['крокодилы']:=6; zoo['жирафы']:=1; zoo['страусы']:=zoo['страусы']+1; zoo.Println; zoo.Reset; while not zoo.Eoa do begin writeln(zoo.Currentkey,' ',zoo.Currentvalue); zoo.Next; end; zoo.Destroy; end.

47 Библиотека визуальных компонентов VCL

Библиотека визуальных компонентов VCL

Основные требования

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

48 Библиотека VCL

Библиотека VCL

Иерархия классов

49 Пример 1 программы PABC Forms

Пример 1 программы PABC Forms

uses VCL; var MainForm: Form; Label1: Label; Edit1: Edit; procedure SetFormCaption; begin MainForm.Caption:=Edit1.Text; end; begin MainForm:=Form.Create(200,200,300,100); Label1:=Label.Create(5,20,'Заголовок формы:'); Edit1:=Edit.Create(140,20); Edit1.OnChange:=SetFormCaption; end.

50 Пример 2. Экран более сложной программы

Пример 2. Экран более сложной программы

51 Pascal ABC в сети Интернет

Pascal ABC в сети Интернет

Систему Pascal ABC и HTML-версию электронного задачника Programming Taskbook можно загрузить с сайта Компьютерной школы при механико-математическом факультете РГУ sunschool.math.rsu.ru

52 Что на повестке дня

Что на повестке дня

Интерфейсы Методы в записях (без наследования и полиморфизма) Исключения Потоки, средства синхронизации потоков Усовершенствование модуля Sockets – с обработчиками событий Долговременная цель (2 года) – создание компилятора Pascal ABC для .NET

53 Как можно использовать Pascal ABC в учебном процессе

Как можно использовать Pascal ABC в учебном процессе

Использование электронного задачника. Разработка новых заданий. Создание банка заданий для студентов Создание банка решений типовых задач – обучение на примерах Курсовые работы – создание модулей для Pascal ABC Изменение акцентов – объектно-ориентированное программирование можно начинать во втором семестре, опираясь также на графическую библиотеку; ознакомление с объектами можно проводить, используя контейнерные классы и классы визуальных компонентов

«Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе»
http://900igr.net/prezentacija/informatika/uchebnaja-sistema-programmirovanija-pascal-abc-i-vozmozhnost-ee-ispolzovanija-v-uchebnom-protsesse-59999.html
cсылка на страницу
Урок

Информатика

130 тем
Слайды
900igr.net > Презентации по информатике > Паскаль > Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе