Смекни!
smekni.com

Информационные системы 3 (стр. 11 из 14)

Разделов объявления меток, типов, констант и переменных может быть несколько, и они могут следовать в любом порядке.

Раздел объявления меток. Начало раздела указывается с помощью директивы Label.

Раздел описания типов. В ObjectPascal существует довольно большое количество стандартных типов. Однако при разработке программ, особенно при использовании объектно-ориентированного программирования, программисту необходима возможность создавать свои типы данных. Для описания пользовательских типов используется раздел объявления типов, начало которого определяет директивы Type. Самым простым вариантом объявления собственного типа является просто объявление типа, аналогично уже существующему, например:

Type

id_type1 = integer;

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

Компилятор ObjectPascal не допускает использование переменных, не объявленных в разделе Var. Объявление переменной, не используемой в программе, не приводит к ошибке компиляции, однако компилятор будет выдавать предупреждение о том, что переменная объявлена, но никогда не используется.

При объявлении переменной указывается идентификатор и через двоеточие – тип переменной, например:

var

id_var1: integer;

Идентификаторы переменных одного типа можно перечислять через запятую:

var

id_var1, id_var2, id_var3: integer;

Для нестандартных типов имя типа должно быть описано в разделе Type, находящемся выше раздела Var, в котором оно используется.

Раздел констант. Данный раздел содержит объявления констант и начинается с директивы Const. Константа фактически является переменной, значение которой устанавливается не в процессе выполнения программы, а на этапе компиляции. Значение константы не может изменяться программно. В объявлении константы можно использовать не только конкретные значения, но и выражения. Тип константы определяется присваиваемым ей значением или типом результата, получаемого при вычислении выражения.

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

Простые типы данных

В ObjectPascal к простым типам данных относятся:

- порядковые;

- вещественные;

- тип дата/время.

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

В ObjectPascal к порядковым типам относят:

- целые;

- логические;

- символьные;

- перечисляемые;

- диапазонные.

Целые типы.

Название Диапазон значений Размер, байт
Byte 0 … 255 1
ShortInt -128 … +127 1
SmallInt -32768 … +32767 2
Word 0 … 65535 2
Integer -2147483648 … +2147483647 4
LongWord 0 … 4294967295 4

Логические типы.

Название Размер, байт
Boolean 1

Логические переменные могут принимать одно из двух значений: True или False.

Символьные типы.

Название Размер, байт
Char 1

Перечисляемые типы.

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

В программе перечисляемые типы описываются после ключевого слова Type и находятся в списке внутри круглых скобок:

type

test = (Level1, Level2, Level3);

season = (winter, spring, summer, autumn);

drink = (tea, coffee, cocoa, water)

Первое значение в списке имеет порядковый номер 0, второе 1 и т.д. Максимальный порядковый номер – 65536.

Тип – диапазон.

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

type

number = 1..20

letter = 'a'..'z'

var

number1: 500..700

Минимальное значение не должно быть больше максимального. Тип – диапазон поддерживает все операции базового типа.

Вещественные типы. В переменных вещественных типов содержатся числа, состоящие из целой и дробной частей.

Название Диапазон значений Размер, байт
Real 2.9Е-39 – 1.7Е38 6
Single 1.5Е-45 – 3.4Е38 4
Double 5.0Е-324 – 1.7Е308 8

Стандартные математические функции ObjectPascal.

Название Описание Пример Результат
Trunc (x)Int (x) Возвращает целое значение аргумента Trunc (700.40)Int (700.40) 700700
Frac (x) Выделяет дробную часть числа Frac (56.45) 0.45
Pi Задает число Пи
Random Генерирует случайным образом число от 0 до 1
Sqr (x) Возводит аргумент в квадрат Sqr (2) 4
Sqrt (x) Извлекает из аргумента квад­ратный корень Sqrt (9) 3

Тип дата/время. Для одновременного хранения даты и времени определен тип дата/время. Этот тип определяется стандартным идентификатором TDateTime.

