Концепция данных в языке Pascal. Реализация Delphi

Автор работы: Пользователь скрыл имя, 26 Апреля 2013 в 18:52, курсовая работа

Описание работы

Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Мы будем рассматривать концепцию данных на основе среды версии Delphi 5. Delphi 5 имеет высокую производительность для развития Интернет. Представлено множество новых функций и усовершенствований. Некоторые из них, среди многих других, являются: различные макеты рабочего стола, концепция кадров, параллельное развитие, перевод возможности, более интегрированный отладчик, новые возможности Интернет (XML), базы данных ADO.

Файлы: 1 файл

курсовая.doc

— 903.50 Кб (Скачать файл)

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

МОГИЛЕВСКИЙ ГОСУДАРСТВЕНЫЙ УНИВЕРСТИТЕТ

ИМ. А. А. КУЛЕШОВА

Курсовая работа

Концепция данных в языке Pascal.

Реализация Delphi

Куспиц Лилии Александровны

студентки физико – математического

факультета

4-го курса группы  «Е»

Руководитель:

Каменская Наталья Евгеньевна

старший преподаватель кафедры математического анализа и дифференциальных уравнений

 

РЕФЕРАТ

Объем работы: страниц 69. Курсовая работа состоит из реферата, введения, восьми глав, заключения, списка использованной литературы (всего 8 источников), 15 приложений.

Ключевые слова: концепция данных в PASCAL, типы данных в PASCAL.

Таблицы: количество таблиц 5.

Рисунки: количество рисунков 2.

Приложение: количество приложений 15.

Предмет исследования: переменные, константы, концепция данных в языке программирования PASCAL.

Объект исследования: реализация концепции данных в PASCAL на практике.

Цель исследования: детальное рассмотрение теоретических аспектов концепции данных в PASCAL и реализация в DELPHI.

Методы исследования: сравнение, анализ, синтез, обобщение.

Результаты  исследования: структурирование полученных знаний, применение их на практике.

Сфера применения результатов: преподавание программирования.

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ

Delphi — результат развития  языка Турбо Паскаль, который,  в свою очередь, развился из  языка Паскаль. Паскаль был  полностью процедурным языком, Турбо  Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а Delphi — объектно-ориентированный язык программирования с возможностью доступа к метаданным классов. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Мы будем рассматривать концепцию данных на основе среды версии Delphi 5. Delphi 5 имеет высокую производительность для развития Интернет. Представлено множество новых функций и усовершенствований. Некоторые из них, среди многих других, являются: различные макеты рабочего стола, концепция кадров, параллельное развитие, перевод возможности, более интегрированный отладчик, новые возможности Интернет (XML), базы данных ADO.

Интегрированная среда разработки Delphi - это среда, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений. Большинство версий Delphi выпускается в нескольких вариантах: а) стандартная, б) профессиональная версия, в) разработка баз данных предметных областей. Эти варианты различаются, в основном разным уровнем доступа к системам управления базами данных. Последние два варианта являются наиболее мощными в этом отношении. Библиотеки компонентов в различных вариантах практически одинаковы. В Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования.

Любые данные, т.е. константы, переменные, свойства, значения функций или выражения  характеризуются своими типами. Тип  определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК.

Вообще язык Object Pascal характеризуется  разветвленной структурой типов данных (рис.1) . В языке предусмотрен механизм создания новых типов, благодаря чему общее количество используемых в программе типов может быть сколь угодно большим.

Рис. 1Типы данных в Delphi

Характерной особенностью среды Delphi является возможность использования в ней не только собственных типов, но и типов из общей системы типов – CTS(Common Type System). CTS определяет возможность взаимодействия программ и их частей, написанных на разных языках программирования. Фактически все собственные типы Delphi проецируются на соответствующие типы CTS, потому что их и только их способна обрабатывать общеязыковая среда исполнения(CLR). Каждый компилятор, вырабатывающий инструкции, должен частично или полностью использовать CTS, и никакие другие типы данных, кроме указанных в CTS.Набор перечисленных в CTS типов значительно превышает количество типов в реально существующих языках программирования.

Common Type System (сокр. CTS, русск. Стандартная система типов) — формальная спецификация, определяющая, как какой-либо тип (класс, интерфейс, структура, встроенный тип данных) должен быть определён для его правильного выполнения средой .NET. Кроме того, данный стандарт определяет, как определения типов и специальные значения типов представлены в компьютерной памяти. Целью разработки CTS было обеспечение возможности программам, написанным на различных языках программирования, легко обмениваться информацией.

