Теория и методика изучения основ объектно-ориентированного программирования в школьном курсе информатики
Основные понятия и принципы объектно-ориентированного программирования. Структура программы, типы данных, операторы языка в Object Pascal. Интерфейс интегрированной среды разработки Delphi. Методика обучения визуальному программированию, контроль знаний.
Рубрика | Педагогика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.07.2012 |
Размер файла | 442,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
Содержание
Введение
Глава 1. Введение в объектно-ориентированное программирование
1.1 Основные понятия ООП
1.2 Основные концепции объектно-ориентированного программирования
1.3 Программирование на языке Object Pascal
1.4 Система визуального программирования Delphi
Глава 2. Методика обучения визуальному программированию
2.1 Планирование школьного курса по объектно-ориентированному программированию
2.2 Методика изучения основных разделов объектно-ориентированного программирования
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 Основные понятия ООП
В основе объектно-ориентированного программирования лежит идея объединения данных и действий, которые производятся над этими данными, в одной структуре.
Каждая используемая в программе переменная имеет смысл только тогда, когда может принимать какие-либо значения. Множество значений, которые может принимать переменная, является определяющей характеристикой переменной и называется ее типом. Тип переменной, в свою очередь, определяет набор операций, которые можно к ней применять.
В объектно-ориентированном программировании базовыми единицами программ и данных являются классы.
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 имеют методы с одинаковым названием, но по-разному выполняемые. Концепция полиморфизма подразумевает, что внутри процедуры будут вызываться методы, соответствующие не типу формальной переменной, а типу реально переданной переменной.
Реализация концепции полиморфизма означает, что можно создать общий интерфейс для группы близких по смыслу действий. Достоинством полиморфизма является то, что он помогает снижать сложность программ, разрешая использование единого интерфейса для единого класса действий.
1.3 Программирование на языке Object Pascal
В данном параграфе рассматривается язык Object Pascal, используемый в системе визуального программирования Delphi фирмы Borland.
Object Pascal обеспечивает значительно более высокую скорость разработки программ за счет обнаружения на этапе компиляции программы ряда ошибок, которые компилятор языка C++ пропускает без предупреждения. В то же время Object Pascal в полной мере реализует концепции объектно-ориентированного программирования, в чем практически не уступает C++.
Язык Object Pascal является строгим языком, что во многом обусловлено учебным характером его предшественника языка Pascal.
1. Структура программы в Object Pascal
Программа, написанная на языке Object Pascal, состоит из ряда разделов (или блоков). Начало каждого раздела указывается с помощью специальных зарезервированных слов. В общем виде программа Object Pascal имеет следующий вид:
// Заголовок программы
Program имя_программы;
// Раздел объявления используемых модулей
Uses
Модуль_1, Модуль__2, Модуль_3;
// Раздел объявления используемых меток
Label
Метка_1, Метка_2;
// Раздел описания констант
Const
идентификатор_константы_1 = значение_1;
идентификатор_константы_2 = значение_2;
идентификатор_константы_3 = выражение_1;
// Раздел описания пользовательских типов
Туре
Идентификатор_типа_1 = определение_типа_1;
идентификатор_типа_2 = определение_типа_2;
// Раздел объявления переменных
Var
идентификатор_переменной_1 : определение_ переменной 1;
идентификатор_переменной_2,
идентификатор_переменной_3 : идентификатор_типа_2;
// Раздел объявления процедур и функций программы
Procedure процедура_1;
// текст процедуры
Function функция_1 : определение_типа_1;
// текст функции
begin
// текст программы
end.
Заголовок программы
В заголовке после служебного слова 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-разрядная). Соответственно определены два символьных типа:
AnsiChar, или Char, - символьный тип с 8-разрядной кодировкой ANSI;
WideChar - символьный тип с 16-разрядной кодировкой UNICODE.
Логические типы. Переменные логического типа могут принимать только два значения - true (истина) или false (ложь). В классическом языке Pascal был определен только один логический тип - Boolean. Переменные данного типа занимали в памяти 1 байт. В последних версиях языка Object Pascal для совместимости с другими языками определены три логических типа, различающихся занимаемым объемом памяти:
Boolean, или ByteBool, - 1 байт;
WordBool - 2 байта;
LongBool - 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 определены три типа для представления текстовых строк.
ShortString. Данный тип аналогичен типу String ранних версий языка Pascal. Его переменные могут содержать строку длиной до 255 символов с фиксированным размером 256 байт. Фактически, тип ShortString представляет собой массив символов, индексированный от 0 до 255. Под хранение символов строки выделяются байты с 1-го по 255-й. Байт с нулевым номером используется для хранения длины строки.
AnsiString. Переменные этого типа могут хранить строку практически неограниченной длины. Максимальное количество символов в такой строке ограничено только адресным пространством компьютера (например, на компьютерах 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, поэтому в данной работе они рассматриваться не будут.
1.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. На первой из них отображается список свойств выделенного объекта, на второй - список событий, на которые реагирует объект. Раскрывающийся список содержит перечень всех компонентов, размещенных на активной в данный момент форме (включая и саму форму).
Подобные документы
Характеристика внеклассных занятий по информатике. Функциональные особенности среды программирования SCRATCH. Положения федерального государственного образовательного стандарта. Возможности интерфейса SCRATCH. Методика и организация учебной деятельности.
дипломная работа [1,6 M], добавлен 07.09.2017Изучение XML-ориентированного подхода к созданию баз данных в профильном курсе информатики в средней школе. Логическое представление информации в компьютере. Методика изучения и программа элективного курса "Разработка базы данных на основе языка XML".
дипломная работа [1,1 M], добавлен 18.06.2013Разработка и обоснование системы обучения учащихся объектно-ориентированному программированию и технологии визуального проектирования в профильном курсе информатики на примере электронного образовательного ресурса "Delphi 7. Учимся на примерах".
дипломная работа [5,1 M], добавлен 02.05.2012История и роль школьного предмета "Информатика". Общие вопросы изучения алгоритмизации и программирования в школьном курсе информатики. Основные методы преподавания темы "Основы алгоритмизации и программирования". Разработка урока по исследуемой теме.
курсовая работа [55,5 K], добавлен 22.11.2011Линия информационных процессов как одна из основных содержательных в базовом курсе информатики. Методика проведения практических занятий в курсе. Итоговый контроль знаний в ходе изучения линий. Лабораторная работа на тему: "Представление информации".
курсовая работа [28,4 K], добавлен 08.07.2012Теория и методика обучения информатике и информационно-коммуникационным технологиям в школе. Методы организационной формы обучения. Средства обучения информатики. Методика преподавания базового курса. Обучение языкам программирования, обучающие программы.
учебное пособие [2,1 M], добавлен 28.12.2013Язык программирования HTML: его мультимедийные и графические возможности. Требования к оформлению и созданию Web-сайтов. Методические разработки по изучению "Web конструирования" в школьном курсе информатики и информационно–коммуникационных технологий.
курсовая работа [40,7 K], добавлен 12.09.2012Алгоритмическая содержательная линия школьного курса программирования, средства формализованного описания действий исполнителя. Методика изучения раздела "Алгоритм и исполнители" в курсе информатики. Основные формы представления циклического алгоритма.
курсовая работа [363,8 K], добавлен 06.02.2014Дидактические и методические основы обучения алгоритмизации и программированию в рамках углубленного курса информатики для технологического профиля. Методика изучения программирования на языке Java" с применением элементов электронного обучения.
дипломная работа [2,5 M], добавлен 13.12.2017Виды компьютерной графики, системы цветов. Растровый графический редактор Paint, векторный редактор MS Office. Методика рассмотрения основных понятий компьютерной графики в школьном курсе. Использование информационных технологий при изучении данной темы.
дипломная работа [1,9 M], добавлен 24.06.2011