Учебная с истема программирования pascal abc и...

53
Учебная система программирования Pascal ABC и возможность ее использования в учебном процессе С.С. Михалкович Доклад 12.05.05

Upload: emele

Post on 04-Jan-2016

116 views

Category:

Documents


0 download

DESCRIPTION

Учебная с истема программирования Pascal ABC и возможность ее использования в учебном процессе. С.С. Михалкович Доклад 12.05.05. Причины создания. Необходима среда для обучения программированию Язык Паскаль – лучший язык для первоначального обучения - PowerPoint PPT Presentation

TRANSCRIPT

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

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

процессе

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

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

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

Необходима среда для обучения программированию

Язык Паскаль – лучший язык для первоначального обучения

Система Borland Pascal 7.0 (1993 г.) устарела

Система Borland Delphi сложна для первоначального обучения

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

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

Устаревший интерфейс

Устаревшая графика

Неудобная объектная модель

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

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

Недостатки Borland Delphi (1) Насыщенный интерфейс

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

Недостатки Borland Delphi (2) Консольное приложение выглядит неуклюже. Его минимальный

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

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

Недостатки Borland Delphi (3) Минимальный текст Windows-приложения выглядит

абсолютно непонятным Программа не имеет ни начала ни конца

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

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

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

Содержит все основные элементы современного программирования (богатая графика, классы, стандартные

контейнеры, богатые библиотеки). Позволяет осваивать технически сложные

понятия на более ранних этапах обучения (модули, классы, сокеты, структуры данных).

Содержит встроенный электронный задачник, позволяющий генерировать задания и осуществлять их

автоматическую проверку.

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

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

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

Быстродействие в вычислительных задачах примерно в 50 раз меньше, чем в Borland Delphi, и в 20 раз меньше, чем в Borland Pascal

Page 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.

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

Вид окна Pascal ABC

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

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

Тип string – максимум 255 символов Оператор Goto отсутствует Двоичные нетипизированные файлы

отсутствуют Переменная Result в функциях Операции + и – с типизированными

указателями Тип complex Структурная эквивалентность типов Перегрузка имен – без слова overload

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

Переменная 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:=iend;

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

Структурная эквивалентность типов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;

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

Операции с указателями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.

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

Тип 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.

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

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

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

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

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

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

Исполнители Робот и Чертежник (для школьников 7-9 классов)

Позволяют автоматически ставить задания и проверять правильность их выполнения

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

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

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)

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

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

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

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

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 ввод осуществляется из полей вода окна задачника, а вывод - в соответствующие поля вывода окна задачника

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

Задание Pointer2

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

Решение задания 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;

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

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

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

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

Задачник реализован для следующих сред: 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), позволяющий управлять файлами результатов учащихся, выводить сводную информацию, создавать файлы вариантов заданий

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

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

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

Модуль 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;

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

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

Модуль 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 fsBoldItalicUnderlineprocedure ClearWindow;procedure SetWindowWidth(w: integer);function WindowWidth: integer;procedure SetWindowHeight(h: integer);function WindowHeight: integer;procedure SetWindowCaption(s: string);function WindowCaption: string;

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

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

Модуль 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);

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

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

Модуль Sounds

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

Примерuses Sounds;

var snd: integer;

begin snd:=LoadSound('kuku.wav'); PlaySound(snd);while SoundIsPlaying(snd) do Sleep(100); DestroySound(snd);

end.

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

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

Модуль 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;

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

События 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.

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

Событие OnKeyDown

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;

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

end.

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

Модуль 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.

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

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

Модуль Utilstype  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;

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

Модуль Sockets

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

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

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

Структура модуля Pascal ABCunit 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.

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

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

Создание модулей во внешних DLLLibrary 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;

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

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

Ссылочная объектная модель – как в Delphi Все методы – виртуальные Возможность определять тела методов как

внутри, так и вне тела класса Отсутствуют абстрактные классы,

интерфейсы и статические методы Имеются свойства и индексированные

свойства с одним индексом По умолчанию все поля и методы – public

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

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

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

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

Определение методов внутри класса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;

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

Определение методов внутри и вне класса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;

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

Модуль Containers

Классы контейнеров: IntArray

RealArray StringArray ObjectArray

IntStackRealStack StringStack ObjectStack

IntQueueRealQueue StringQueue ObjectQueue

IntSetRealSetStringSetObjectSet

IntAssocArray RealAssocArray StringAssocArray ObjectAssocArray

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

Модуль 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;

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

Модуль Containers – интерфейсы классов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;

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;

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

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

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).ageend;function LessName(o1,o2: Object): boolean;begin Result:=Pupil(o1).name<Pupil(o2).nameend;

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.

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

Пример 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.

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

Библиотека визуальных компонентов VCL. Основные требования

Простая иерархия компонентов Обработчики событий – внешние процедуры,

а не методы, как в Delphi Два типа обработчиков – обычные и

расширенные Все компоненты создаются явно, двоичный

файл формы .dfm отсутствует Все компоненты автоматически разрушаются

при завершении программы. Деструкторы компонентов вызывать необязательно

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

Библиотека VCL. Иерархия классов

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

Пример 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.

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

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

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

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

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

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

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

ИнтерфейсыМетоды в записях (без наследования и

полиморфизма)ИсключенияПотоки, средства синхронизации потоковУсовершенствование модуля Sockets – с

обработчиками событийДолговременная цель (2 года) – создание

компилятора Pascal ABC для .NET

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

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

Использование электронного задачника. Разработка новых заданий. Создание банка заданий для студентов

Создание банка решений типовых задач – обучение на примерах

Курсовые работы – создание модулей для Pascal ABC

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