Функции Common Type System:

    • Формирует фреймворк, способствующий межъязыковой интеграции, безопасности типов, а также высокой производительности исполнения кода.
    • Обеспечивает объектно-ориентированную модель, поддерживающую полную реализацию множества языков программирования.
    • Определяет правила, которым должны следовать языки, что в том числе позволяет гарантировать, что объекты, написанные на разных языках, могут друг с другом взаимодействовать.
    • CTS определяет правила, гарантирующие, что типы данных объектов, написанные на разных языках, смогут взаимодействовать друг с другом.
    • CTS определяет правила для видимости типов и доступа к членам типа, то есть CTS утверждает правила, по которым сборки формируют области видимости для типа.
    • CTS определяет правила, управляющие наследованием типов, виртуальными методами и продолжительностью существования объектов.
    • Языки, поддерживаемые платформой .NET, могут реализовывать все или некоторые из общих типов данных.

Спецификация для CTS закреплена в стандарте Ecma 335.

Данные, независимо от типа, имеют некоторое значение и в программе предстают как константы или переменные. Данные, которые получили значение в начале программы и по своей природе изменяться не могут, называются константами. Константами, например, являются скорость света в вакууме и соотношение единиц измерения (метр, сантиметр, ярд, фут, дюйм), которые имеют научно обоснованные или традиционно принятые постоянные значения. Константы описываются с помощью зарезервированного слова const. За ним идет список имен констант, каждому из которых с помощью знака равенства присваивается значение. Одно присваивание отделяется от другого с помощью точки с запятой. Тип константы распознается компилятором автоматически, поэтому его не надо указывать при описании. Примеры констант:

const

DelphiLanguage = 'Object Pascal';

KylixLanguage = DelphiLanguage;

Yard = 914.4;

Foot = 304.8;

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

Значение константы можно задавать и выражением. Например:

const

SecondsInMinute = 60;

SecondsInHour = SecondsInMinute * 60;

SecondsInDay = SecondsInHour * 24;

При объявлении константы  можно указать ее тип:

const

Percent: Double = 0.15;

FileName: string = 'HELP.TXT';

Переменные в отличие  от констант могут неограниченное число раз менять свое значение в процессе работы программы. Если в начале программы некоторая переменная X имела значение 0, то в конце программы X может принять значение 10000. Так бывает, например, при суммировании введенных с клавиатуры чисел.

Переменные описываются с помощью зарезервированного слова var. За ним перечисляются идентификаторы переменных, и через двоеточие указывается их тип. Каждая группа переменных отделяется от другой группы точкой с запятой. Например:

var

Index: Integer; //  переменная целого типа данных

FileName: string; //  переменная строкового типа данных

Sum, Profit: Double; // группа переменных вещественного типа данных

В теле программы переменной можно  присвоить значение. Для этого  используется составной символ :=, например:

Sum := 5000.0;// переменной Sum присваивается 5000

Percent := 0.15;// переменной Percent присваивается 0.15

Profit := Sum * Percent; // вычисляется произведение двух переменных

// и его результат присваивается переменной Profit

Вы можете присвоить  значение переменной непосредственно при объявлении:

var

Index: Integer = 1;

Delimiter: Char = ';';

Объявленные таким образом  переменные называются инициализированными. На инициализированные переменные накладывается  ограничение: они не могут объявляться  в подпрограммах (процедурах и функциях). Если переменная не инициализируется при объявлении, то по умолчанию она заполняется нулем.

Каждый используемый в программе элемент данных должен быть описан в разделе const или var. Исключение составляют данные, заданные непосредственно значением, например:

Write(100, 200); // 100 и 200 - данные, заданные значением

Тип определяет множество значений, которые могут принимать элементы данных, и совокупность допустимых над ними операций.

С помощью типов данных программист указывает компилятору, как хранить информацию в программе. При объявлении переменной необходимо указать ее тип. Одни типы уже определены в языке, другие программисту приходится задавать самому. В ранних языках программирования допускалось ограниченное число типов данных, и Pascal оказался одним из первых языков, допускающих определение в программе новых типов.

Типы данных, определяемые пользователем, обычно задаются в разделе  определения типов программы  или модуля (unit), однако это можно  делать и внутри процедур или функции. Объявления типов действуют в пределах того блока, в котором они размещены. Вне этого блока ссылаться на такие типы нельзя. Внутри же они заменяют все внешние типы с тем же именем. Объявленные типы данных можно применять в любом месте области их видимости; запрещена только ссылка определяемого типа на самого себя (тут, однако, есть одно исключение, касающееся указателей).

