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

Размеры переменных булевых типов

  Тип

Размер

Boolean 

1 байт

ByteBool 

1 байт

WordBool 

2 байт (объем Word)

LongBool 

4 байт (объем Longint)

По аналогии с целыми и символьными типами, подразделяющимися на физические и логические, естественно предположить, что ByteBool, WordBool и LongBool — физические типы, Boolean — логический. Но в данном случае это не совсем так. Все четыре типа различны. Для Object Pascal предпочтителен тип Boolean, остальные определены для совместимости с другими языками программирования и операционными системами. Переменным типа Boolean можно присваивать только значения True (истина) и False (ложь). Переменные ByteBool, WordBool и LongBool могут принимать и другие порядковые значения, интерпретируемые обычно как False в случае нуля и True — при любом ненулевом значении.

Булевы типы в Delphi можно сравнить с типом LOGICAL языка FORTRAN. В Basic, С и C++ булевы типы как таковые отсутствуют. Булевы выражения в этих языках применяются точно так же, как во всех остальных, однако результаты этих выражений интерпретируются не как значения отдельного типа, а как целые числа. Как в Basic, так и в C/C++ булевы выражения дают численные результаты, интерпретируемые как False в случае 0 и True — в случае любого ненулевого значения. Это совместимо с порядковыми значениями булевых выражений в Delphi. В C/C++ простые сравнения дают результат 1 (True) или 0 (False). Это эквивалентно булевым значениям Delphi. Только результат сравнения в Delphi выводится как булевый, а не целый. В большинстве случаев типу Boolean из Delphi соответствует тип char в C/C++. В Basic зарезервированы слова TRUE (эквивалентно константе -1) и FALSE (эквивалентно константе 0). В Basic TRUE меньше FALSE, в Delphi, наоборот, False меньше True.

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

Как и в большинстве языков высокого уровня, в Object Pascalподдерживаются два вида подпрограмм — процедуры и функции. Подпрограммы, не встроенные в системуDelphi, а создаваемые программистом (пользователемDelphi), называются пользовательскими.

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

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

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

Функцияполучает набор параметров (аргументов) и выполняет с ними некоторые действия. Результат этих действий возвращается функцией в то место, откуда она была вызвана.

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

Описание и вызов процедуры

Синтаксис определения процедуры в Object Pascal имеет следующий вид:

procedure Имя_процедуры(формальный_параметр1: тип1;

формальный_параметр2: тип2; . . .) ;

[локальные_обьявления; ]

begin

[операторы; ]

end;

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

Имя_процедуры (фактический_параметр1,

фактический_параметр2, . . .) ;

В качестве примера рассмотрим процедуру Adder (), вычисляющую сумму двух чисел.

//Процедура Adder() вычисляет сумму чисел numl и пшп2 и сохраняет результат в переменной sum

procedure Adder(numl: Real; num2: Real; Var sum: Real);

begin

sum := numl + num2;

end;

В этом коде переменные numl,num2иsumявляются формальными параметрами процедурыAdde(). При вызове процедуры в эти переменные будет записана информация, передаваемая из вызывающей подпрограммы в вызываемую. Список формальных параметров содержит три элемента, это информирует компиляторDelphiо том, что при вызове процедурыAdder() ей нужно передать три формальных параметра. Назначение ключевого слова var, расположенного перед формальным параметромsumбудет рассмотрено позже.

Ниже приведена простая программа тестирования процедуры Adder(). Щелчок пользователя на кнопкеbtnAddактивизирует обработчикAddNumber(), который записывает в переменныеnumlиnum2содержимое полей вводаedtNumlиedtNum2, вызывает процедуруAdder() и записывает результат ее работы в поле вводаedtResult.

//Сложение двух введенных пользователем чисел

Var

rFirstNum: Real;

rSecjndNum: Real;

rSumma : Real;

begin

rFirstNum =2;

rSecondNum =7;

Adder(rFirstNum, rSecondNum, rSumma);

end;

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

Соседние файлы в папке разработка и стандартизация