1 / 21

Михалкович С.С. Мехмат РГУ

Система Pascal A B C – новые возможности преподавания современного программирования для школьников. Михалкович С.С. Мехмат РГУ. Две крайности при обучении программированию.

lamond
Download Presentation

Михалкович С.С. Мехмат РГУ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Система PascalABC– новые возможности преподавания современного программирования для школьников Михалкович С.С. Мехмат РГУ

  2. Две крайности при обучении программированию • Обучение только алгоритмизации.Визуальная составляющая практически отсутствует. Отсутствуют также современные возможности языков: классы, события, компоненты, параллельность • Обучение только в визуальной среде проектирования приложений.Мнимая простота. Сильная зависимость от среды. Неверное представление о программировании. Множество концепций усваиваются поверхностно.

  3. Цели при обучении школьников программированию • Изучение основных конструкций языка и алгоритмов • Изучение современных средств языков программирования (модули, классы, наследование, полиморфизм, событийность, параллельность, компоненты) на ранних этапах • Широкое использование графических и анимационных возможностей • Все используемые конструкции языка и концепции должны быть понятны ученику • Создание достаточно сложных программных проектов с помощью специальных библиотек классов и подпрограмм

  4. Система Pascal ABC –возможности и особенности • Простой интерфейс • Активная справочная система • Полноценный язык программирования Delphi Pascal • Бесплатность • Встроенный электронный задачник (автор – Абрамян М.Э.) • Мощная графическая библиотека • Возможность использовать, помимо обычного, упрощенный синтаксис модулей и классов • Редактор форм для приложений с главной формой • Компиляция в память, отсутствие возможности создавать исполняемые файлы

  5. Графические возможности • Модуль CRT – текстово-графические возможности. Расширен по сравнению с модулем CRT Turbo Pascal. • Модуль GraphABC – основной модуль работы с графикой. Классы не используются. • Модуль ABCObjects – векторная графика. Иерархия графических классов с возможностью масштабирования, клонирования, группировки, наложения объектов. Обучение объектно-ориентированному программированию на ранних этапах. Использование объектов для конструирования в достаточно сложных проектах. • Модуль Sprites – спрайты, создание интерактивных “живых” приложений: игры, обучающие программы.

  6. Новые возможности модуля GraphABC – анимация без мерцания uses GraphABC; var i: integer; begin LockDrawing; for i:=1 to 500do begin ClearWindow; SetBrushColor(clGreen); Ellipse(i,100,i+100,200); Redraw; end; end.

  7. Модуль ABCObjects – основные классы • RectangleABC • SquareABC • TextABC • EllipseABC • CircleABC • RegularPolygonABC • StarABC • PictureABC • ChessBoardABC • ChessFigureABC • ContainerABC

  8. Модуль ABCObjects – управление свойствами объектов uses ABCObjects,GraphABC; var z: StarABC; begin z:=CreateStarABC(600,500,490,120,6,clRed); repeat Sleep(100); z.Count:=z.Count+1; untilz.Count>20; repeat Sleep(10); z.Angle:=z.Angle+1; untilz.Angle>180; end.

  9. Модуль ABCObjects – шахматная программа uses ABCObjects,GraphABC; var br: ChessBoardABC; ChessFigures: ChessSetABC; k,q,b,kn,r,p: ChessFigureABC; begin br:=CreateChessBoardABC(20,20,8,8,50,clBlack); ChessFigures:=ChessSetABC.Create('Chess.wmf',45,br); k:=ChessFigures.CreateWhiteKing(5,1); q:=ChessFigures.CreateWhiteQueen(4,1); b:=ChessFigures.CreateWhiteBishop(3,1); kn:=ChessFigures.CreateWhiteKnight(2,1); r:=ChessFigures.CreateWhiteRook(1,1); p:=ChessFigures.CreateWhitePown(5,2); q.move(4,5); b.move(8,6); kn.move(3,3); k.move(3,1); r.move(4,1); p.move(5,4); end.

  10. Модули управления внешними программами

  11. Модуль Sprites –мультимедийные программы uses ABCSprites; var s, s1, s2: SpriteABC; begin s:=CreateSpriteABC('FinnyMan',10,10); s.Speed := 2; s.State := 'Stand'; s1:= CreateSpriteABC('FinnyMan', 50,50); s1.Speed := 4; s1.State := 'Go'; repeat s1.MoveOn(-1,-1); until s1.Intersects(s); end.

  12. Событийные программы. Шаг 1 – модуль CRT Модуль CRT – моделирование цикла обработки сообщений с помощью функций ReadKey и KeyPressed: // начальная инициализация repeatifKeyPressedthenbeginch := ReadKey;case ch of// реакция на события клавиатурыend;end; until ch = #27;

  13. Событийные программы. Шаг 2 – модуль Events 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.

  14. Совместное использование модулей Events и ABCObjects – программа перетаскивания объектов мышью usesGraphABC,ABCObjects,Events; var r: RectangleABC; el: EllipseABC; begin r:=CreateRectangleABC(100,70,120,180,clCream); el:=CreateEllipseABC(5,55,65,50,clRandom); OnMouseDown:=ABCMouseDown; // привязка OnMouseMove:=ABCMouseMove; // обработчиков OnMouseUp:=ABCMouseUp; // событий мыши end.

  15. Событийные программы. Шаг 3 – модуль VCL usesVCL; var MainForm:Form; Edit1:Edit; procedure SetFormCaption; begin MainForm.Caption:=Edit1.Text; end; begin MainForm:=Form.Create(200,200,300,100); Edit1:=Edit.Create(140,20); Edit1.OnChange:=SetFormCaption; end.

  16. Модуль VCL – пример сложной программы

  17. Дизайнер форм – визуальное проектирование приложений

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

  19. Модуль Containers – классы контейнерных объектов Динамические массивы • IntArray RealArray StringArray ObjectArray Стеки • IntStackRealStack StringStack ObjectStack Очереди • IntQueueRealQueue StringQueue ObjectQueue Множества • IntSetRealSetStringSetObjectSet Отображения • IntAssocArray RealAssocArray StringAssocArray ObjectAssocArray

  20. Модуль Containers – простая программа на тип “Множество строк” uses Containers; var s,s1,s2: StringSet; begin s:=StringSet.Create; s1:=StringSet.Create; s2:=StringSet.Create; s1.Include('Иванов'); s1.Include('Петров'); s1.Include('Сидоров'); s2.Include('Козлов'); s2.Include('Умнова'); s2.Include('Сидоров'); s.Union(s1,s2); s.Println; // объединение множеств s.Intersect(s1,s2); s.Println; // пересечение множеств s.Difference(s1,s2); s.Println; // разность множеств end.

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

More Related