Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_ЛР1,2_A5_Часть1.doc
Скачиваний:
28
Добавлен:
08.11.2019
Размер:
1.7 Mб
Скачать

45

Лабораторная работа № 1 Программирование на языке Object Pascal

1. Введение

Целью настоящей лабораторной работы является знакомство с основными особенностями и возможностями языка программирования Object Pascal, который занимает центральное место в системе программирования DELPHI.

Язык Object Pascal является дальнейшим развитием языка Turbo/Borland Pascal, но, при сохранении многих общих элементов, имеет ряд отличительных особенностей. Они определяются, главным образом, работой пакета DELPHI в операционной системе Windows и потребностями визуального программирования.

В лабораторной работе относительно подробно рассматриваются основные элементы, актуальные для Object Pascal (за исключением элементов объектно-ориентированного программирования, чему посвящена отдельная лабораторная работа), и опускаются все те, которые присутствуют в обычном Паскале. Рассмотрение сопровождается примерами простых программ, которые составляют практическую часть работы и должны выполняться в ходе лабораторной работы. Невысокая сложность, а в ряде случаев даже примитивность примеров объясняются тем, что они служат лишь для целей иллюстрации тех или иных особенностей языка. Все примеры практической части должны выполняться в среде DELPHI. Их содержание в описании лабораторной работы выделены курсивом.

2. Алфавит языка Object Pascal

Алфавит языка (набор символов) Object Pascal является подмножеством набора символов кода ASCII и по сравнению с алфавитом обычного Паскаля имеет следующие особенности:

  • введен еще один вид комментария, признаком которого служит двойная косая черта //. Все символы после этого признака до конца строки являются комментарием;

  • добавлены следующие новые зарезервированные слова: as, class, except, finalization, finally, initialization, is, on, property, raise, threadvar, try. Их смысл и назначение раскрываются в дальнейшем при рассмотрении соответствующих конструкций языка;

  • введены следующие новые директивы: abstract, automated, cdecl, default, dispid, dynamic, message, nodefault, override, pascal, protected, published, read, register, stdcall, stored, write. Лексемы private, protected, published и automated внутри описания классов действуют как ключевые слова, а во всех остальных случаях – как стандартные директивы.

3. Структура программы

Программа на языке Object Pascal имеет типичную структуру, включающую:

  1. заголовок;

  2. раздел указания используемых модулей;

  3. раздел описаний;

  4. операторный раздел.

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

4. Типы данных

В языке Object Pascal по сравнению с Turbo/Borland Pascal пересмотрена концепция построения основных типов. Группы целых, символьных и строковых типов подразделяются на две категории:

  1. Фундаментальные (fundamental) типы, формат представления которых в памяти строго фиксируется и будет выдерживаться неизменным во всех последующих реализациях Object Pascal для любых операционных систем и компьютерных платформ.

  2. Родовые (generic) типы, формат представления которых в памяти не фиксируется и будет устанавливаться наиболее оптимальным способом для конкретной операционной системы и компьютерной платформы.

К фундаментальным типам относятся:

  • целые типы Shortint, Smallint, Longint, Byte, Word;

  • символьные типы AnsiChar и WideChar;

  • строковые типы ShortString и AnsiString.

К родовым типам относятся:

  • целые типы Integer и Cardinal;

  • символьный тип Char;

  • строковый тип String.

Для вещественных и булевских типов разделение на фундаментальные и родовые типы отсутствует. В целом, как и ранее, все типы разделяются на стандартные (предопределенные) и пользовательские.

В группу стандартных целых типов добавлены два новых типа: Smallint и Cardinal. Их характеристики приведены в табл. 1.

Таблица 1. Целые типы Smallint и Cardinal

Имя типа

Диапазон

представления

Формат

Размер в байтах

Smallint

-32768 .. 32767

Знаковый

2

Cardinal

0 .. 2147483647

Беззнаковый

4

При написании программ рекомендуется отдавать предпочтение типам Integer и Cardinal, так как их использование процессором более эффективно.

В группу вещественных типов по сравнению с реализациями Turbo/Borland Pascal добавлен тип Currency. Его характеристики представлены в табл. 2.

Таблица 2. Вещественный тип Currency

Название типа

Диапазон

представления

Значащие

цифры мантиссы

Размер

байт

Вещественный повышенной точности в формате с фиксированной

точкой

922337203685477.5808..

922337203685477.5807

19 .. 20

8

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

Object Pascal так же, как и Turbo/Borland Pascal, поддерживает четыре булевских типа Boolean, ByteBool, WordBool и LongBool.

В Object Pascal расширена группа символьных типов: к традиционному типу добавлены типы AnsiChar и WideChar (табл. 3).

Таблица 3. Символьные типы AnsiChar, WideChar

Имя типа

Размер в байтах

Кодировка

AnsiChar

1

WideChar

2

Unicode

Тип AnsiChar по своим характеристикам совпадает с типом Char. Первые 256 символов кодировки Unicode в типе WideChar совпадают с символами ANSI-кодировки, но сами типы AnsiChar и WideChar непосредственно несовместимы.

Задание 1. Подготовить и выполнить программу вывода на экран символов ANSI-кодировки, за исключением служебных символов с кодами от 0 до 31.

Примечание. В программе использовать форму, содержащую кнопки “Операция” и “Закрыть” Эту же форму использовать как исходную во всех последующих заданиях, взяв в качестве ее заголовка текст “Задание № “ с указанием текущего номера задания. Для вывода символов использовать компоненту Memo стандартной страницы палитры компонент.

В группу пользовательских типов введены два новых типа: вариантный тип – Variant и тип указателей на классы, описания которых вводятся ключевыми словами class of. Вариантные типы используются для работы с переменными, тип которых на этапе компиляции неизвестен, а также для динамического изменения типа этих переменных во время выполнения. Подробнее о вариантных типах см. [1, п.4.3.7].

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

Задание 2. Подготовить и выполнить программу преобразования шестнадцатеричного числа в десятичное. Шестнадцатеричное число задавать по правилам представления таких чисел в языке, т.е. начиная с символа $. При вводе предусмотреть проверку правильности преобразования.

Примечание. Ввод данных осуществить с помощью компоненты Edit.