Функции для работы с датой и временем

Название Описание
Date: TDateTime Возвращает текущую дату
DateToStr (D: TDateTime) Преобразует дату в строку символов
DateTimeToStr (D: TDateTime)
DecodeDate () Выделяет в дате и возвращает год, месяц и день
DecodeTime () Выделяет во времени и возвращает часы, минуты, секунды и милисекунды
Now: (D: TDateTime) Возвращает текущую дату и время
Time: (D: TDateTime) Определяет текущее время
TimeToStr (T: TDateTime) Преобразует время в строку

procedure TForm1.Button1Click(Sender: TObject);

var

NowDate: TDateTime;

Year, Month, Day, Hour, Min, Sec, MSec: Word;

begin

NowDate:=Now;

DecodeDate(NowDate, Year, Month, Day);

DecodeDate(NowDate, Hour, Min, Sec, MSec);

end;

Структурированные типы данных

Структурированные типы данных определяют наборы однотипных или разнотипных элементов.

В ObjectPascal определены следующие структурные типы:

- строки;

- массивы;

- множества;

- записи;

- файлы;

- классы.

Строковые типы.

- ShortString (длина до 256 символов);

- String.

Массивы.

- статистические;

var

A: array[1..10] of integer //одномерныймассив

B: array[0..9,0..4] ofdouble //многомерный массив

- динамические.

var

A: array of char;

13.1.3. Простые и структурированные операторы языка

Оператор в программе – это единое неделимое предложение, выполняющее какое-либо алгоритмическое действие.

Все операторы ObjectPascal можно разделить на простые и структурированные.

Простыми считаются операторы, которые не содержат в себе других операторов.

К ним относятся:

- оператор присваивания;

- вызов процедуры;

- пустой оператор.

Структурированными являются операторы, которые состоят из других операторов.

К ним относятся:

- составной оператор;

- условный оператор if;

- условный оператор case;

- оператор цикла repeat;

- оператор цикла while;

- оператор цикла for;

- оператор над записями with.

Составной оператор – это последовательность операторов, заключенный в зарезер­ви­рованные слова begin и end.

Условный оператор if предназначен для выбора к выполнению одного из двух действий, в зависимости от некоторого условия.

ifусловие then действие1 else действие2

Условный оператор case позволяет осуществлять выбор из любого количества вариантов.

Case ключ выбора of

константа выбора : оператор;

константа выбора : оператор;

else

операторы

end;

Оператор цикла repeat организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений.

Repeat

телоцикла

until

условие;

Оператор цикла while. Цикл прекращает работу, если условие ложно.

While условие do оператор;

Оператор цикла forорганизует выполнение оператора заранее известное количество раз.

for параметр цикла:=начальное значение to конечное значение do

оператор;

13.1.4. Процедуры и функции

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

Процедуры

Пример программной реализации процедуры:

procedure proc_id (<списокпараметров>);

const //Раздел описания локальных констант

const1 = value1;

type //Раздел описания локальных типов

type_id1 = type_def1;

var

var_id1: type_id1;

var_id2, var_id3 : type_def2;

begin

… //Текст процедуры

end;

Свойства процедуры:

- количество передаваемых параметров не ограничено;

- внутри процедуры формальные параметры представляют собой обычные переменные или константы;

- вызов процедуры:

proc_id(A,B)

- параметры, указываемые при вызове процедуры, называются фактическими. Они представляют собой переменные или константы, описанные в программе.

Функции

Функции отличаются от процедур тем, что их идентификатор возвращает некоторое значение.

function MyFunc(A: integer) : single

begin

end

13.1.5. Модули Object Pascal

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

Все идентификаторы, описанные в модуле, могут быть использованы в других программных блоках. Для использования идентификаторов, описанных в модуле в программе, достаточно объявить имя модуля в разделе uses.

Структура модуля ObjectPascal имеет вид:

unit name_of_unit; //Заголовокмодуля

interface //Блокинтерфейса