Similar presentations:
Система программирования PascalABC.NET и электронный задачник Programming Taskbook
1. Система программирования PascalABC.NET и электронный задачник Programming Taskbook Доклад на летней школе для учителей
М. Э. Абрамян[email protected]
Центр компьютерного образования
Факультет математики, механики и компьютерных наук
Южный федеральный университет (г. Ростов-на-Дону)
Система программирования
PascalABC.NET
и электронный задачник
Programming Taskbook
Доклад на летней школе для учителей
информатики (ВМК МГУ, 26.08.2011)
2. План доклада
Система программирования PascalABC.NETЭлектронный задачник Programming Taskbook
Веб-среда PascalABC.NET WDE
Компоненты для преподавателя
2
3. Система программирования PascalABC.NET
Обзор возможностейСреда разработки
Новое в языке
Дополнительные модули
PascalABC.NET и платформа .NET
Модули для обучения
4. Первый язык программирования
Система PascalABC.NETПервый язык
программирования
1.
2.
3.
4.
5.
6.
7.
8.
Легкость создания простых программ
Простота методов ввода-вывода
Простые управляющие конструкции
Простота разработки подпрограмм и модулей
Наличие простых средств для работы
с массивами, строками и файлами
Простые средства для работы с графикой
Поддержка современной объектной модели
и наличие развитых объектных библиотек
Наличие учебной литературы по этому языку
4
5. Первая среда программирования
Система PascalABC.NETПервая среда
программирования
1.
2.
3.
4.
5.
6.
7.
8.
Простой интерфейс
Отображение динамических подсказок
Автоматическое форматирование текста
Генерация шаблонов программ и конструкций языка
Возможность создания простых интерактивных
консольных приложений на русском языке
Генерация исполняемых файлов
Freeware (не требует платы за использование)
Распространенность и популярность среды
5
6. Проект PascalABC.NET
Система PascalABC.NETПроект PascalABC.NET
Начало: 2002 г.
Основная цель: создание среды программирования
для обучения
Полноценный язык Delphi Pascal
Самые современные конструкции языков
программирования: классы, интерфейсы, шаблоны,
исключения и т. д.
Возможность использования .NET библиотек
Модули растровой и векторной графики
Модули школьных Исполнителей
Модуль электронного задачника
Простая и мощная оболочка со средствами
динамической подсказки и отладки приложений
6
7. Первый вариант учебной среды: система Pascal ABC
Система PascalABC.NETПервый вариант учебной
среды: система Pascal ABC
7
8. Ограничения Pascal ABC
Система PascalABC.NETОграничения Pascal ABC
Нельзя создавать
исполняемые файлы
Отсутствуют
динамические
подсказки и средства
автоматического
форматирования
текста программ
Нельзя использовать
стандартные
библиотеки
платформы .NET
Сайт системы: http://sunschool.math.sfedu.ru/pabc/
8
9. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
9
10. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
10
11. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
11
12. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
12
13. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
13
14. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
14
15. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
15
16. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
16
17. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
17
18. Система программирования PascalABC.NET
Система PascalABC.NET. Обзор возможностейСистема программирования
PascalABC.NET
18
19. Сайт PascalABC.NET http://pascalabc.net/
Система PascalABC.NET. Обзор возможностейСайт PascalABC.NET
http://pascalabc.net/
19
20. Окно программной среды
Система PascalABC.NET. Среда разработкиОкно программной среды
20
21. Запуск с отображением результатов в окне вывода
Система PascalABC.NET. Среда разработкиЗапуск с отображением
результатов в окне вывода
21
22. Запуск с отображением результатов в окне вывода
Система PascalABC.NET. Среда разработкиЗапуск с отображением
результатов в окне вывода
22
23. Запуск вне программной оболочки
Система PascalABC.NET. Среда разработкиЗапуск вне программной
оболочки
23
24. Запуск вне программной оболочки
Система PascalABC.NET. Среда разработкиЗапуск вне программной
оболочки
24
25. Запуск вне программной оболочки
Система PascalABC.NET. Среда разработкиЗапуск вне программной
оболочки
25
26. Установка точки прерывания
Система PascalABC.NET. Среда разработкиУстановка точки прерывания
26
27. Остановка и просмотр текущего значения
Система PascalABC.NET. Среда разработкиОстановка и просмотр
текущего значения
27
28. Редактирование текущего значения
Система PascalABC.NET. Среда разработкиРедактирование текущего
значения
28
29. Просмотр текущих значений всех переменных
Система PascalABC.NET. Среда разработкиПросмотр текущих значений
всех переменных
29
30. Пошаговое выполнение программы
Система PascalABC.NET. Среда разработкиПошаговое выполнение
программы
30
31. Подсказка при наведении
Система PascalABC.NET. Среда разработкиПодсказка при наведении
31
32. Подсказка по контексту
Система PascalABC.NET. Среда разработкиПодсказка по контексту
32
33. Подсказка по параметрам
Система PascalABC.NET. Среда разработкиПодсказка по параметрам
33
34. Подсказка по точке
Система PascalABC.NET. Среда разработкиПодсказка по точке
34
35. Подсказка по точке
Система PascalABC.NET. Среда разработкиПодсказка по точке
35
36. Автоформатирование
Система PascalABC.NET. Среда разработкиАвтоформатирование
var i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(i*j:3);
writeln;
end;
end.
36
37. Описание, инициализация, ввод и вывод
Система PascalABC.NET. Новое в языкеОписание, инициализация,
ввод и вывод
begin
write('Введите n: ');
var fact: integer := 1; // описание внутри раздела операторов
// с возможностью немедленной инициализации
var n := ReadInteger; // ввод с помощью функций,
// «вывод типа» по типу инициализатора
for var i := 2 to n do // описание параметра цикла в заголовке
// (здесь также используется вывод типа),
// параметр цикла существует только в цикле
fact *= i;
// комбинированные операторы присваивания
writelnFormat(‘{0}! = {1}', n, fact); // форматный вывод в стиле .NET
end.
Вывод
Введите n: 7
7! = 5040
37
38. Упрощенный синтаксис для модулей
Система PascalABC.NET. Новое в языкеУпрощенный синтаксис
для модулей
unit MyUnit;
function Even(x: integer): boolean;
begin
result := not Odd(x);
end;
end.
Секции interface и implementation можно не указывать; в этом
случае все элементы модуля доступны для подключившей его
программы.
Секции initialization и finalization (или блок begin-end) вместо
секции initialization доступны для модулей, использующих как
традиционный, так и упрощенный синтаксис.
38
39. Самодокументирование модулей
Система PascalABC.NET. Новое в языкеСамодокументирование
модулей
/// Мой модуль
unit MyUnit;
/// Возвращает True, если число x
/// является четным
function Even(x: integer): boolean;
begin
result := not Odd(x);
end;
end.
Любые элементы модуля (и сам модуль) можно снабжать
специальными комментариями, которые будут использоваться
системой контекстной подсказки после первой компиляции модуля.
39
40. Самодокументирование модулей
Система PascalABC.NET. Новое в языкеСамодокументирование
модулей
40
41. Конструкторы и деструкторы объектов
Система PascalABC.NET. Новое в языкеКонструкторы и деструкторы
объектов
var p1, p2: Pupil;
begin
p := Pupil.Create(‘Иванов’); // стиль Delphi
p := new Pupil(‘Иванов’);
// стиль С#
end.
Все методы классов могут описываться непосредственно при
определении класса (хотя могут и отдельно – в стиле Delphi).
При описании конструктора надо использовать ключевое слово
constructor, после которого указывается либо имя Create, либо
не указывается никакого имени.
Деструкторы можно определять (с помощью слова destructor),
но они являются обычными методами, так как при их вызове не
происходит разрушения объекта (за разрушение объекта в .NET
отвечает сборщик мусора).
41
42. Работа с динамическими массивами
Система PascalABC.NET. Новое в языкеРабота с динамическими
массивами
var
a1: array of integer; // одномерный динамический массив
a2: array [,] of integer;
// двумерный динамический массив
begin
SetLength(a1, 5);
// выделение памяти в стиле Delphi
SetLength(a2, 5, 5);
// (при повторном вызове SetLength старое
// содержимое массива сохраняется)
a1 := new integer[10];
// выделение памяти в стиле C#
a2 := new integer[10, 10]; // (производится копирование ссылок)
writeln(Length(a1));
// определение размера в стиле Delphi
writeln(a1.Length);
// определение размера в стиле C#
writeln(Length(a2, 0), ' ', a2.GetLength(0));
var a3: array of real := (1, 2, 3); // описание массива с инициализацией
var a4 := new real[3] (1, 2, 3); // описание массива
// с выводом типа и инициализацией
end.
42
43. Модуль растровой графики GraphABC
Система PascalABC.NET. Дополнительные модулиМодуль растровой графики
GraphABC
43
44. Реализация анимации без мерцания
Система PascalABC.NET. Дополнительные модулиРеализация анимации
без мерцания
44
45. Реализация анимации без мерцания
Система PascalABC.NET. Дополнительные модулиРеализация анимации
без мерцания
45
46. Простейшие событийные приложения
Система PascalABC.NET. Дополнительные модулиПростейшие событийные
приложения
46
47. Модуль векторной графики ABCObjects
Система PascalABC.NET. Дополнительные модулиМодуль векторной графики
ABCObjects
47
48. Что дает платформа .NET
Система PascalABC.NET и платформа .NETЧто дает платформа .NET
Многообразие библиотек
Возможность совместного использования кода,
написанного на разных .NET-языках
Современные языковые средства: многомерные
динамические массивы, классы, интерфейсы,
шаблоны классов и подпрограмм, исключения,
средства параллельности и пр.
Сборка мусора (не нужно явно возвращать
динамическую память)
48
49. Многообразие стандартных .NET-библиотек
Система PascalABC.NET и платформа .NETМногообразие стандартных
.NET-библиотек
System – базовые классы .NET
System.Collections – классы коллекций
System.Text.RegularExpressions – классы
для работы с регулярными выражениями
System.Data – классы для работы с БД
System.Drawing – классы для рисования в окне
System.Net – классы для работы с сетью
System.Web – классы для работы с Web
System.Windows.Forms – классы для создания
оконных приложений
…
49
50. Тип DateTime
Система PascalABC.NET и платформа .NETТип DateTime
uses System;
var d: DateTime;
begin
d := DateTime.Now;
for var i := 1 to 10 do
begin
writeln(d.ToShortDateString,
' ', d.DayOfWeek);
d := d.AddDays(7);
end;
end.
Вывод
04.10.2009
11.10.2009
18.10.2009
25.10.2009
01.11.2009
08.11.2009
15.11.2009
22.11.2009
29.11.2009
06.12.2009
Sunday
Sunday
Sunday
Sunday
Sunday
Sunday
Sunday
Sunday
Sunday
Sunday
Упрощение решения традиционных задач
50
51. Строки как классы
Система PascalABC.NET и платформа .NETСтроки как классы
var s: string := 'Каждый Охотник Желает Знать Где Сидит Фазан';
begin
var ss : array of string := s.Split(' ');
System.Array.Sort(ss);
s := string.Join(',', ss);
writeln(s);
end.
Вывод
Где,Желает,Знать,Каждый,Охотник,Сидит,Фазан
Высокоуровневые базовые примитивы, которые удобно
использовать для решения алгоритмических задач
51
52. Регулярные выражения
Система PascalABC.NET и платформа .NETРегулярные выражения
uses
System.Text.RegularExpressions;
begin
var s := '23 abc 67 a345b 534n 8';
var sum := 0;
foreach var m: Match in Regex.Matches(s, '\b\d+\b') do
sum += StrToInt(m.Value);
write('Сумма чисел = ', sum);
end.
Вывод
Сумма чисел = 98
Мощные средства обработки текстовых данных
52
53. Коллекции
Система PascalABC.NET и платформа .NETКоллекции
uses System.Collections.Generic;
var l := new List<integer>;
begin
l.Add(3);
l.Add(5);
l.Insert(0, 4);
foreach x: integer in l do
write(x, ‘ ');
end.
Вывод
345
Высокоуровневые универсальные структуры данных
53
54. Легкость создания .NET библиотек
Система PascalABC.NET и платформа .NETЛегкость создания
.NET библиотек
Библиотека MyLib.pas
Основная программа
library MyLib;
{$reference 'MyLib.dll'}
procedure HelloWorld;
begin
writeln('Hello, world!');
end;
begin
HelloWorld;
end.
end.
Совместимость библиотек, написанных на разных .NET-языках
54
55. Использование сложных компонентов
Система PascalABC.NET и платформа .NETИспользование сложных
компонентов
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
uses
System.Windows.Forms,
System.Net;
begin
var myForm := new Form;
var w := new WebBrowser;
w.Url := new System.Uri
('http://pascalabc.net');
w.Dock := DockStyle.Fill;
myForm.Controls.Add(w);
Application.Run(myForm);
end.
Классы для создания современных прикладных приложений
55
56. Исполнитель Робот
Система PascalABC.NET. Обучающие компонентыИсполнитель Робот
56
57. Исполнитель Робот
Система PascalABC.NET. Обучающие компонентыИсполнитель Робот
Реализован в системе PascalABC.NET в виде
подключаемого модуля Robot
Содержит более 130 заданий по темам:
Условный оператор
Циклы (с параметром, с условием, вложенные)
Процедуры (без параметров и с параметрами)
Совместное использование циклов и условных
операторов
Имеет конструктор, позволяющий разрабатывать
новые задания
57
58. Исполнитель Чертежник
Система PascalABC.NET. Обучающие компонентыИсполнитель Чертежник
58
59. Исполнитель Чертежник
Система PascalABC.NET. Обучающие компонентыИсполнитель Чертежник
Реализован в системе PascalABC.NET в виде
подключаемого модуля Drawman
Содержит 70 заданий по темам:
Цикл с параметром
Вложенные циклы
Процедуры без параметров
Процедуры с параметрами
Имеет конструктор, позволяющий разрабатывать
новые задания
59
60. Электронный задачник Programming Taskbook
Назначение и возможностиПример использования
Образцы заданий
Обработка динамических
структур данных
61. Назначение, языки и программные среды
Задачник Programming TaskbookНазначение, языки
и программные среды
Задачник предназначен для обучения
программированию на языках Pascal,
Visual Basic, C++, C#, Visual Basic .NET
Может использоваться в следующих
программных средах:
Borland Delphi 7, Turbo Delphi 2006,
Free Pascal Lazarus 0.9, Pascal ABC, PascalABC.NET
Visual Basic 4-5
Visual C++ 6
Visual Studio .NET 2003, 2005, 2008
(языки C++, C#, Visual Basic .NET)
Имеется русская и английская версии
62. Возможности
Задачник Programming TaskbookВозможности
Отображение на экране текста задания
и связанных с ним данных
Предоставление исходных данных программе
учащегося
Дополнительный контроль
за правильностью операций ввода-вывода
Проверка результатов, полученных программой
учащегося
Регистрация задания как выполненного после
проведения серии успешных тестовых испытаний
программы
62
63. Базовый набор учебных заданий
Задачник Programming TaskbookБазовый набор
учебных заданий
Ввод-вывод, оператор присваивания,
целочисленный и логический
типы данных – 110 заданий
Управляющие операторы
(условный оператор, оператор выбора,
операторы цикла) – 120 заданий
Обработка последовательностей, минимумы и
максимумы – 70 заданий
Процедуры и функции – 60 заданий
Одномерные и двумерные
массивы (матрицы) – 240 заданий
64. Базовый набор учебных заданий
Задачник Programming TaskbookБазовый набор
учебных заданий
Символы и строки – 70 заданий
Двоичные и текстовые
файлы – 150 заданий
Использование составных типов данных
в процедурах и функциях – 70 заданий
Рекурсивные алгоритмы – 30 заданий
Линейные динамические структуры (стеки,
очереди, двусвязные списки) – 80 заданий
Деревья – 100 заданий
64
65. Состав
Задачник Programming TaskbookСостав
Ядро: библиотека pt4.dll (pt4pabc.dll
для среды PascalABC.NET)
Библиотеки, обеспечивающие доступ
к ядру из различных программных сред:
pt4.pas, pt4.bas, pt4.h и pt4.cpp, pt4net.dll
Дополнительные модули:
PT4Demo (просмотр заданий)
PT4Load (создание и загрузка
программ-заготовок)
PT4Result (просмотр результатов)
65
66. Условия использования
Задачник Programming TaskbookУсловия использования
Вариант, входящий в состав PascalABC.NET:
является свободно распространяемым (freeware)
позволяет выполнять 270 заданий из базового набора
предназначен для самостоятельного изучения
программирования
Возможность использования дополнительных заданий
из базового набора требует лицензирования (количество
доступных заданий зависит от уровня лицензии)
На сайте задачника (http://ptaskbook.com/) приведены условия
предоставления лицензии преподавателям средних
и высших учебных заведений
На сайте веб-среды PascalABC.NET WDE
(http://pascalabc.net/wde/) в настоящее время доступны для
выполнения все 1100 заданий, входящих в базовый набор
задачника
66
67. Сайт Programming Taskbook http://ptaskbook.com/
Задачник Programming TaskbookСайт Programming Taskbook
http://ptaskbook.com/
67
68. Просмотр заданий в демо-режиме: модуль PT4Demo
Задачник Programming Taskbook. Пример использованияПросмотр заданий в деморежиме: модуль PT4Demo
68
69. Просмотр заданий в демо-режиме: модуль PT4Demo
Задачник Programming Taskbook. Пример использованияПросмотр заданий в деморежиме: модуль PT4Demo
69
70. Вывод формулировок заданий в html-браузере
Задачник Programming Taskbook. Пример использованияВывод формулировок
заданий в html-браузере
70
71. Выбор и загрузка задания: модуль PT4Load
Задачник Programming Taskbook. Пример использованияВыбор и загрузка задания:
модуль PT4Load
71
72. Выбор и загрузка задания: модуль PT4Load
Задачник Programming Taskbook. Пример использованияВыбор и загрузка задания:
модуль PT4Load
72
73. Выбор и загрузка задания: модуль PT4Load
Задачник Programming Taskbook. Пример использованияВыбор и загрузка задания:
модуль PT4Load
73
74. Вид заготовки программы в редакторе
Задачник Programming Taskbook. Пример использованияВид заготовки программы
в редакторе
74
75. Ознакомительный запуск
Задачник Programming Taskbook. Пример использованияОзнакомительный запуск
75
76. Первый вариант решения: ввод данных
Задачник Programming Taskbook. Пример использованияПервый вариант решения:
ввод данных
76
77. Результат тестирования
Задачник Programming Taskbook. Пример использованияРезультат тестирования
77
78. Второй вариант решения: ошибочный алгоритм
Задачник Programming Taskbook. Пример использованияВторой вариант решения:
ошибочный алгоритм
78
79. Результат тестирования ошибочного алгоритма
Задачник Programming Taskbook. Пример использованияРезультат тестирования
ошибочного алгоритма
79
80. Исправление одной ошибки
Задачник Programming Taskbook. Пример использованияИсправление одной ошибки
80
81. Результаты тестирования
Задачник Programming Taskbook. Пример использованияРезультаты тестирования
81
82. Результаты тестирования
Задачник Programming Taskbook. Пример использованияРезультаты тестирования
82
83. Отладочная печать
Задачник Programming Taskbook. Пример использованияОтладочная печать
83
84. Окно задачника с панелью отладки
Задачник Programming Taskbook. Пример использованияОкно задачника
с панелью отладки
84
85. Правильное решение
Задачник Programming Taskbook. Пример использованияПравильное решение
85
86. Вид окна задачника после пяти тестовых запусков
Задачник Programming Taskbook. Пример использованияВид окна задачника после
пяти тестовых запусков
86
87. Просмотр результатов: модуль PT4Result
Задачник Programming Taskbook. Пример использованияПросмотр результатов:
модуль PT4Result
87
88. Одномерные массивы (группа Array, 140 заданий)
Задачник Programming Taskbook. Образцы заданийОдномерные массивы
(группа Array, 140 заданий)
88
89. Двумерные массивы (группа Matrix, 100 заданий)
Задачник Programming Taskbook. Образцы заданийДвумерные массивы
(группа Matrix, 100 заданий)
89
90. Символьные строки (группа String, 70 заданий)
Задачник Programming Taskbook. Образцы заданийСимвольные строки
(группа String, 70 заданий)
90
91. Двоичные файлы (группа File, 90 заданий)
Задачник Programming Taskbook. Образцы заданийДвоичные файлы
(группа File, 90 заданий)
91
92. Текстовые файлы (группа Text, 60 заданий)
Задачник Programming Taskbook. Образцы заданийТекстовые файлы
(группа Text, 60 заданий)
92
93. Текстовые файлы (группа Text, 60 заданий)
Задачник Programming Taskbook. Образцы заданийТекстовые файлы
(группа Text, 60 заданий)
93
94. Рекурсивные алгоритмы (группа Recur, 30 заданий)
Задачник Programming Taskbook. Образцы заданийРекурсивные алгоритмы
(группа Recur, 30 заданий)
94
95. Примеры динамических структур
Задачник Programming Taskbook. Обработка динамических структур данныхПримеры динамических
структур
Стек
Очередь
Двусвязный список
Бинарное дерево
95
96. Реализация динамических структур
Задачник Programming Taskbook. Обработка динамических структур данныхРеализация динамических
структур
Стек
Двусвязный список
96
97. Реализация динамических структур
Задачник Programming Taskbook. Обработка динамических структур данныхРеализация динамических
структур
Бинарное дерево
97
98. Особенности заданий на обработку структур данных
Задачник Programming Taskbook. Обработка динамических структур данныхОсобенности заданий на
обработку структур данных
Необходимо предварительно
сформировать исходные структуры
данных в памяти (для тестирования
алгоритма решения задания)
Необходимо обеспечить наглядное
отображение как исходных,
так и результирующих структур данных
(для проверки правильности решения)
98
99. Линейные динамические структуры
Задачник Programming Taskbook. Обработка динамических структур данныхЛинейные динамические
структуры
Группа Dynamic (80 заданий
на обработку линейных структур):
Стек (13 заданий)
Очередь (15 заданий)
Двусвязный список (41 задание)
Список с барьерным
элементом (11 заданий)
99
100. Деревья
Задачник Programming Taskbook. Обработка динамических структур данныхДеревья
Группа Tree (100 заданий на обработку
деревьев):
Анализ бинарного дерева (24)
Формирование бинарного дерева (10)
Преобразование бинарного дерева (13)
Бинарные деревья с обратной связью (9)
Бинарные деревья поиска (15)
Бинарные деревья разбора выражений (14)
Деревья с множественным ветвлением (15)
100
101. Обработка стека
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка стека
101
102. Обработка стека
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка стека
uses PT4;
var P: PNode;
begin
Task('Dynamic5');
read(P);
write(P^.Data, P^.Next);
Dispose(P);
end.
102
103. Обработка списка
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка списка
103
104. Обработка списка (вариант решения с указателями)
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка списка (вариант
решения с указателями)
uses PT4;
var d: integer;
p1, p2: PNode;
begin
Task('Dynamic33');
read(d, p1);
new(p2);
p2^.Data := d;
p2^.Next := p1;
p2^.Prev := p1^.Prev;
p1^.Prev := p2;
if p2^.Prev <> nil then
p2^.Prev^.Next := p2;
write(p2);
end.
104
105. Обработка списка (два объектных варианта решения)
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка списка (два
объектных варианта решения)
uses PT4;
var d: integer;
a1, a2: Node;
begin
Task('ObjDyn33');
read(d, a1);
a2 := new Node(d, a1, a1.Prev);
a1.Prev := a2;
if a2.Prev <> nil then
a2.Prev.Next := a2;
write(a2);
end.
uses PT4;
begin
Task('ObjDyn33');
var a:= new Node(ReadInteger,
ReadNode);
a.Prev := a.Next.Prev;
a.Next.Prev := a;
if a.Prev <> nil then
a.Prev.Next := a;
write(a);
end.
105
106. Обработка списка (успешный запуск объектного варианта)
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка списка (успешный
запуск объектного варианта)
106
107. Обработка дерева
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка дерева
107
108. Обработка дерева
Задачник Programming Taskbook. Обработка динамических структур данных: примерыОбработка дерева
uses PT4;
procedure DoubleValue(p: PNode);
begin
if p = nil then exit;
p^.Data *= 2;
DoubleValue(p^.Left);
DoubleValue(p^.Right);
end;
var p1: PNode;
begin
Task('Tree35');
read(p1);
DoubleValue(p1);
end.
108
109. Веб-среда разработки PascalABC.NET WDE
Веб-сервисы и их особенностиОсновные возможности среды
Работа с файлами
Графика
WDE и Programming Taskbook
Типовые задачи ЕГЭ в WDE
110.
Веб-среда PascalABC.NET WDEВеб-сервисы
и их особенности
Хранение
пользовательских
файлов на сервере
Управление
файлами
Управление
доступом к
файлам
Редактирование
файлов в окне
браузера
110
111.
Веб-среда PascalABC.NET WDEВеб-сервисы
и их особенности
Преимущества:
Не надо устанавливать приложение
на локальный компьютер
Платформенная независимость
Доступ к редактированию файлов с любого
компьютера, подключенного к Интернету
111
112.
Веб-среда PascalABC.NET WDE. Основные возможностиРедактор с подсветкой синтаксиса
и компиляция программ
112
113.
Веб-среда PascalABC.NET WDE. Основные возможностиПозиционирование
на ошибках
113
114.
Веб-среда PascalABC.NET WDE. Основные возможностиВыполнение интерактивных
консольных программ
114
115.
Веб-среда PascalABC.NET WDE. Основные возможностиВыполнение интерактивных
консольных программ
115
116.
Веб-среда PascalABC.NET WDE. Работа с файламиСохранение файлов программ
на сервере
116
117.
Веб-среда PascalABC.NET WDE. Работа с файламиУправление личными файлами
и папками
117
118.
Веб-среда PascalABC.NET WDE. Работа с файламиСкачивание файлов программ
на локальный компьютер
118
119.
Веб-среда PascalABC.NET WDE. Работа с файламиСкачивание откомпилированных
exe-файлов и dll-библиотек
119
120.
Веб-среда PascalABC.NET WDE. Работа с файламиРазмещение в Интернете ссылок
на тексты программ
При выборе
опубликованной
программы она
немедленно
загружается в
среду WDE
Ссылки на
опубликованные
программы
можно
размещать
на любых
Интернетстраницах 120
121.
Веб-среда PascalABC.NET WDE. Работа с файламиОткрытие совместного доступа
на чтение
Автор может
изменять свои
программы,
открытые для
совместного
доступа
В дальнейшем
автор может
закрыть доступ
к некоторым
своим
программам
121
122.
Веб-среда PascalABC.NET WDE. ГрафикаМножество Мандельброта
122
123.
Веб-среда PascalABC.NET WDE. ГрафикаМножество Мандельброта
123
124.
Веб-среда PascalABC.NET WDE. ГрафикаМножество Мандельброта
124
125.
Веб-среда PascalABC.NET WDE. ГрафикаАнимация (ханойские башни)
125
126.
Веб-среда PascalABC.NET WDE. ГрафикаАнимация (ханойские башни)
126
127.
Веб-среда PascalABC.NET WDE. ГрафикаАнимация (ханойские башни)
127
128.
Веб-среда PascalABC.NET WDE. ГрафикаАнимация (ханойские башни)
128
129.
Веб-среда PascalABC.NET WDE. ГрафикаАнимация (ханойские башни)
129
130.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
130
131.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
131
132.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
132
133.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
133
134.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
134
135.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
135
136.
Веб-среда PascalABC.NET WDE. ГрафикаСобытия
136
137. Страницы сайта задачника с формулировками заданий
Веб-среда PascalABC.NET WDE и электронный задачникСтраницы сайта задачника
с формулировками заданий
Курсивом выделены
имена заданий, для
которых имеются
полные решения
137
138. Автоматическая загрузка программы в WDE
Веб-среда PascalABC.NET WDE и электронный задачникАвтоматическая загрузка
программы в WDE
138
139. Окно задачника в WDE
Веб-среда PascalABC.NET WDE и электронный задачникОкно задачника в WDE
139
140. Окно задачника в WDE
Веб-среда PascalABC.NET WDE и электронный задачникОкно задачника в WDE
Пример верного
решения
приводится только в
случае, если
решение является
ошибочным
140
141. Задание на обработку файлов
Веб-среда PascalABC.NET WDE и электронный задачникЗадание на обработку
файлов
В окне задачника для
WDE содержимое
двоичных файлов
отображается
полностью; прокрутка
не требуется
141
142. Загрузка заготовки программы в WDE
Веб-среда PascalABC.NET WDE и электронный задачникЗагрузка заготовки
программы в WDE
142
143. Задание на обработку деревьев
Веб-среда PascalABC.NET WDE и электронный задачникЗадание на обработку
деревьев
143
144. Страница сайта PascalABC.NET c задачами ЕГЭ группы C
Веб-среда PascalABC.NET WDE и типовые задачи ЕГЭ (группа C)Страница сайта PascalABC.NET
c задачами ЕГЭ группы C
144
145. Загрузка программы с задачей ЕГЭ в WDE
Веб-среда PascalABC.NET WDE и типовые задачи ЕГЭ (группа C)Загрузка программы
с задачей ЕГЭ в WDE
Особенность заданий,
связанных с ЕГЭ:
модуль PT4ExamWeb
осуществляет
перенаправление
потоков ввода-вывода;
данные читаются и
пишутся в специальные
текстовые файлы
«незаметным» для
программы учащегося
образом.
145
146. Вид окна задачника для задач ЕГЭ
Веб-среда PascalABC.NET WDE и типовые задачи ЕГЭ (группа C)Вид окна задачника
для задач ЕГЭ
146
147. Вид развернутого окна задачника для задач ЕГЭ
Веб-среда PascalABC.NET WDE и типовые задачи ЕГЭ (группа C)Вид развернутого окна
задачника для задач ЕГЭ
Для переключения
между стандартным
и развернутым видом
окна достаточно
выполнить на окне
щелчок мышью.
147
148. Компоненты для преподавателя
Конструктор вариантовКонтрольный центр
Конструкторы учебных заданий
149. Комплекс Teacher Pack: основные компоненты
Компоненты для преподавателяКомплекс Teacher Pack:
основные компоненты
Конструктор вариантов PTVarMaker:
Контрольный центр PABCTeach:
позволяет создавать наборы вариантов
индивидуальных заданий
позволяет создавать новые группы заданий
на основе уже существующих
предназначен для автоматизации действий при
подготовке и проведении групповых занятий
обеспечивает настройку рабочих каталогов учащихся
и их резервное сохранение
позволяет контролировать текущие результаты каждого
учащегося и группы в целом
Конструктор учебных заданий PT4TaskMaker
149
150. Раздел комплекса Teacher Pack на сайте задачника
Компоненты для преподавателяРаздел комплекса Teacher
Pack на сайте задачника
150
151. Окно конструктора вариантов
Компоненты для преподавателя. Конструктор вариантовОкно конструктора
вариантов
151
152. Генерация вариантов
Компоненты для преподавателя. Конструктор вариантовГенерация вариантов
152
153. Генерация вариантов
Компоненты для преподавателя. Конструктор вариантовГенерация вариантов
153
154. Генерация вариантов
Компоненты для преподавателя. Конструктор вариантовГенерация вариантов
154
155. Тексты сгенерированных вариантов в html-формате
Компоненты для преподавателя. Конструктор вариантовТексты сгенерированных
вариантов в html-формате
155
156. Пример набора данных, не связанного с задачником
Компоненты для преподавателя. Конструктор вариантовПример набора данных,
не связанного с задачником
156
157. Тексты сгенерированных вариантов
Компоненты для преподавателя. Конструктор вариантовТексты сгенерированных
вариантов
157
158. Пример ошибочного набора данных
Компоненты для преподавателя. Конструктор вариантовПример ошибочного
набора данных
158
159. Создание контрольного файла (check-файла)
Компоненты для преподавателя. Конструктор вариантовСоздание контрольного
файла (check-файла)
159
160. Использование контрольных файлов
Компоненты для преподавателя. Конструктор вариантовИспользование контрольных
файлов
160
161. Использование контрольных файлов
Компоненты для преподавателя. Конструктор вариантовИспользование контрольных
файлов
161
162. Окно контрольного центра PABCTeach
Компоненты для преподавателя. Контрольный центрОкно контрольного центра
PABCTeach
162
163. Просмотр результатов из контрольного центра
Компоненты для преподавателя. Контрольный центрПросмотр результатов
из контрольного центра
163
164. Просмотр результатов из контрольного центра
Компоненты для преподавателя. Контрольный центрПросмотр результатов
из контрольного центра
164
165. Просмотр сводной информации
Компоненты для преподавателя. Контрольный центрПросмотр сводной
информации
165
166. Отключение файла с вариантами заданий
Компоненты для преподавателя. Контрольный центрОтключение файла
с вариантами заданий
166
167. Просмотр информации обо всех выполненных заданиях
Компоненты для преподавателя. Контрольный центрПросмотр информации обо
всех выполненных заданиях
167
168. Просмотр информации обо всех выполненных заданиях
Компоненты для преподавателя. Контрольный центрПросмотр информации обо
всех выполненных заданиях
168
169. Конструкторы учебных заданий
Компоненты для преподавателя. Конструкторы учебных заданийКонструкторы учебных
заданий
RobotTaskMaker: создание новых групп заданий
для исполнителя Робот
DMTaskMaker: создание новых групп заданий
для исполнителя Чертежник
PT4TaskMaker:
создание новых групп заданий
для задачника Programming Taskbook
компоновка имеющихся и новых заданий для задачника
Programming Taskbook в новые группы
автоматическая генерация html-описаний
для новых групп заданий
169
170. Структура модуля с новой группой заданий для Робота
Компоненты для преподавателя. Конструкторы учебных заданийСтруктура модуля с новой
группой заданий для Робота
unit MyRob;
uses RobotTaskMaker;
procedure Rb1;
begin
…
end;
procedure Rb2;
begin
…
end;
procedure Rb3;
begin
…
end;
begin
RegisterGroup('myrob',
'Мои задания для Робота',
‘MyRob', 3);
RegisterTask('myrob1', Rb1);
RegisterTask('myrob2', Rb2);
RegisterTask('myrob3', Rb3);
end.
170
171. Пример реализации нового задания для Робота
Компоненты для преподавателя. Конструкторы учебных заданийПример реализации
нового задания для Робота
procedure Rb2;
begin
TaskText('Задание myrob2. ' +
'Закрасить помеченные клетки');
Field(10, 8);
RobotBegin(1, 8);
RobotEnd(10, 1);
HorizontalWall(1, 1, 8);
HorizontalWall(1, 7, 8);
VerticalWall(1, 2, 5);
VerticalWall(9, 1, 5);
TagRect(2, 2, 9, 7);
end;
171
172. Дополнительные возможности
Компоненты для преподавателя. Конструкторы учебных заданийДополнительные
возможности
Задания из новых групп, подобно
встроенным заданиям, можно выбирать
с помощью мастера загрузки заданий
PT4Load
Для выбранного задания автоматически
генерируется заготовка программы
172
173. Пример использования модуля PT4Load
Компоненты для преподавателя. Конструкторы учебных заданийПример использования
модуля PT4Load
173
174. Пример использования модуля PT4Load
Компоненты для преподавателя. Конструкторы учебных заданийПример использования
модуля PT4Load
174
175. Пример использования модуля PT4Load
Компоненты для преподавателя. Конструкторы учебных заданийПример использования
модуля PT4Load
175
176. Созданная заготовка и вид окна с заданием
Компоненты для преподавателя. Конструкторы учебных заданийСозданная заготовка
и вид окна с заданием
uses Robot, MyRob;
begin
Task('myrob2');
end.
176
177. Раздел справочной системы, посвященный конструкторам
Компоненты для преподавателя. Конструкторы учебных заданийРаздел справочной системы,
посвященный конструкторам
177
178. Конструктор PT4TaskMaker
Компоненты для преподавателя. Конструктор PT4TaskMakerКонструктор PT4TaskMaker
Конструктор позволяет разрабатывать новые группы
заданий в виде dll-библиотек
Созданные библиотеки с заданиями доступны для
любых сред и языков, поддерживаемых задачником
Для подключения новой группы к задачнику
достаточно разместить dll-библиотеку
с этой группой в подкаталоге LIB задачника
или в рабочем каталоге учащегося
Среды для разработки новых групп: Free Pascal
Lazarus, Borland Delphi, PascalABC.NET
178
179. Основные возможности
Компоненты для преподавателя. Конструктор PT4TaskMakerОсновные возможности
Определение общих свойств группы заданий
(название, краткое описание, число заданий, …)
Указание формулировки задания и ее
форматирование (использование специальных
символов, индексов, выделение фрагментов
текста, …)
Определение наборов исходных и контрольных
данных любых базовых типов: integer, real, boolean,
char, string
Настройка дополнительных характеристик
(например, указание числа тестовых испытаний)
179
180. Структура проекта с новой группой (Delphi-проект)
Компоненты для преподавателя. Конструктор PT4TaskMakerСтруктура проекта с новой
группой (Delphi-проект)
library PT4MakerDemo;
uses PT4TaskMaker;
// вспомогательные процедуры, реализующие конкретные задания
…
procedure InitTask(num: integer); stdcall;
begin
// главная процедура группы, вызывает вспомогательные процедуры
end;
procedure inittaskgroup;
begin
CreateGroup('MakerDemo', 'Примеры различных задач',
'М. Э. Абрамян, 2010', 'qwqfsdf13dfttd', 8, InitTask);
// определение преамбулы группы и ее подгрупп
…
end;
exports inittaskgroup;
end.
180
181. Пример реализации нового задания
Компоненты для преподавателя. Конструктор PT4TaskMakerПример реализации
нового задания
procedure Task1;
var a, b: real;
begin
CreateTask('Ввод и вывод данных, оператор присваивания');
TaskText('Даны стороны прямоугольника {a} и {b}. ', 0, 2);
TaskText('Найти его площадь {S}~=~{a}\*{b} и периметр ' +
'{P}~=~2\*({a}~+~{b}).', 0, 4);
a := (1 + Random(100)) / 10;
b := (1 + Random(100)) / 10;
DataR('a = ', a, xLeft, 3, 4);
DataR('b = ', b, xRight, 3, 4);
ResultR('S = ', a * b, 0, 2, 4);
ResultR('P = ', 2 * (a + b), 0, 4, 4);
SetTestCount(3);
end;
181
182. Вид окна задачника с новым заданием
Компоненты для преподавателя. Конструктор PT4TaskMakerВид окна задачника
с новым заданием
182
183. Включение имеющихся заданий в новую группу
Компоненты для преподавателя. Конструктор PT4TaskMakerВключение имеющихся
заданий в новую группу
procedure InitTask(num: integer);
begin
case num of
1: Task1;
2..11: UseTask('Array', num - 1);
12..21: UseTask('Param', num - 11);
end;
end;
Группы, содержащие задания из других групп (сводные группы), могут,
в частности, использоваться при проведении проверочных работ
для того, чтобы затруднить применение учащимися шпаргалок
183
184. Создание сводной группы без программирования
Компоненты для преподавателя. Конструктор PT4TaskMakerСоздание сводной группы
без программирования
184
185. Автоматическая генерация текста заданий
Компоненты для преподавателя. Конструктор PT4TaskMakerАвтоматическая генерация
текста заданий
uses PT4;
begin
Task('Demo#');
end.
185
186. Дополнительные возможности
Компоненты для преподавателя. Конструктор PT4TaskMakerДополнительные
возможности
Наличие встроенных образцов текстовых данных:
116 слов, 61 предложение, 85 многострочных
текстов (русских и английских)
Возможность использования в задании файловых
данных (двоичных и текстовых)
Возможность использования в задании указателей и
динамических структур (линейных и иерархических)
Средства для разработки заданий
по параллельному MPI-программированию
186
187. Разработка новой группы в системе PascalABC.NET
Компоненты для преподавателя. Конструктор PT4TaskMakerРазработка новой группы
в системе PascalABC.NET
187
188. Некоторые направления дальнейшего развития
Расширение набора заданий, связанныхс ЕГЭ по информатике
Реализация компонентов
для преподавателя в Веб-среде
PascalABC.NET WDE
Интеграция в Веб-среду PascalABC.NET
WDE других распространенных языков
программирования с возможностью
использования для них электронного
задачника Programming Taskbook
188
189. Спасибо за внимание
С любезного разрешения авторовв презентации были использованы графические материалы доклада
Ю.В. Беляковой и С.С. Михалковича
«Графическая библиотека для Web-среды программирования PascalABC.NET»,
прочитанного на V Международной научно-практической конференции
«Современные информационные технологии и ИТ-образование» (2010 г.)