Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
10.02.2015
Размер:
62.46 Кб
Скачать

Лекция 2. Структура программы.

1.Принятые обозначения.

2.Структура консольного приложения, процедур и функций.

3.Классификация типов.

4.Простые типы.

Принятые обозначения.

Язык DELPHI является дальнейшим развитием языка Паскаль (стандарт PASCAL -> BORLAND PASCAL -> DELPHI). Ниже приведена краткая справка по условным обозначениям для синтаксиса и семантики (синтаксические диаграммы).

0. Условные обозначения, принятые в этой справке.

<пояснение на русском языке> - обычно это пояснение переменной, выражения или оператора;

[необязательный элемент] - если нет необходимости его использовать, то можно опустить;

!идентификатоp1, идентификатоp2, ..., идентификаторN! - выбирается что-то одно из этого списка;

== - читай: то же самое, эквивалентно;

<Имя> и <Идентификатор> - синонимы, остальные обозначения (зарезервированные слова, знаки операций, разделители) как в Паскале.

Блок комментариев программиста выделяется {…} или (*...*). Строка комментариев может быть выделена также начальными двумя слешами //.

Структура консольного приложения, процедур и функций.

Program <Имя проекта>; // 0. Заголовок

{$APPTYPE CONSOLE}

<Директива компилятора>

Uses SysUtils;

<Подключение библиотек>

// 1. Глобальные разделы описаний

[Unit1,..]

<подключение своих модулей>

[Label]

<раздел описания меток>

[Const]

<раздел описания констант>

[Type]

<раздел описания типов>

[Procedure]

<раздел описания процедур>

[Function]

<раздел описания функций>

[Var]

<раздел описания переменных>

// 2. Блок

BEGIN

{TODO …} <Приглашение ввода его можно удалить> [<блок исполняемых операторов>]

END.

Структура процедуры.

Procedure <Имя>[(<Список формальных параметров>)]; [<Локальные разделы описаний>]

Begin

[<блок исполняемых операторов>] End;

Структура функции.

Function <Имя>[(<Список формальных параметров>)] : <Тип>;

[<Локальные разделы описаний>]

Begin

[<блок исполняемых опеpатоpов>]

<Имя>:=<Результат - переменная или выражение того же типа, что и тип функции>;

End; <Имя>==result;

<Список формальных параметров>==

[Var]<Имя1> : <Тип1>; [Var]<Имя2> : <Тип2>; и т.д. через точку с запятой с указанием типа. Спецификатор Var указывается только для выходных параметров (результата). Список формальных параметров предназначен для передачи ФАКТИЧЕСКИХ параметров в процедуру (функцию) и возврата результата из процедуры опять же ФАКТИЧЕСКИМ параметрам. Фактические параметры должны быть описаны в основной программе и замещают собой формальные параметры в момент ОБРАЩЕНИЯ к процедуре по ее имени в блоке исполняемых операторов:

<Имя>[(<Список фактических параметров>)]; <Список фактических параметров>==<Имя1>,<Имя2>, и т.д.

через запятую, но уже без указания типа (он указан в Var вызывающей программы)

Формальные и фактические параметры должны соответствовать по типу и порядку следования в списке, но могут иметь разные имена.

Передача результата из функции производится через ее имя или переменную result. Это позволяет использовать обращение к функции непосредственно в выражении или в качестве фактического параметра при обращении к другой процедуре или функции. Процедура этого не может. Она всегда вызывается отдельно. Допускается вызов функции как процедуры отдельно без присваивания результата некоторой переменной. Результат, естественно, будет потерян, но сами действия будут выполнены.

Пример.

Создать программу с функциями, вычисляющими сумму и разность целых чисел и с процедурой, определяющей разность квадратов целых чисел. Исходные данные в программе задать присваиванием для значений 5 и 3.

program ProjectLec2;

{$APPTYPE CONSOLE} Uses SysUtils;

Раздел

описаний процедур и функций

Раздел описаний переменных

Блок

Для данной задачи функции A и S можно определить внутри процедуры Q, поскольку в программе они нигде отдельно не используются. В этом случае функции A и S становятся локальными и использовать их в основной программе нельзя.

Procedure Q(Var p : integer; x, y : integer);

Begin

p:=A(x,y)*S(x,y);

End;

Локальный раздел описаний процедур и функций

Классификация типов

Концепция типов.

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

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

Типы подразделяются на:

ПРОСТЫЕ

СТРУКТУРНЫЕ

УКАЗАТЕЛИ

Простые типы

К простым типам относятся порядковые и действительные:

ПОРЯДКОВЫЕ

• ЦЕЛЫЕ

Shortint (signed 1)

Byte

(unsign 1)

Smallint

(signed 2)

Word

(unsign 2)

Integer

(signed 4)

Cardinal (unsign 4)

Int64

(signed 8)

 

 

Longint == integer

 

Longword == Cardinal

• СИМВОЛЬНЫЕ Сhar,

AnsiChar,

WideChar

ЛОГИЧЕСКИЕ boolean

ПЕРЕЧИСЛЕНИЕ (нет пpедопpеделенного имени типа)

ДИАПАЗОН (имя типа совпадает с базовым типом)

ДЕЙСТВИТЕЛЬНЫЕ

Real, Real48

Extended

Single

Comp

Double

Currency