
- •Лабораторная работа № 1 Программирование на языке Object Pascal
- •1. Введение
- •2. Алфавит языка Object Pascal
- •3. Структура программы
- •4. Типы данных
- •5. Выражения и операции
- •6. Операторы
- •7. Структурированные типы данных
- •8. Организация ввода-вывода
- •Выполнить компиляцию и проверку работы программы, последовательно нажимая кнопки “Операция”, “Проверка”, “Закрыть’.
- •9. Процедуры и функции
- •10. Отчет по лабораторной работе
- •Литература
- •Приложение 1 Стандартные подпрограммы преобразования типов
- •IntToStr(Value) - преобразовать целое число в десятичную символьную форму
- •Val(s, V, Code) - преобразовать символьную форму числа в двоичную
- •Приложение 2 Стандартные подпрограммы для "коротких" и "длинных" строк
- •Insert(Source, s, Index) - поместить в строку другую строку
- •Лабораторная работа № 2 Принципы объектно-ориентированного проектирования программ в среде delphi
- •1. Введение
- •2. Основные понятия ооп
- •2.1. Классы
- •2.2 Объекты
- •2.3. Методы
- •2.4. Инкапсуляция и свойства объекта
- •2.5. Наследование
- •2.6. Области видимости в классах
- •2.7. Полиморфизм и виртуальные методы
- •3. Классы и объекты delphi
- •Литература
- •1. Фаронов в.В. Delphi 3.Учебный курс. – м.: “Нолидж”, 1998. Объектно-ориентированное программирование
- •Часть 1
- •391000, Рязань, ул. Гагарина, 59/1
Лабораторная работа № 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 имеет типичную структуру, включающую:
заголовок;
раздел указания используемых модулей;
раздел описаний;
операторный раздел.
В разделе описаний введен новый подраздел, открывающийся ключевым словом threadvar и предназначенный для описания поточно-локальных переменных, используемых для работы с потоками при разработке многопоточных приложений.
4. Типы данных
В языке Object Pascal по сравнению с Turbo/Borland Pascal пересмотрена концепция построения основных типов. Группы целых, символьных и строковых типов подразделяются на две категории:
Фундаментальные (fundamental) типы, формат представления которых в памяти строго фиксируется и будет выдерживаться неизменным во всех последующих реализациях Object Pascal для любых операционных систем и компьютерных платформ.
Родовые (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.