Объявления типов в Pascal являются для компилятора чем - то вроде схем, которые он должен запомнить на случай, если вдруг встретит в программе ссылки на тот или иной тип. Само по себе объявление типа не вносит в программу никаких изменений.

Что же касается объявлений var, то они задают компилятору некоторые  действия, связанные с ранее объявленными типами. Тип переменной ограничивает как ее значения, так и операции, которые можно выполнять с этими значениями.

Определения типов и  переменных могут размещаться в  нескольких местах компонентов программы.

Далее более подробно рассмотрим описание всех типов.

 

    1. ОБЩАЯ СИСТЕМА ТИПОВ

Все типы CTS делятся на две группы: значимые и ссылочные.

Значимые типы являются контейнерами двоичных значений. Например, к значимым относится логический тип, имеющий два возможных значения — ноль и не ноль. Значимым является и тип Char, имеющий значения в диапазоне от О до 65 535. Этот тип кодирует символы Unicode. Подавляющее большинство значимых типов предопределено в конкретном языке программирования (в том числе в Delphi). К значимым относятся также и некоторые типы, определенные программистом, — например, перечисления. Значения значимых типов распределяются в локальной памяти программы, в том числе в стеке.

Ссылочные типы содержат указатели на данные, размещенные в памяти компьютера. Они распределяются в общей памяти (в куче). Ссылочные типы бывают самоописываемыми (self-describing), указателями и интерфейсами. Самоописываемые типы, в свою очередь, делятся на классы и массивы (рис. 2).









Рис. 2 Схема общей системы типов

Переменные значимых типов имеют собственную копию  данных, и действия над одной переменной относятся только к этой копии. Действия над переменными ссылочных типов относятся к некоторым объектам и могут влиять сразу на несколько ссылочных переменных. Пусть, например, имеются две переменные значимого типа (Int1 и Int2) и две — ссылочного (Ref1 и Ref2). Следующий пример иллюстрирует изменение их значений:

program CTS;

{$APPTYPE CONSOLE}

uses SysUtils;

type

Int = class

I: Integer;

end;

var

Int1, Int2: Integer; // Переменные значимого типа

Ref1,  Ref2:  Int; // Переменные ссылочного типа

begin

Int1 := 0;

Int2 := 123;

Ref1 := Int.Create;

Ref2 := Refl; // Обе ссылочные переменные

// указывают на один объект

Ref1.I := 234; // изменение одного изменяет другой

Writeln(Format('Int1=%d Int2=%d',[Int1,Int2]));

Writeln(Format('Ref1=%d Ref2=%d',[Ref1.I,Ref2.I]));

Readln

end.

На экран будут выведены следующие строки:

Int1 = 0 Int2 = 123

Ref1 = 234 Ref2 = 234

Для форматирования вывода используется функция Format.

Каждое значение относится к определенному типу. Значения самоописываемых типов называются объектами. В предыдущих версиях Delphi объектами обычно назывались экземпляры (значения) классов. В Delphi 2005 к объектам относятся также и значения массивов. В то время как по значению самоописываемого типа можно точно определить сам тип, этого нельзя сделать в отношении значений значимых типов и указателей.

Контейнером, определяющим границы видимости типов, в .NET Framework являются сборки (assembly). В Delphi роль сборок играют модули. Таким образом, два одноименных типа, описанные в разных сборках (модулях), — это разные типы. Имя типа в CLR имеет две логические части: имя сборки (модуля) и имя типа, разделенные точкой.

 

  1. ПРОСТЫЕ ТИПЫ

К простым типам относятся порядковые типы, вещественные типы и тип дата - время. Все они в иерархии CTS относятся к значимым.

Порядковые типы отличаются тем, что каждый из них имеет конечное количество возможных значений. Эти значения можно определенным образом упорядочить (отсюда — название типов), и, следовательно, каждому из них можно сопоставить некоторое целое число — порядковый номер значения.

Вещественные типы, строго говоря, тоже имеют конечное количество значений, которое определяется форматом внутреннего представления вещественного числа. Однако это количество настолько велико, что сопоставить каждому из них целое число (его номер) не представляется возможным.

Тип дата-время предназначен для хранения даты и времени. Фактически для этих целей в нем используется вещественный формат.

Информация о работе Концепция данных в языке Pascal. Реализация Delphi