Теория и методика изучения основ объектно-ориентированного программирования в школьном курсе информатики
Содержание
Введение
Глава 1. Введение в объектно-ориентированное программирование
.1 Основные понятия ООП
.2 Основные концепции объектно-ориентированного
программирования
.3 Программирование на языке Object Pascal
.4 Система визуального программирования Delphi
Глава 2. Методика обучения визуальному программированию
.1 Планирование школьного курса по объектно-ориентированному
программированию
.2 Методика изучения основных разделов
объектно-ориентированного программирования
.3 Методика контроля знаний
Заключение
Список литературы
Приложения
Введение
В данной работе объектно-ориентированное программирование будет
рассматриваться с использованием среды Delphi. В его основе лежит язык Object Pascal. Язык программирования Pascal является базовым в большинстве университетов страны,
в том числе и педагогических. Вследствие этого, практически все учителя
информатики владеют основами программирования на языке Pascal. Поэтому, именно Delphi, должен стать базовым языком в школах для изучения
объектно-ориентированного программирования.
Выбор Pascal в качестве языка для обучения сделан
неслучайно:
во-первых, Pascal признан сам
лучшим языком для обучения основам программирования;
во-вторых, принципы программирования, заложенные в Pascal, находят свое отражение во всех других
языках, значит, изучив Pascal,
можно легко перейти к любому другому языку программирования;
в-третьих, Pascal изучается в
большинстве высших учебных заведений страны.
Естественно, с появлением объектно-ориентированной версии Object Pascal, встал вопрос об изучении основ
объектно-ориентированного программирования в школьном курсе. Изучение Delphi в школьном курсе является логическим
продолжением непрерывного курса информатики в школе. Овладение основами
программирования на Delphi позволит
учащимся реализовать свои творческие проекты в соответствии с современными
требованиями.
· Delphi - идеальный продукт для школьного курса информатики.
Изучение данного языка программирования в школьном курсе имеет ряд преимуществ:
· Delphi - современный язык программирования, отражающий все
мировые тенденции в информационных технологий;
· концепция языка проста и понятна уже начинающему
программисту;
· в основе Delphi
лежит язык программирования Pascal,
который изучается в большинстве школ;
· изучение Delphi
связано с изучением вспомогательных разделов курса информатики таких, как:
операционные системы, создание и редактирование текста, создание и
редактирование графических объектов, мультимедиа, базы данных, компьютерные
сети.
Целью исследования является проработка проблемы изучения основ
объектно-ориентированного программирования в школьном курсе информатики.
Из определения целей вытекают задачи исследования: изучить теорию
объектно-ориентированного программирования, показать использование визуальной
среды программирования при разработке программ, рассмотреть методику обучения
основам объектно-ориентированного программирования.
Предметом исследования является теория и методика обучения информатике, а объектом
является обучение объектно-ориентированному программированию.
Глава 1.
Введение в объектно-ориентированное программирование
.1
Основные понятия ООП
В основе объектно-ориентированного программирования
лежит идея объединения
данных и действий, которые производятся над этими данными, в одной структуре.
Каждая используемая в программе переменная
имеет смысл только тогда, когда может принимать какие-либо значения. Множество значений,
которые может принимать переменная, является определяющей характеристикой
переменной и называется ее типом. Тип
переменной, в свою очередь, определяет набор операций, которые можно к ней применять.
В объектно-ориентированном программировании базовыми
единицами программ и данных являются классы.
1. Объект
и класс
Класс - это структура данных, которая может содержать в
своем составе переменные, функции и процедуры. Переменные,
в зависимости от назначения, называются полями (field) или свойствами.
Процедуры и функции, входящие в состав класса, называются методами
(классы также называются объектными типами).
В Object Pascal определен
структурный тип class. Объявление типа class похоже на
объявление типа record, однако в нем могут содержаться не только поля-переменные, но и методы. Кроме того, в объявлении класса
используется ряд специальных зарезервированных слов, определяющих область
видимости полей и методов. В отличие от всех остальных типов, тип class
обязательно должен быть описан как пользовательский тип в разделе type (приложение
1).
Затем в разделе var может быть объявлена переменная
объектного типа
(приложение 2).
Имена типов в Delphi принято начинать с большой буквы Т.
Желательно следовать этому правилу для удобочитаемости программы.
При объявлении класса вначале описываются поля, а затем
- методы. Поля класса являются переменными, входящими в состав его структуры.
Они предназначены для использования внутри класса. В описании
объектного типа присутствуют только заголовки методов. Сами методы описываются
в разделе реализации того модуля, в котором объявляется новый объектный тип.
Объектом, или экземпляром класса, называется переменная
объектного типа.
Чтобы объект мог обмениваться данными с другими
объектами, используются свойства. Свойства объекта определяют его состояние.
Технология ООП запрещает работать с объектом иначе, чем через методы, то есть
изменение состояния объекта производится только через вызов методов этого
объекта. Этим существенно ограничивается возможность приведения
объекта в недопустимое состояние и/или несанкционированного разрушения объекта.
Объект можно интерпретировать как модель некоторого
реального объекта или процесса, которая обладает следующими свойствами:
· поддается хранению и
обработке;
· способна
взаимодействовать с другими объектами и вычислительной средой, посылая
сообщения и реагируя на принимаемые сообщения.
В ООП состояние вычислительной среды разделяется на
состояния объектов, что в принципе отличает объектно-ориентированные вычисления
от вычислений, заданных в процедурных языках. Процедуры выполняются в общей
памяти, в то время как объекты выполняют свои операции с учетом данных,
получаемых из сообщений, и собственного состояния.
2. Поля,
свойства и методы
Класс является сложной структурой данных, объединяющей
переменные, функции и процедуры в одном типе данных. Переменные, входящие в
состав класса, называются полями. Процедуры и функции класса обычно называются
методами. Свойства класса представляют собой поля, обращение к которым
производится через специальные методы. Свойства позволяют реализовать важный
принцип объектно-ориентированного программирования, называемый скрытием данных.
Поля
Поля класса представляют собой переменные, объявленные
внутри класса. Фактически, поля класса аналогичны полям записи. Объявление
полей класса должно предшествовать объявлению методов и свойств (приложение 3).
Свойства
Прямое обращение к полям, определяющим состояние объекта,
противоречит принципам объектно-ориентированного программирования. Поэтому
для обмена данными с другими объектами используются свойства, обращение к
которым может выполняться не напрямую, а только через соответствующие методы. В
этом и заключается отличие свойств от полей, к которым можно обращаться
непосредственно.
Для объявления свойств используется служебное слово
property. Так как свойство может обмениваться данными только через
соответствующие методы, то при объявлении свойства обычно указываются три
элемента: свойство и два метода, обеспечивающие обращение к нему (чтение и
запись) (приложение 4).
В объявлении свойства после служебного слова read
указывается имя метода, обеспечивающего чтение значения свойства, а после
директивы write - имя метода, изменяющего значение свойства. Чтение и запись
значения свойства могут производиться только через некоторое промежуточное поле (приложение 5).
· При обращении к
свойству класса нет необходимости в явном виде вызывать методы, обеспечивающие
чтение значения свойства и/или изменение его значения. Синтаксически обращение
к свойству может выглядеть точно так же, как и обращение к полю (но при этом
следует помнить, что эта операция будет выполняться через соответствующие
методы).
· Для обращения к
свойству необязательно использовать методы. Вместо имен методов после слов read
и write в объявлении свойства можно указать просто имя поля (приложение 6).
Для записи предпочтительнее использовать метод, так как
это позволит контролировать корректность изменения значения свойства (например,
попадание величины в допустимый диапазон).
· Если в объявлении
свойства указан только метод (или поле), обеспечивающий чтение, то данное
свойство предназначено только для чтения (read only). Поэтому
изменить его значение в процессе выполнения программы нельзя. Аналогично, если
указан только метод, обеспечивающий запись, то значение свойства при выполнении
программы нельзя считывать; данное свойство является свойством только для записи (write only).
Методы
Методы предназначены для манипулирования данными,
входящими в состав класса. Фактически, методы представляют собой обычные
процедуры и функции, которым разрешен доступ ко всем полям класса.
Методы объявляются в описании класса после объявления
полей. Существуют несколько типов методов, различающихся по механизму
наследования.
Статические методы
Статические методы при их переопределении в
классах-потомках полностью перекрываются. Для статических методов можно
полностью изменить объявление метода. По умолчанию методы считаются статическими,
поэтому для их объявления не требуется никаких дополнительных команд.
Определение адресов статических методов производится на этапе компиляции. При
вызове статического метода выполняется процедура или функция, определяющаяся
только типом объектной переменной. Тип самого объекта, на который данная
переменная ссылается, не
принимается во внимание. Поэтому использование
статических методов не позволяет реализовать концепцию полиморфизма.
Виртуальные и динамические методы
При обращении к виртуальным и динамическим методам
вызываемая процедура или функция определяется только в момент обращения. Такой
механизм называется поздним связыванием. Именно виртуальные и динамические
методы позволяют в полной мере реализовать концепцию полиморфизма. При
объявлении виртуальных и динамических методов используются директивы virtual и
dynamic, соответственно. Остановимся на основных возможностях этих методов.
· При вызове
виртуальных и динамических методов выполняемая процедура или функция
определяется по типу фактического параметра. Для этого используется таблица
виртуальных методов (Virtual Method Table, VMT) в случае виртуальных методов и
таблица динамических методов (Dynamic Method Table, DMT) в случае динамических.
· Таблица виртуальных
методов создается для каждого объектного типа. В ней содержатся адреса
виртуальных методов этого объектного типа. Независимо от количества переменных
данного объектного типа, для него создается только одна таблица VMT. При вызове
виртуального метода
каким-либо экземпляром местонахождение кода реализации данного метода
определяется по таблице VMT для типа данного экземпляра. Взаимосвязь между VMT
и экземпляром класса устанавливается при инициализации объекта. Так как адреса
виртуальных методов при их вызове определяются через VMT объекта, то
гарантированно будут использоваться методы, соответствующие типу объекта.
· В таблице VMT содержатся адреса всех виртуальных методов
класса - как унаследованных от предков, так и переопределенных в данном классе.
Поэтому виртуальные методы вызываются достаточно быстро, но требуют большого
объема памяти. В отличие от виртуальных методов, динамические методы вызываются
медленнее, но зато занимают меньше памяти. Это
объясняется тем, что в таблице динамических методов класса хранятся адреса
только тех динамических методов, которые определены в данном классе. При вызове
динамического метода адрес кода его реализации сначала ищется в таблице DMT,
относящейся к типу данного экземпляра. Если адрес не найден, производится поиск
в таблицах DMT всех классов-предков в порядке иерархии.
· Для перекрытия
виртуальных и динамических методов используется служебное слово override.
Рассмотрим пример использования виртуального
метода для реализации концепции полиморфизма. С этой целью объявим методы
класса «окружность», которые переопределяются в классе «кольцо», как
виртуальные (приложение 7).
При таком определении эти классы являются полиморфными.
Виртуальный метод может быть объявлен с модификатором
final. Такие методы не могут быть перекрыты в потомках
класса.
Также следует упомянуть о понятиях, не изучаемых в школьном курсе. Это
абстрактные методы, перекрытие методов, конструкторы и деструкторы и
перегружаемые методы. Все они подробно изучаются в средне-специальных и высших
учебных заведениях.
Области видимости
В классах языка Object Pascal существует возможность
разграничивать области видимости полей и методов. Область видимости задается
специальным зарезервированным словом. Различаются пять вариантов областей
видимости. Рассмотрим 3
основные. Опубликованную область и область автоматизации оставим без
рассмотрения.
· Общая область
видимости задается директивой public. Она не накладывает
никаких ограничений на видимость. Поля и методы категории public доступны для
других объектов в любом модуле, который ссылается на модуль, содержащий
описание класса.
· Личная область
видимости задается директивой private. С ее помощью реализуется минимальная
область видимости. Вне модуля, в котором определен класс, элементы категории
private недоступны. Использование области видимости private позволяет полностью
скрыть особенности внутренней реализации класса.
· Защищенная область видимости
задается директивой protected. Элементы категории protected помимо модуля, в
котором определен класс, доступны в классах, являющихся потомками данного, даже
если они определяются в других модулях.
Области видимости указываются не для каждого элемента
класса - директива задает область видимости для всех следующих за ней
элементов, пока не будет указана другая директива.
Обработка исключительных ситуаций
Исключительная ситуация - это событие, прерывающее
нормальное выполнение программы. Иначе говоря, исключительная ситуация является
ошибкой, возникающей во
время выполнения программы. В языке Object Pascal существуют специальные
средства для обработки исключительных ситуаций.
Исключительные ситуации, возникающие во
время выполнения программы, описываются в языке Object Pascal с помощью
специального объектного типа Exception. На базе этого типа определен ряд
дочерних классов, соответствующих наиболее типичным исключительным ситуациям.
Имена классов-потомков Exception начинаются с буквы Е.
В Object Pascal определены две конструкции для работы с
исключительными ситуациями: try...except и try...finally.
Блок try...except
Блок try...except применяется для реакции на конкретную исключительную
ситуацию (приложение 8).
Если при выполнении операторов, расположенных в разделе
try, не возникает исключительная ситуация, то обращения к разделу except вообще
не происходит. Если же в разделе try возникает исключительная ситуация, то
управление сразу передается разделу except. Раздел except содержит набор
операторов on...do, определяющих реакцию на исключительные ситуации.
Между ключевыми словами on и do указывается имя класса исключительной ситуации.
Оператор, расположенный после слова do, предназначен для ее обработки (после
обработки исключительной ситуации управление не передается назад в раздел try).
Блок try...finally
Блок try...finally используется в тех случаях, когда необходимо выполнить
некоторые действия даже в случае возникновения исключительной ситуации
(например, освободить занятую память) (приложение 9).
В данной конструкции сначала выполняются операторы,
расположенные в разделе try. Если при их выполнении не возникло
исключительной ситуации, то выполняются операторы, расположенные в разделе
finally. Если же при выполнении операторов в разделе try возникает
исключительная ситуация, то управление сразу передается первому оператору
раздела finally.
Эта конструкция не обрабатывает исключительную ситуацию,
а лишь служит для защиты выделенных ресурсов, позволяя освободить их даже в
случае возникновения исключительной ситуации.
Исключительную ситуацию можно программно вызвать с
помощью специального оператора raise.
1.2 Основные концепции объектно-ориентированного программирования
Объектно-ориентированное программирование базируется на
трех основных принципах: инкапсуляции, наследовании и полиморфизме.
Изучение принципов является обязательным элементом курса.
1. Инкапсуляция
Инкапсуляция - это комбинирование данных с процедурами и
функциями, которые манипулируют этими данными. Данные и методы используются для
определения содержания и возможностей объекта. Например, окружность описывается
координатами центра и радиусом (данные). Кроме того, над окружностью можно
проделывать различные действия (методы): вычислять ее длину и площадь
ограниченного ею круга, проверять находится ли некоторая точка внутри данной
окружности и т.п. (приложение 10).
Поля и методы, входящие в состав класса, называются
членами класса. Для работы с классом
необходимо создать его экземпляр, то есть описать в разделе var переменную
данного объектного типа (приложение 11).
Доступ к полям класса производится точно так же, как и
доступ к полям записи, с помощью одного из двух способов:
· указания имени
соответствующего поля после имени экземпляра класса через точку;
· использования
оператора with.
Аналогичным образом производится и вызов методов.
Инкапсуляция позволяет обеспечить защиту данных от внешнего вмешательства
или неправильного использования. Такая возможность обеспечивается разделением доступа к данным и методам объекта, которые
могут обладать различной степенью доступности: от общедоступных до таких,
которые доступны только из методов самого объекта. Обычно открытые члены класса
используются для того, чтобы обеспечить контролируемый интерфейс с его закрытой
частью.
2. Наследование
Наследование - это возможность использования уже определенных классов для
построения иерархии классов, производных от них. Новый, или производный, класс может быть определен на основе уже
имеющегося (базового) класса. При этом новый класс сохраняет все свойства
старого: данные объекта базового класса включаются в данные производного
объекта, а методы базового класса могут быть вызваны для объекта производного
класса, причем они будут выполняться над данными включенного в него объекта
базового класса. Иначе говоря, новый класс наследует как данные старого класса,
так и методы их обработки.
Например, на основе класса, описывающего объект
«окружность», можно создать класс, описывающий объект «кольцо». Причем часть
свойств и методов у этих объектов будет общей: координаты центра, радиус
внешней окружности, метод расчета длины внешней окружности. Поэтому при
объявлении класса «кольцо» не нужно заново описывать эти свойства и методы (приложение 12).
В объявлении
класса TRing указываются функции расчета площади кольца и определения попадания
некоторой точки с заданными координатами внутрь кольца. Хотя имена этих методов
совпадают с именами соответствующих методов для класса TCircle, их реализация должна быть иной, так как они применяются к разным
геометрическим фигурам. Если имена методов, объявляемых в дочернем классе,
совпадают с именами полей или методов родительского класса, то говорят, что они
перекрываются. В зависимости от типа методов результаты перекрытия методов
будут различными. Тип метода определяется служебным словом после объявления
метода.
3. Полиморфизм
Полиморфизм дает возможность определения единственного
имени для действия (процедуры или функции), применимого одновременно ко всем
объектам иерархии наследования, причем для каждого объекта учитываются
особенности реализации данного действия.
На практике это означает способность объектов выбирать метод, исходя из
типа данных. Например, ранее мы рассмотрели пример класса TCircle и дочернего
от него класса TRing. Согласно правилу соответствия типов, принятому в Object
Pascal, переменные дочернего класса всегда совместимы с переменными
класса-предка, причем совместимость односторонняя: переменной класса-предка
можно присвоить значение переменной дочернего
класса, но не наоборот. Таким образом, если имеется какая-либо процедура, для
которой формальным параметром является переменная класса TCircle, то в данную
процедуру можно передать в качестве фактического параметра переменную типа
TRing. Причем классы TCircle и TRing имеют методы с одинаковым названием, но
по-разному выполняемые. Концепция полиморфизма подразумевает, что внутри
процедуры будут вызываться методы, соответствующие не типу формальной
переменной, а типу реально переданной переменной.
Реализация концепции полиморфизма означает, что можно
создать общий интерфейс для группы близких по смыслу действий. Достоинством
полиморфизма является то, что он помогает снижать сложность программ, разрешая
использование единого интерфейса для единого класса действий.
.3
Программирование на языке Object Pascal
В данном параграфе рассматривается язык Object Pascal,
используемый в системе визуального программирования Delphi фирмы Borland.
Object Pascal обеспечивает значительно более высокую
скорость разработки программ за счет обнаружения на этапе компиляции программы
ряда ошибок, которые компилятор языка C++ пропускает без предупреждения. В то
же время Object Pascal в полной мере реализует концепции
объектно-ориентированного программирования, в чем практически не уступает C++.
Язык Object Pascal является строгим языком, что во
многом обусловлено учебным характером его предшественника языка Pascal.
1.
Структура программы в Object Pascal
Программа, написанная на языке Object Pascal, состоит из ряда разделов
(или блоков). Начало каждого раздела указывается с помощью специальных
зарезервированных слов. В общем виде программа Object Pascal имеет следующий
вид:
// Заголовок программыимя_программы;
// Раздел объявления используемых модулей
Модуль_1, Модуль__2, Модуль_3;
// Раздел объявления используемых меток
Метка_1, Метка_2;
// Раздел описания констант
идентификатор_константы_1 = значение_1;
идентификатор_константы_2 = значение_2;
идентификатор_константы_3 = выражение_1;
// Раздел описания пользовательских типов
Туре
Идентификатор_типа_1 = определение_типа_1;
идентификатор_типа_2 = определение_типа_2;
// Раздел объявления переменных
идентификатор_переменной_1 : определение_ переменной 1;
идентификатор_переменной_2,
идентификатор_переменной_3 : идентификатор_типа_2;
// Раздел объявления процедур и функций программыпроцедура_1;
// текст процедурыфункция_1 : определение_типа_1;
// текст функции
// текст программы.
Заголовок программы
В заголовке после служебного слова Program указывается
имя программы. Хотя заголовок программы не является обязательным разделом, при
написании программы в среде Delphi имя программы надо указывать. При этом имя
основного файла проекта должно совпадать с именем программы, указанным в
заголовке.
Заголовок программы может быть только один; он
обязательно должен быть первой строкой программы.
Раздел объявления модулей
Начало раздела объявления модулей указывается с помощью
директивы Uses. Имена используемых модулей просто перечисляются через запятую.
Программа может содержать только один блок Uses, причем он должен следовать
сразу за заголовком программы.
Разделов объявления меток, типов, констант и переменных
может быть несколько, и они могут следовать в любом порядке.
Раздел описания меток
Т.к. использование меток считается плохим тоном в программировании,
объяснение их в школе лучше пройти стороной.
Раздел описания типов
В Object Pascal существует довольно большое количество
стандартных типов и множество типов, описанных в стандартных модулях. Однако
при разработке программ, особенно объектно-ориентированных, программисту
необходима возможность создавать свои пользовательские типы данных, которые
носят название «типы данных, определяемые пользователем». Для описания
пользовательских типов используется раздел объявления типов, начинающийся с
директивы Туре. При создании типа указывается его идентификатор и после знака
равенства приводится описание типа. Самым простым способом объявления
собственного типа является просто объявление типа, аналогичного уже
существующему (приложение
13).
Идентификатор типа может содержать буквы латинского
алфавита, цифры и знак подчеркивания. Первым символом идентификатора
обязательно должна быть либо латинская буква, либо символ подчеркивания.
Раздел переменных
Начало раздела переменных объявляется с помощью
служебного слова Var. В данном разделе должны быть описаны все
переменные программы. Компилятор Object Pascal не допускает использования
переменных, не объявленных в разделе Var.
При объявлении переменной указывается её идентификатор и
через двоеточие тип переменной (приложение 14).
Для нестандартных типов имя типа должно быть описано в
разделе Туре, находящемся выше раздела Var, в котором оно используется.
Идентификатор переменной может состоять из символов
латинского алфавита, цифр и символов подчеркивания. Первым символом
идентификатора обязательно должна быть латинская буква или символ
подчеркивания.
Раздел констант
Раздел констант содержит объявления констант и
начинается с директивы Const. Константа фактически является переменной, значение
которой устанавливается не в процессе выполнения программы, а на этапе
компиляции. Значение константы не может изменяться программно, при попытке
присвоить константе какое-либо значение компилятор выдает сообщение об ошибке.
При объявлении константы указывается идентификатор и через знак
равенства - значение или выражение. Тип константы определяется присваиваемым ей значением или типом результата, получаемого при
вычислении выражения.
Идентификатор константы может состоять из символов
латинского алфавита, цифр и символов подчеркивания. Первым символом
идентификатора обязательно должна быть латинская буква или символ
подчеркивания.
Помимо обычных констант, в Object Pascal можно
использовать так называемые типизированные константы, но изучать их в школе не
целесообразно.
2. Типы данных в Object Pascal
Язык Object Pascal отличается строгой типизацией данных. При присваивании
переменной какого-либо значения компилятор всегда проверяет соответствие типов.
Поэтому все переменные, используемые в программе, обязательно должны быть
описаны в разделе объявления переменных.
Типы данных, используемые в Object Pascal, можно разделить на две группы:
простые и структурные.
В последних версиях языка Object Pascal добавлена возможность объявления так называемых вариантных типов. Вариантные
переменные могут динамически изменять свой тип в процессе выполнения программы.
Изучение их не стоит вносить в школьную программу.
Простые типы
Простыми являются типы данных, которыми напрямую может
манипулировать процессор (или математический сопроцессор). Простые типы делятся
на две группы: порядковые и действительные.
Порядковые типы
Порядковые типы подразделяются на целые, символьные, логические,
перечисляемые и диапазонные.
Целые типы. В переменных целого
типа отсутствует дробная часть. В Object Pascal определено довольно большое
количество стандартных целых типов, различающихся наличием или
отсутствием знака, а также занимаемым объемом памяти. Диапазон значений каждого
типа однозначно определяется этими двумя факторами: для n-разрядного числа
без знака диапазон значений от 0 до 2n, для числа со
знаком - от -2n-1 до 2n-1-1 (приложение 15).
Символьные типы. Классическим методом
представления символьной информации является использование 7-разрядной
кодировки ASCII (American Standard Code for Information Interchange -
Американский стандартный код для обмена информацией). Однако информация обычно
хранится в 8-разрядном участке памяти. С помощью 8 бит можно закодировать 256
символов. Кодировка первых 128 символов является стандартной и используется для
представления букв латинского алфавита, цифр, символов арифметических действий
и других символов. Следующие 128 символов (с кодами от 128 до 255) называются
расширенным набором ASCII. Существует несколько вариантов расширенного набора
символов, которые используются для отображения символов русского алфавита,
символов псевдографики и т.п.
В Object Pascal поддерживается как кодировка ANSI (8-разрядная), так и
кодировка UNICODE (16-разрядная). Соответственно определены два символьных
типа:, или Char, - символьный тип с 8-разрядной кодировкой ANSI;- символьный
тип с 16-разрядной кодировкой UNICODE.
Логические типы. Переменные
логического типа могут принимать только два значения - true (истина) или false
(ложь). В классическом языке Pascal был определен только один логический тип -
Boolean. Переменные данного типа занимали в памяти 1 байт. В последних версиях
языка Object Pascal для совместимости с другими языками определены три
логических типа, различающихся занимаемым объемом памяти:
Boolean, или ByteBool, - 1 байт;
WordBool - 2 байта;- 4 байта.
Перечисляемые типы. Этот тип
определяется перечислением соответствующих идентификаторов, разделяемых
запятыми и заключаемых в круглые скобки. Переменные данного типа содержат дискретные
значения, представляемые не числами, а именами:
type
перечисляемый_тип = (first, second, third);
В данном примере перечисляемый_тип представляет идентификатор
перечисляемого типа, а идентификаторы first, second и third - возможные
значения переменной типа перечисляемый_тип. Если в разделе var объявить
переменную типа перечисляемый_тип, то этой переменной можно будет присваивать
только значения first, second и third. Значения перечисляемых типов не являются
числами и им нельзя присваивать числовые значения.
Диапазонные типы. Переменные
диапазонного типа содержат значения, соответствующие некоторому заданному
диапазону любого порядкового типа.
Действительные типы
Переменные действительного типа используются для
представления чисел, имеющих дробную часть. В современной вычислительной
технике действительные числа представляются в форме с плавающей точкой.
В Object Pascal используются три действительных типа:
Single, Double и Extended, предназначенные для хранения чисел с разрядностью 32, 64 и
80 бит соответственно. В более ранних версиях Object Pascal был определен тип
Real, в котором для представления чисел с плавающей точкой использовались 48
бит. Этот формат был несовместим с форматами математического сопроцессора и
требовал дополнительного времени на преобразование в стандартный вид. В
последних версиях Object Pascal тип Real аналогичен типу Double, а для
совместимости со старыми версиями введен дополнительный тип Real48,
использующий 48 бит.
Помимо форматов с плавающей точкой, в Object Pascal
определены два вещественных формата с фиксированной точкой: Comp и Currency (приложение 16).
Структурные типы
Структурные типы данных позволяют использовать
переменные, содержащие несколько значений. Элементами структурных типов можно манипулировать и по
отдельности, и как единым целым. Элементы структурного типа могут быть как
простыми, так и структурными.
В Object Pascal определены следующие структурные типы:
строки, массивы, множества, записи, файлы, классы.
Строковые типы
В Object Pascal определены три типа для представления
текстовых строк.. Данный тип
аналогичен типу String ранних версий языка Pascal. Его переменные могут
содержать строку длиной до 255 символов с фиксированным размером 256 байт.
Фактически, тип ShortString представляет собой массив символов, индексированный
от 0 до 255. Под хранение символов строки выделяются байты с 1-го по 255-й.
Байт с нулевым номером используется для хранения длины строки.. Переменные этого типа
могут хранить строку практически неограниченной длины. Максимальное количество
символов в такой строке ограничено только адресным пространством компьютера
(например, на компьютерах IBM PC число символов в строке может достигать величины
232). Переменные данного типа занимают в памяти
4 байта и представляют собой адрес первого символа строки.
WideString. Этот тип аналогичен типу AnsiString,
но, в отличие от последнего, символы строки WideChar представляются в
кодировке UNICODE, то есть занимают два байта.
Массивы
В языке Object Pascal, используемом в системе Delphi,
определены два типа массивов - статические и динамические.
Статические массивы идентичны обычным массивам, которые
использовались еще в классическом языке Pascal.
Динамический массив представляет собой указатель на
первый элемент массива. При объявлении динамического массива не указывается его
размер, то есть диапазон изменения индекса (приложение 17).
Хотя переменная динамического массива фактически
является указателем, работа с динамическим массивом почти идентична работе со
статическим массивом. Отличие наблюдается только при выполнении операции
присваивания переменных. Например, если объявлены два динамических массива А1 и
А2, то после выполнения операции присваивания А1 := А2 обе переменных будут
ссылаться на один и тот же фрагмент памяти, то есть фактически будут являться одним
массивом. Изменение элементов массива А1 будет приводить к такому же изменению
тех же элементов массива А2.
Нумерация элементов динамических массивов всегда
начинается с нуля.
Множества
Множество представляет собой набор значений какого-либо порядкового
типа. Для объявления переменной типа множества используется
ключевое слово set (приложение 18).
Минимальный и максимальный порядковые номера типа, на
основе которого создается множество, должны лежать в пределах от 0 до 255.
Записи
Записи представляют собой структурный тип,
объединяющий элементы различных типов (приложение 19).
Элементы записи называются полями. Для обращения к
отдельному полю используется
идентификатор переменной записи и через точку указывается идентификатор поля:
RecVar1.field1. Кроме того, существует специальный оператор with...do,
предназначенный для работы с записями.
Файлы
Файловый тип данных используется для организации
операций файлового ввода-вывода данных. Файловые переменные подразделяются на
типизированные и нетипизированные.
Объявление переменной файлового типа подобно объявлению
массива, только без указания числа элементов. При этом вместо слова array
используется ключевое слово file. Для типизированных файлов после слова file
через of указывается тип элементов файла. Этот тип может быть любым, кроме file
и class. Объявление нетипизированной файловой переменной отличается только тем,
что тип элементов файла не указывается. Для работы с текстовыми файлами используется специальный
тип Text или TextFile (приложение 20).
Классы
Классы являются структурным типом, похожим на тип
record. Однако они позволяют объединять в одной структуре не только данные, но
и методы их обработки - процедуры и функции. Более подробно классы обсуждаются
в первой главе (§ 1.Основные понятия ООП).
Кроме перечисленных типов в Object Pascal существуют
еще указательные и вариантные типы. Но здесь о них речь не пойдёт, т.к. для
усвоения основ объектно-ориентированного программирования учащимся с лихвой
хватит описанных выше типов.
3.
Операторы языка Object Pascal
Операторы предназначены для контроля за порядком
вычисления выражений и количеством вычислений. Операторы, используемые в языке
Object Pascal, условно можно разделить на две группы: простые операторы и
структурные операторы. К простым операторам следует отнести операторы
присваивания и безусловного перехода. Группу структурных операторов составляют
условные операторы, операторы циклов и составной оператор. В работе не приводятся теоретические
данные об операторах языка Object Pascal, т.к. они полностью дублируют
операторы языка Pascal, а курс
рассчитан на учащихся, уже освоивших язык Pascal.
4.
Процедуры, функции и модули Object Pascal
Процедуры и функции представляют собой блоки
программного кода, имеющие точно такую же структуру, как и программа (единственное
отличие заключается в том, что процедуры и функции не могут содержать раздел uses).
Модули позволяют объединить логически связанные типы
данных, переменные, процедуры и функции в один программный блок. Причем все
идентификаторы, описанные в модуле, могут быть использованы в других
программных блоках. Фактически, модуль представляет собой нечто вроде
библиотеки подпрограмм, типов данных, переменных и констант. Для использования
идентификаторов, описанных в модуле в программе (или другом модуле), достаточно
объявить имя модуля в разделе uses.
Как и операторы, правила создания и использования процедур, функций и
методов языка Object Pascal совпадают с правилами языка Pascal, поэтому в данной работе они рассматриваться не
будут.
.4 Система
визуального программирования Delphi
программирование pascal delphi обучение
Система визуального программирования Delphi фирмы
Borland позволяет в полной мере реализовать современные концепции
программирования, включая:
· объектно-ориентированный
подход;
· визуальные средства
быстрой разработки приложений (RAD), основанные на компонентной архитектуре;
· возможность создания
приложений как с использованием библиотеки визуальных компонентов (Visual Component
Library, VCL) для.NET, разработанной Borland, так и с использованием
непосредственно классов.NET;
· возможность работы с
базами данных;
· возможности создания
Интернет-приложений различной сложности.
В Delphi используется язык Object Pascal,
предоставляющий возможность полной реализации основных принципов ООП (инкапсуляция,
наследование, полиморфизм) и обладающий встроенной обработкой исключительных
ситуаций. Компонентная архитектура Delphi является прямым развитием
поддерживаемой объектной модели. Все компоненты являются объектными типами
(классами), обладающими возможностью неограниченного наследования. Компоненты Delphi, поддерживают модель
РМЕ (Properties, Methods, Events - свойства, методы, события), позволяющую
изменять поведение компонентов без создания новых классов.
Интерфейс интегрированной среды разработки Delphi (здесь
рассматривается 7 версия продукта) включает в себя следующие основные части
(приложение 21): главное окно, инспектор объектов, редактор форм, редактор
кода, панель инструментов, дерево объектов.
Главное окно
Главное окно Delphi состоит из нескольких разделов.
§ Главное меню располагается
непосредственно под заголовком главного окна и позволяет получить доступ ко
всем функциям IDE.
§ Панель инструментов представляет собой
группу кнопок, используемых для быстрого доступа к ряду команд главного меню.
Настройка панели инструментов может производиться пользователем в соответствии
с личными предпочтениями. Пользователь может выбрать стиль оформления среды
разработки, характерный для более ранних версий Delphi.
§ Палитра компонентов,
являющаяся
частью панели инструментов, содержит компоненты, которые разработчик может использовать
для создания приложений. В зависимости от вида разрабатываемого приложения
набор компонентов меняется.
§ Инспектор объектов - окно,
расположенное в левой части экрана, в котором отображаются свойства
редактируемого компонента.
§ Редактор кода представляет собой
текстовый редактор, специально приспособленный для редактирования исходных
текстов программ. Редактор поддерживает возможность автоматической генерации
части текстов программ, исходя из визуально спроектированной
части приложения. В процессе проектирования доступен либо режим визуального
проектирования (редактор форм), либо режим редактирования текста. Также
поддерживаются подсветка синтаксических элементов для языков Delphi, C#, C++,
XML/HTML, минимизация блоков текста, автоматический выбор свойств компонента.
Для реализации последней возможности достаточно правильно указать имя
компонента и поставить точку - через короткий промежуток времени редактор
выдаст список доступных свойств и методов объекта.
§ Дерево объектов содержит информацию
об объектах, компонентах, помещенных на форму, в иерархическом виде.
Главное меню
Главное меню содержит полный набор команд, необходимых
для работы в Delphi. Однако вследствие того, что Delphi является средой
визуального программирования, частого обращения к командам главного меню, как
правило, не требуется. Полный перечень всех команд главного меню занял бы
слишком много места, поэтому здесь приводится описание только основных команд.
Меню File
Меню File содержит команды, предназначенные для работы с
файлами.
Часть команд, содержащихся в данном меню (Open, Save, Save As, Close, Exit), -
это обычные команды для работы с файлами, назначение которых не требует
пояснений.
Остальные команды имеют некоторые особенности, поэтому
остановимся на них подробнее.
Команды Open Project и Save Project As используются для
открытия проектов и их сохранения под другим именем.
Под проектом в Delphi понимается набор файлов,
которые необходимы для создания исполняемого приложения, динамически
связываемой, или динамической, библиотеки (DLL), веб-приложения и т. д.
Команды Save All и Close All предназначены для
сохранения и закрытия всех открытых файлов, относящихся к активному
проекту.
Для создания новых проектов и отдельных файлов
используются команды подменю New. Внешний вид этого подменю может меняться в
зависимости от вида разрабатываемого приложения.
Система визуального программирования Delphi позволяет
разрабатывать различные проекты. Среди них обычные приложения, динамические
библиотеки, компоненты Delphi и т. п.
Команда File > New > Other открывает окно
диалога New Items (приложение 22).
В этом окне диалога предлагаются объекты, содержащиеся в
хранилище объектов (object repository). Хранилище объектов содержит шаблоны
кода, которые используются в качестве основы при разработке сложных объектов
или приложений.
Шаблоны объектов, содержащиеся в хранилище, разделены на
несколько групп, которые
отображаются на разных вкладках окна New Items.
Команда Use Unit используется для подключения одного из модулей, уже
включенных в раздел uses проекта.
Команда Print предназначена для печати формы или программы.
Меню Edit
Меню Edit содержит ряд стандартных команд, используемых в приложениях ОС
Windows для редактирования: Cut (вырезать), Сору (копировать), Paste
(вставить), Delete (удалить), Select All (выделить все), Undo (отменить),
Redo (повторить). Остальные команды используются для разработки форм и
дублируют команды контекстного меню редактора форм (выравнивание, порядок обхода
компонентов и т. д.).
Меню Search
Меню Search содержит некоторые распространенные в
приложениях обработки текста команды, предназначенные для поиска и замены: Find
(найти), Replace (заменить), Search Again (повторный поиск), Go to Line Number
(перейти на строку с номером), а также несколько специальных команд,
описываемых далее.
Команда Find in Files предназначена для поиска текстовых строк в
нескольких файлах. При выборе этой команды открывается окно диалога Find Text.
Элементы управления этого окна диалога позволяют задать параметры поиска.
Меню View
Команды меню View предназначены для управления способом
отображения информации.
Остановимся на назначении наиболее важных из команд.
Команда Project Manager открывает окно менеджера
проекта, в котором отображаются все файлы, входящие в текущую группу проектов
(приложение 23).
Менеджер проекта позволяет добавлять проекты в группу,
удалять проекты из группы, выбирать активный проект, сохранять отдельные
проекты или группу в целом. Это окно диалога также может быть использовано для
добавления, удаления, открытия и сохранения отдельных файлов, входящих в состав
проекта. Все перечисленные действия могут выполняться с помощью кнопок,
расположенных в верхней части окна менеджера проектов, либо с помощью контекстного
меню, активизирующегося при щелчке правой кнопки мыши на каком-либо модуле,
входящем в состав группы проектов или отдельного проекта.
Возможность объединять несколько проектов в одну группу
удобно использовать,
например, в тех случаях, когда одновременно с
приложением разрабатываются динамические библиотеки.
Команда Object Inspector применяется для активизации
окна инспектора объектов, которое используется при разработке форм. Более
подробно его назначение рассматривается далее.
Команда Code Explorer активизирует окно браузера кода, в котором
отображается структура программы. Браузер кода существенно облегчает навигацию
в сложных проектах, содержащих большое количество модулей и много программного
кода.
Команда Window List открывает окно, содержащее список всех открытых окон
Delphi и позволяющее сделать активным любое из них.
В подменю Debug Windows входят команды, предназначенные для отладки
приложения.
Команды подменю Desktops позволяют сохранять текущую
конфигурацию среды разработки, в частности информацию о том, какие окна открыты
и где они расположены.
Команда Toggle Form/Unit используется для
переключения между редактором кода и редактором форм.
Команда Units открывает окно, содержащее список всех
модулей, входящих в состав текущего проекта.
Команда Forms позволяет открыть список всех форм
проекта.
Команды подменю Toolbars требуются для настройки панели
инструментов.
Меню Project
В меню Project содержатся команды создания и редактирования проектов.
Команда Add to Project используется для добавления к проекту какого-либо
файла (модуля, файла ресурсов и т. п.). Она полностью дублирует команду Add
контекстного меню менеджера проектов.
Команда Remove from Project позволяет удалять из проекта ненужные модули.
При выполнении данной команды открывается окно со списком всех используемых
модулей, в котором выбираются те из них, которые необходимо удалить из проекта.
Команда Add to Repository добавляет текущий проект в хранилище объектов в
качестве шаблона.
Команда View Source открывает в редакторе кода главный файл проекта.
Команды подменю Languages используются при разработке приложений,
поддерживающих несколько человеческих языков.
Команда Add New Project добавляет в текущую группу проектов новый проект.
Она является аналогом соответствующей команды контекстного меню менеджера
проектов.
Команда Add Existing Project добавляет существующий проект в текущую
группу проектов. Ее назначение аналогично одноименной команде контекстного меню
менеджера проектов.
Команда Compile создаёт исполняемый файл (.exe), код которого соответствует
написанной программе.
Команда Information открывает одноименное окно диалога, в котором отображается информация о текущем проекте.
Команда Options позволяет настраивать свойства.
Меню Run
Меню Run содержит ряд команд, предназначенных для запуска
и отладки приложений.
Команда Program Pause останавливает выполнение
запущенной программы, но не закрывает ее.
Команда Program Reset завершает работу запущенной
программы.
Команды Inspect, Evaluate/Modify и Add Watch
используются для просмотра и изменения значений переменных в режиме отладки.
Команды подменю Add Breakpoint предназначены для
установки и снятия точек останова в программе.
Меню Component
Команды меню Component используются для создания и
настройки новых компонентов.
Команда New Component применяется при разработке нового
компонента.
Команда Install Component служит для добавления
компонентов в среду Delphi.
Меню Tools
Меню Tools содержит команды, вызывающие окна диалога для настройки среды
Delphi, а также окна редактора кода, встроенного отладчика и хранилища
объектов. Кроме того, в команды этого меню позволяют запускать некоторые
внешние программы (утилиты), причем имеется возможность настройки списка
вызываемых программ.
Панели инструментов
Панели инструментов содержат кнопки, обеспечивающие быстрый доступ к
командам главного меню (приложение 24).
Главное окно Delphi включает шесть панелей инструментов: Standard, View,
Debug, Custom, Component Palette, Desktops, каждая из которых может
закрываться и отрываться с помощью команды View > Toolbars > <Название
панели> главного меню или соответствующей команды контекстного меню напели
инструментов.
Содержание каждой панели инструментов может настраиваться пользователем с
помощью окна диалога Customize, открываемого командой View > Toolbars >
Customize главного меню или командой Customize контекстного меню.
Палитра компонентов
Палитра компонентов (Component Palette) является частью
панели инструментов и используется для отображения компонентов, содержащихся в
библиотеке компонентов VCL.
В соответствии с выполняемыми ими функциями все
расположенные в палитре компоненты разделены на группы, каждая из которых
размещается на отдельной странице палитры.
Палитра компонентов полностью конфигурируется
пользователем. Можно создавать новые страницы и удалять существующие, добавлять
и удалять компоненты, перемещать компоненты между страницами.
Стандартная конфигурация палитры компонентов VCL Delphi 7 содержит 32 списка,
каждый из которых предоставляет разнообразные компоненты и элементы управления.
Инспектор объектов
Инспектор объектов (Object Inspector) является одним из
важнейших инструментов разработки приложения и используется для настройки
опубликованных свойств компонента (приложение 25).
Окно инспектора объектов содержит раскрывающийся список и две вкладки:
Properties и Events. На первой из них отображается список свойств выделенного объекта, на второй - список событий, на
которые реагирует объект. Раскрывающийся список содержит перечень всех
компонентов, размещенных на активной в данный момент форме (включая и саму
форму).
Каждая вкладка разделена на две колонки. В левой колонке
перечислены имена свойств или событий, а в правой - их
значения. Значения свойств можно редактировать. Некоторые свойства имеют в поле
значений собственный раскрывающийся список, в
котором выбирается необходимое значение.
Редактор форм
Редактор форм (Form Designer)
представляет собой
инструмент визуальной разработки интерфейса приложения. С его помощью можно
реализовать следующие функции:
· размещение
компонентов на форме;
· модификацию
свойств компонентов и самой формы;
· установку
обработчиков событий.
Установка обработчиков событий
Обработчик события - это процедура, предназначенная для обработки реакции на какое-либо воздействие. События, па которые
компонент может реагировать, перечисляются на вкладке Events инспектора
объектов.
Чтобы установить обработчик для какого-либо события,
выполните двойной щелчок мышью в поле значения события в инспекторе объектов.
При этом происходит переключение в редактор кода, в котором автоматически
генерируется код заголовка процедуры-обработчика события.
Delphi генерирует только заголовок обработчика события.
Реакцию на событие требуется
писать вручную в теле процедуры-обработчика, которая ничем не отличается от
обычной процедуры языка Object Pascal.
Редактор кода
Редактор кода является обычным текстовым редактором,
ориентированным на написание текстов программ. Его настройка производится с
помощью окна диалога, открывающегося командой Tools > Editor Options главного меню или командой Properties контекстного меню.
Глава 2.
Методика обучения визуальному программированию
.1
Планирование школьного курса по объектно-ориентированному программированию
Весь курс условно можно разделить на две категории или составные части:
это теоретический материал курса и практические занятия учащихся за
компьютерами.
Теоретический материал предпочтительнее дать ученикам под запись, т.е. в
виде лекций. К нему можно отнести следующие разделы курса: основные понятия
объектно-ориентированного программирования; структура приложения в Delphi, проект, разработка сценария
проекта, файлы проекта, описание файлов и отчасти идеология программирования
под Windows.
Все остальные составляющие курса относятся ко второй части -
практической. Это: визуальная среда программирования Delphi, инструментарий Delphi, основные категории Delphi; управление компонентами при проектировании, форма,
её свойства, события, методы; разработка и реализация простого приложения;
разработка проекта; графические возможности Delphi и отчасти идеология программирования под Windows.
В занятиях акцент следует сделать на практическую часть курса, а точнее
на изучение среды Delphi и
разработку приложений, т.к. только с помощью практики у учеников появится
реальная возможность понять и осмыслить такие теоретические понятия как
инкапсуляция, наследование, полиморфизм, методы и др.
Тематический план курса приведён в приложении 26.
2.2
Методика изучения основных разделов объектно-ориентированного программирования
Данный параграф посвящён описанию методики изучения отдельных тем ООП в
школьном курсе. Теоретический материал всех разделов можно найти в главе 1
данной работы.
1. Тема
"Основные понятия ООП"
Данная тема целиком и полностью относится к теоретическому наполнению
курса, поэтому изучение её предполагает проведение занятий в форме лекций, т.е.
под запись в тетрадь. Так как тема является довольно объёмной и наукоёмкой, для
её изучение необходимо отвести не менее 5-6 учебных часов.
На уроках по данной теме должны быть освещены такие понятия, как объект,
его формула, правила описания объектов, методология ООП. Следует рассмотреть
объект как совокупность полей данных и методов их обработки, визуализацию
объектов, объекты и компоненты, классы объектов, описание классов, поля, методы
и свойства. Обязательным элементом темы является рассмотрение трёх концепций
ООП: инкапсуляция, наследование и полиморфизм.
Желательно при рассмотрении таких понятий как объект, методы и свойства
приводить примеры из жизни, т.е. не связанные с информационными технологиями и программированием.
Например: автомобиль - объект, свойства - цвет, марка, тип кузова и др., методы
- завести двигатель, повернуть руль и т.д.
Требования к знаниям и умениям учащихся.
Учащиеся должны знать:
· что такое объект;
· что такое класс;
· как описывается класс;
· как описать объект;
· назначение полей класса;
· назначение методов;
· в чем состоит идея визуализации объекта;
· что представляют собой компоненты в Delphi;
· в чем состоят принципы инкапсуляции, наследования и
полиморфизма;
· об иерархии объектов;
· способы обращения к полям внутри метода и другим методам;
· о динамическом характере объектов;
· как использовать объект в программе.
2. Тема
"Идеология программирования под Windows"
Так как объектно-ориентированное и визуальное программирование
предполагает разработку приложений, работающих в ОС Windows, данная тема является необходимой для курса. С точки
зрения формы проведения занятий предполагается разделить изучение темы на две
части: практическую и теоретическую. Лучше начать с практической.
Примерная схема проведения занятия может быть следующей. Посадив учащихся
за компьютеры, учитель рассказывает об интерфейсе Windows, принципах работы Windows-приложений, порядке обработки событий при работе в
среде Windows. При этом учителю следует давать
краткие указания к действиям, выполнив которые ученики смогут увидеть всё это
на примере. Это может быть открытие и закрытие окон, их перемещение и др.
Обязательно нужно сравнить принципы работы Windows-приложений с DOS-приложениями, рассказать, в чём их отличие и в чём их
сходства.
К теоретической части можно отнести описание технологии визуального
проектирования и событийного программирования в среде Windows. Здесь же следует рассмотреть последовательность
действий при разработке Delphi-приложений. Начиная с данной темы, нужно
постепенно готовить учащихся к разработке приложений в Delphi.
Требования к знаниям и умениям учащихся.
Учащиеся должны знать:
· что представляют собой DOS-приложение и Windows-приложение, в чем их принципиальные отличия;
· что такое событие, и какие они бывают;
· что такое отклик на событие;
· что представляет собой обработчик события;
· как работает Windows-приложение;
· что такое визуальное проектирование;
· основные принципы программирования в среде Windows.
3. Тема
"Визуальная среда программирования Delphi. Инструментарий Delphi. Основные категории Delphi: свойства, события, методы"
Под изучение данной темы отводится не более 4 часов учебного времени.
Следует отметить, что для того, чтобы вести курс обучения ООП учитель должен не
только знать теорию ООП, но и владеть как минимум одним ОО языком, в частности
знать Delphi. Практический подход к изучению
напрашивается сам собой.
В процессе прохождения темы ученики должны изучить окна в Delphi (главное окно, окно формы, инспектор
объектов и т.д.), их структуру. Необходимо рассмотреть свойства в качестве
атрибуты объекта, примеры свойств. Лучше всего в качестве примера привести
свойства формы, а именно свойства, от которых зависят размеры и расположение
форм на экране. Это высота, ширина, свойство видимости, координаты левого
верхнего угла формы (Left, Top, Width, Height,
Visible).
Очень важным является объяснить учащимся, что свойства компонентов
(объектов) можно менять не только визуально через окно Инспектора объектов, но
и программным путём. Также следует объяснить разницу между изменением свойств
на этапе проектирования программы и изменением их на этапе выполнения
программы.
Отдельное внимание нужно уделить изучению инспектора объектов. Особый
акцент нужно сделать на создание с его помощью событий, т.е. откликов объектов
на внешние воздействия. Это события как свойства процедурного типа, события
мыши, клавиатуры и системные события. Учеников надо научить использовать методы
обработки событий.
На последнем уроке по данной теме рекомендуется предложить учащимся
создать приложение с простейшим обработчиком события. Примером такой программы
может стать создание кнопки для выхода из программы. Научить учеников размещать
кнопку на форме нужно заранее. Перед тем, как ученики приступят к выполнению
задания, нужно обсудить с ними порядок их работы и написать на доске метод для
закрытия программы. Это могут быть методы:
Application.terminate;
Close;
Halt;
Следует объяснить ученикам различия в результатах использования этих
методов. Close закрывает лишь активную в данный
момент форму, тогда как другие просто прерывают выполнение программы. Результат
их выполнения не имеет различий в одном случае - когда в приложении
используется только одна форма.
Требования к знаниям и умениям учащихся
Учащиеся должны знать:
· назначение основных окон Delphi;
· назначение основных команд меню;
· инспектор объектов, его страницы свойств и событий;
· способы изменений свойств, в чем их отличие.
Учащиеся должны уметь:
· изменять свойства двумя способами;
· написать простейший обработчик события.
Основными файлами проекта являются модуль проекта, описание формы и
модуль формы, которые автоматически генерируются после создания нового
приложения и при сохранении записываются в файлы с расширениями dpr, dfm и pas,
соответственно. Помимо этих трёх основных файлов проект содержит ещё три файла,
в которых находится служебная информация:
§ файлы с расширениями dof и cfg содержат сведения о параметрах
проекта, заданных в окне диалога Project Options;
§ файл с расширением res -
это файл ресурсов проекта.
Ученики должны знать, что модуль формы проекта (pas) - это текстовый файл, содержащий код программы,
относящийся к определённой форме. Файл описания формы (dfm) содержит описание свойств формы и компонентов,
размещенных на форме.
Следует объяснить учащимся, что хранить файлы одного проекта лучше всего
в отдельной папке; это и удобно, и соответствует компьютерной грамотности и
хорошему тону программирования.
Практически ученикам нужно предложить открыть файлы формы, проекта и
модуля формы уже сохранённого проекта с помощью текстового редактора (блокнот)
и изучить их.
Требования к знаниям и умениям учащихся.
Учащиеся должны знать:
· что входит в процедуру разработки сценария Delphi-приложений;
· какие основные типы файлов входят в Delphi-приложение
(проект) и их назначение.
Учащиеся должны уметь:
· создавать папки проектов и понимать назначение хранящихся в
них файлов;
· устанавливать свойства компонентов с помощью инспектора
объектов;
· описывать методы обработки событий в файле программных
модулей.
Учащиеся должны быть ознакомлены:
· с назначением файлов ресурсов, опций, настроек.
5. Тема
"Управление компонентами при проектировании. Форма, её свойства, события,
методы".
Изучение данной темы предполагает чисто практический подход. Причём здесь
речь пойдёт не о создании приложений, а о многочисленных возможностях среды Delphi. Это работа с компонентами:
помещение на форму, выделение компонента, удаление компонента, копирование;
использование встроенной помощи. Также рассматриваются форма и её свойства,
задание размеров и положения формы, задание цветов.
Кроме всего прочего в данной теме рассматриваются многочисленные
возможности по настройке проектов Delphi. Например: заголовок формы, значок формы, видимость формы, использование
файлов справки.
К содержанию темы также относятся основные события формы. Это события
создания, появления формы, её активизации и др. (OnCreate, OnShow, OnActivate).
Требования к знаниям и умениям учащихся.
Учащиеся должны знать:
· способы работы с компонентами в Delphi;
· что представляет собой форма в Delphi;
· основные свойства формы;
· основные события формы.
Учащиеся должны уметь:
· помещать компоненты на форму (различными способами);
· выделять компоненты;
· копировать компоненты;
· изменять свойства компонентов визуально, с помощью инспектора
объектов и программно;
· получать помощь (обращаться к справочнику) по работе с
компонентами;
· задавать размеры и положение формы на экране;
· изменять заголовок и создавать значок формы.
6. Тема
"Разработка и реализация простого приложения".
Данная тема является сугубо практической. Пользуясь ранее полученными
знаниями, учащиеся должны создать простейшее приложение. В качества такого
приложения может быть рекомендована программа "Вычислитель скорости бега
спортсмена", которая рассчитывает скорость в зависимости от расстояния и
времени и выдает на экран результат (приложение 27).
Разработка приложения в методическом плане складывается из следующих
этапов:
) Постановка задачи, включающая:
· точную формулировку решаемой задачи;
· изображение на бумаге всего того, что планируется увидеть на
экране, т.е. создание кадра; кадров может быть один или несколько, но в данной
теме рекомендуется обойтись одним;
· написание сценария работы приложения.
) Разработка формы.
) Обработка событий.
Требования к знаниям и умениям учащихся.
Учащиеся должны уметь:
· четко формулировать задачу и оценивать возможность её решения
средствами Delphi;
· изображать на бумаге будущий кадр;
· писать простейшие сценарии;
· разрабатывать простую форму, задавая шрифты, цвета, размеры,
расположение на экране;
· задавать стиль формы;
· описывать обработку несложных событий.
7. Тема
"Разработка проекта".
Данная тема является продолжением предыдущей, но на более высоком уровне
требований к навыкам учащихся. Учителю следует выбрать проект, при реализации
которого учащиеся освоят новые для них возможности Delphi.
В качестве примера такого проекта можно предложить разработать программу
просмотра картинок. Пусть приложение состоит их двух форм: главной формы -
заставки и рабочей формы, где и развернутся все основные события (загрузка
картинок с помощью меню Файл) (приложение 28).
Для получения необходимого эффекта, ученикам нужно будет поместить на
вторую форму следующие компоненты: Image, MainMenu и OpenPictureDialog (Изображение, Главное меню и
Диалоговое окно открытия картинки). От учителя требуется научить учеников
использовать эти компоненты, т.е. писать обработчик событий для Главного меню и
Диалогового окна (приложение 29).
Требования к знаниям и умениям учащихся.
Учащиеся должны уметь (дополнительно к полученным ранее умениям):
· пользоваться и создавать меню, переключатели, диалоговые
окна;
· создавать и подключать вспомогательные формы.
8. Тема
"Графические возможности Delphi".
Как и две предыдущие, данная тема предполагает практическое её изучение.
Будут подробнее изучаться способы вывода графической информации средствами
среды Delphi. Как известно компьютерная
графическая информация делится на два вида: векторная и растровая. В Delphi имеется возможность использовать оба
вида. Однако если растровую графику можно просто изобразить на форме с помощью
компонента Image, то векторную графику можно
формировать программным путём с помощью компонента Shape и свойства Canvas.
Также следует рассказать о встроенном в Delphi редакторе изображений Image Editor.
Требования к знаниям и умениям учащихся.
Учащиеся должны знать:
· какие графические возможности предоставляет Delphi.
Учащиеся должны уметь:
· размещать на форме готовую картинку;
· создавать свою картинку, используя Image Editor;
· изображать простые геометрические фигуры, использовать
штриховку и закраску;
· формировать изображения программным способом.
.3
Методика контроля знаний
Проблема контроля знаний по курсу ООП в школе видится весьма трудной.
Если теоретические знания учащихся можно проверить при помощи проведения
опросов или тестов, то с практическими навыками история совсем другая. Взять
хотя бы домашнее задание. Ведь даже в наш век информационных технологий не у всех
учеников есть возможность заниматься дома, т.к. у них нет компьютеров. Такие
учащиеся заметно отстают в скорости и эффективности работы от своих
сверстников, у которых дома есть компьютер. Поэтому учитель не может дать на
дом практическое задание. Выход из такого положения может быть, например,
следующим: перед каждым практическим занятием учитель заранее предупреждает о
том, чем они будут заниматься и какие приложения будут строить. А в качестве
домашнего задания ученикам следует разрабатывать алгоритмы программ, сценарии
создания проектов, обдумывать отдельные блоки программы (например, обработчики
событий).
Что касается контрольных срезов теоретических знаний, то, как уже было
сказано выше, их можно провести в тестовой форме. Причём в тестовые вопросы
можно помещать не только вопросы из основ объектно-ориентированного
программирования, но и вопросы, связанные со средой Delphi. Например: какова функция Инспектора объектов, зачем
нужна Панель компонентов и др.
Заключение
ООП в настоящее время занимает ведущее место в разработке
профессиональных программных средств. Ознакомление с его основами в школьном
курсе информатики представляется вполне возможным и полезным для тех учащихся,
которые ориентируются на профессии, связанные с разработкой компьютерных
программ.
В ходе изучения данного курса будут решены три круга задач:
· освоение методологии ООП;
· овладение техникой ООП на одном из языков;
· введение учащихся в проблематику, адекватную данному подходу,
расширение общего кругозора (т.е. общеобразовательный компонент).
При этом немаловажную роль играет выбор языка программирования. Быстро
растущая популярность визуального программирования (которое не тождественно
классическому объектному, но связано с ним многими общими идеями) в системах
программирования типа Delphi, Visual Basic, C++Builder делает привлекательной идею положить одну из них в
основу курса. На этот счёт в педагогической литературе высказываются различные
точки зрения.
Одна из них состоит в том, что несомненная занимательность и облегченность
создания программ визуально-объектным способом не вполне соответствует усвоению
идей и методов объектного программирования при проведении относительно
короткого курса. Другие аргументы в пользу ориентации в школьном курсе
информатики на традиционные объектные средства, содержащиеся в версиях языка
Турбо Паскаль от 5.5 до 7.0, - несомненная преемственность по отношению к курсу
программирования на Паскале, существенно меньшие требования к компьютеру.
Другая, в значительной мере противоположная точка зрения связана с
ориентацией в первую очередь на систему программирования Delphi. Delphi
является системой объектного программирования, созданной на базе Паскаля; по
оценке специалистов, её профессиональный уровень очень высок.
В любом случае следует понимать, что методика изучения в школе любых
видов объектного программирования разработана совершенно недостаточно и что
этот процесс в настоящее время, по существу, находится на начальной стадии.
Список
литературы
1. Лапчик
М.П. и др. Методика преподавания информатики: Учеб. пособие для студ. пед.
вузов / М.П. Лапчик, И.Г. Семакин, Е.К. Хеннер; Под общей ред. М.П. Лапчика. -
М.: Издательский центр "Академия", 2001. - 624 с.
2. Избачков
Ю. С., Петров В. Н. Информационные системы: Учебник для вузов. 2-е изд. - СПб.:
Питер, 2005. - 656 с.: ил.
. Семакин
И.Н., Шестаков А.П. Основы программирования: Учебник. - М.: Мастерство; НМЦ
СПО; Высшая школа, 2001. - 432 с.
. Угринович
Н. Д. Информатика и информационные технологии. Учебник для 10 - 11 классов / Н.
Д. Угринович. - 2-е изд. - М.: БИНОМ. Лаборатория знаний, 2005. - 511 с.: ил.
. Могилев
А.В., Пак Н.И., Хеннер Е.К. Информатика: Учеб. Пособие для студ. пед. вузов /
Под ред. Е.К. Хеннера. - М.:Изд. центр "Академия", 1999.
. Сборник
задач по программированию / Авт.-сост. А.П. Шестаков. - Пермь: Перм. ун-т,
1999.
. Бобровский
С. Delphi 7. Учебный курс. Информ-Пресс;
Питер, 2003.
Приложение 1
type
TMyClass = class
fleld1 : type_definition1;: type_definition2;
procedure method1;method2 : type_definition3;;
Приложение 2
var Object1 : TMyClass;
Приложение 3
= class(TObject) // Объявление нового
класса
FSample : integer; // Поле классаSampleMethod; // Метод класса
end;
Приложение 4
TSampleClass = class(TObject) // Класс со свойством
FSample : integer;
procedure SetProp : TPropType; // Метод записиGetProptNewValue
: TPropType); // Метод чтения
// Объявление свойства
property SampleProp ; TPropType read GetProp write SetProp;d;
Приложение 5
function TSampleClass.GetProp :
TPropType;:=SampleField;;TMyClass.SetProp(Value : TPropType);:=Value;;
Приложение 6
TSampleClass = class(TObject): integer;SampleProp : TPropType
read FSampleFSample;;
Приложение 7
TCircle = class
Х,у : double;: double;area : double;
virtual;circumference : double;inside(x,y:double) : boolean: virtual;
end;= class(TCircle): double;area : double;
override:circumference2 : double;inside(x.y:double) : boolean; override;
end;
Приложение 8
оператор_1;
оператор_2;исключителыная_ситуация_1 do оператор_3;исключительная_ситуация_2
do оператор_4;оператор_N;;
Приложение 9
оператор_1;
оператор_2;
finally
оператор_3;
оператор_4;
оператор_N;;
Приложение 10
type= class
х,у : double;: double;area :
double;circumference : double;inside(x,y:double) : boolean;;
Приложение 11
var: TCircle;
Приложение 12
TRing = class(TCircle): double;area : double;circumference2 :
double;inside(x.y:double) : Boolean;;
Приложение 13
Туре
идентификатор_типа_1 = integer;
Приложение 14
идентификатор_переменной_1 : integer;
Приложение 15
Целые типы Object Pascal
Обозначение
типа
|
Диапазон
значений
|
Занимаемый
объем памяти
|
Без знака
|
|
|
Byte
|
0... 255
|
8 бит
|
Word
|
0... 65 535
|
16 бит
|
LongWord
|
0... 4 294 967
295
|
32 бита
|
Cardinal
|
0...
4 294 967 295
|
32 бита
|
Co
знаком
|
|
|
Shortlnt
|
-128... 127
|
8 бит
|
Smalllnt
|
-32 768... 32 767
|
16 бит
|
Integer
|
-2 147 483 648...
2 147483647
|
32 бита
|
Longlnt
|
-2 147 483 648... 2 147 483 647
|
32 бита
|
Int64
|
-263 … 263- 1
|
64 бита
|
Приложение 16
Действительные типы Object Pascal
Обозначение
типа
|
Диапазон
значений
|
Количество
значащих цифр
|
Объем
памяти
|
Single
|
±(1.5 х 10-45... 3.4 х
1038)
|
7...8
|
4 байта
|
Real48
|
±(2.9 x 10-39... 1.7 x
1038)
|
11...12
|
6 байт
|
Real,
Double
|
±(5 x 10-324... 1.7 х
10308}
|
15...16
|
8 байт
|
Extended
|
±(3.4 х 10-4932... 1.1 х
104932)
|
19...20
|
10 байт
|
Comp
|
-263 + 1... 263 - 1
|
19...20
|
8 байт
|
Currency
|
-922337203685477.5808...
922337203685477.5807
|
19...20
|
8 байт
|
Приложение 17
Var
А ; array of char;
Приложение 18
type= set of AnsiChar;: NumSet;: set of 0..100;
Приложение 19
type= record: integer;,field3 : real;: array[0..4] of char;;:
MyRecType;: record;
Field1 : byte;.field3 : extended;
end;
Приложение 20
r:
file of real; // переменная файла вещественных
чисел
F2 : file; // нетипизированная файловая переменная
F2 : TextFile; // переменная текстового файла
Приложение 21
Интерфейс Delphi
Приложение 22
Окно диалога New Items обеспечивает доступ к хранилищу
объектов
Приложение 23
Окно диалога Project Manager
Приложение 24
Панели инструментов Delphi
Приложение 25
Инспектор объектов
Приложение 26
Тематический план школьного курса "Основы объектно-ориентированного
программирования"
Тема учебного занятия
|
Количество часов
|
1. Основные понятия
объектно-ориентированного программирования
|
6
|
2. Идеология
программирования под Windows
|
2
|
3. Визуальная среда
программирования Delphi. Инструментарий Delphi.
Основные категории Delphi: свойства, методы
|
6
|
4. Структура приложения в Delphi.
Проект. Файлы проекта. Описание файлов
|
2
|
5. Управление компонентами
при проектировании. Форма, её свойства, события, методы
|
2
|
6. Разработка и реализация
простого приложения
|
4
|
7. Разработка проекта
|
6
|
8. Графические возможности Delphi
|
6
|
Всего:
|
34
|
Приложение 27
Приложение 28
Приложение 29
procedure
TForm2.FormClose(Sender: TObject; var Action:
TCloseAction);;;TForm2.N2Click(Sender: TObject);openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName);.Show;;TForm2.N3Click(Sender:
TObject);.Hide;;TForm2.N4Click(Sender: TObject);
begin;;