
- •Содержание
- •Тема 1. Основные понятия
- •1.2. Задача, алгоритм, программа
- •1.2.Структура модуля исходного кода
- •Тема 2. Линейный блок: оператор присваивания, переменная, процедура и функция
- •2.1 Линейный блок
- •2.2. Переменные и константы
- •Синтаксис объявления переменной в ObjectPascal
- •Синтаксис объявления именной константы в ObjectPascal
- •Синтаксис объявления переменных в VisualBasic
- •2.3Типыпеременныхиконстант
- •Var1: type definitions;
- •Var2, var3: type definition4;
- •Var4 : typel;
- •2.4. Простые типы данных
- •2.4.1. Порядковые типы
- •Поддиапазонные типы
- •Перечислимые типы
- •Операции над порядковыми типами
- •2.4.2. Целые переменные
- •Integer Shortint Smallint Longint Byte Word Cardinal
- •Физические целые типы
- •Логические целые типы
- •2.4.3. Вещественные переменные
- •Вещественные типы.
- •2.4.4. Строковые переменные
- •2.4.5. Булевы типы
- •Размеры переменных булевых типов
- •2.5. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Передача параметров
- •2.6 Область видимости переменных, констант, процедур и функций
- •2.7 Стандартные функции
- •Функции преобразования типов
- •Математические функции
- •Функции вещественных типов
- •Функции обработки строк
- •Строковые функции
- •2.8 Операции над данными
- •2.9 Приоритеты операций
- •2.10. Структурные типы
- •2.10.1. Записи
- •1: Variantnamel: varianttype3;
- •2, 3: Variantname2: varianttype4;
- •1: (KinfWorker: String[15];
- •2: (PosAdmin: String[20]);
- •2.10.2. Массивы
- •Var ИмяМассива: array [ТипИндекса1, ...., ТипИндексаN] of БазовыйТип
- •Var MyArray: Array [1..10] of Integer;
- •2.10.3. Множества
- •Var MyAlphaSet: CharSet;
- •2.10.4. Файловый тип
- •2.11. Указательные типы
- •Средства работы с указателями
- •2.12. Процедурные типы
- •2.13. Тип variant
- •Тема 3. Блок принятия решений: операторы ветвления
- •3.1 Оператор if
- •If условие1 then
- •3.3Операторcase
- •Тема 4. Цикличекий блок: операторы повторяющихся действий
- •4.1.Цикл for
- •4.2. Циклы while и repeat
- •4.3. Операторы break и cont inue
- •Тема 5. Работа с текстовыми файлами
- •5.1. Типы доступа к текстовым файлам
- •5.2. Текстовые файлы
- •5.2.2 Бинарные файлы
- •Id : String[12];
- •Тема 6. Работа с классами
- •6.1. Понятие класса
- •6.2. Классы в object pascal
- •6.3. Свойства класса
- •Способ глобальных и локальных переменных
- •Способ процедуры свойств
- •Создание и удалениеобъектов
- •Inherited Create;
- •Inherited Destroy;
- •6.4. Методы класса
- •6.5. Объявление и удаление объектов
- •Литература
2.4.2. Целые переменные
В переменных целых типов информация представляется в виде целых чисел, т.е. чисел не имеющих дробной части. Определенные в Object Pascal целые типы подразделяются на физические (фундаментальные) и логические (общие). При программировании удобнее использовать логические целые типы, которые задают объем переменных в зависимости от типа микропроцессора и операционной среды таким образом, чтобы достигалась максимальная эффективность. Физические целые типы следует применять лишь в тех случаях, когда в первую очередь важны именно диапазон значений и физический объем переменной. В Object Pascal определены следующие целые типы.
Integer Shortint Smallint Longint Byte Word Cardinal
Переменные физических целых типов имеют разные диапазоны значений в зависимости от того, сколько байтов памяти они занимают (что равно значению, возвращаемому функцией SizeOf для данного типа). Диапазоны значений для всех физических типов перечислены в табл. 2.5.
Таблица 2.5.
Физические целые типы
Тип |
Диапазон значении |
Физический формат |
Shortint |
-128-127 |
8 бит, со знаком |
Smallint |
-32 768-32 767 |
16 бит, со знаком |
Longint |
-2 147 483 648-2 147 483 647 |
32 бит, со знаком |
Byte |
0-255 |
8 бит, без знака |
Word |
0-65 535 |
16 бит, без знака |
Диапазоны значений и форматы физических целых типов не зависят от микропроцессора и операционной системы, в которых выполняется программа. Они не меняются (или, по крайней мере, не должны меняться) с изменением реализации или версии Object Pascal. Диапазоны значений логических целых типов (Integer и Cardinal) определяются совершенно иным образом. Как видно из табл. 2.6, они никак не связаны с диапазонами соответствующих физических типов. Обратите внимание, что в Delphi по умолчанию задано 32-разрядное представление.
Таблица 2.6.
Логические целые типы
Тип |
Диапазон значений |
Физический формат |
Integer |
-32 768 - 32 767 |
16 бит, со знаком (SmalIInt) |
Integer |
-2 147 483 648 - 2 147 483 647 |
32 бит, со знаком (Longint) |
Cardinal |
0-65 535 |
16 бит, без знака (Word) |
Cardinal |
0-2 147483647 |
32 бит, без знака (Longint) |
В С и C++ для целых значений определены типы int, short int (или просто short) и long int (или просто long). Тип int из C/C++ соответствует типу Integer из Delphi, a long из C/C++ — Longint из Delphi. Однако Shortint из C/C++ соответствует в Delphi не Shortint, a Smalltlnt. Эквивалент Shortint из Delphi в C/C++— это signed char. Тип unsigned char в C/C++ соответствует типу Byte из Delphi. В C/C++ существует еще тип unsigned long, аналога которому в Delphi нет.
2.4.3. Вещественные переменные
В переменных вещественных типов содержатся числа, состоящие из целой и дробной частей. В Object Pascal определено шесть вещественных типов. Все типы могут представлять число 0, однако они различаются пороговым (минимальным положительным) и максимальным значениями, которые могут представлять, а также точностью (количеством значащих цифр) и объемом. Вещественные типы описываются в табл. 2.7.
Таблица 2.7.