Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Лекции по Turbo Pascal [22].pdf
Скачиваний:
82
Добавлен:
02.05.2014
Размер:
536.84 Кб
Скачать

Одесский колледж компьютерных технологий “СЕРВЕР”

Пример 4. (Выполнение требования совместимости при разных типах).

{$R+} Var A : Longint; B : Word;

BEGIN A : = 37450; B : = A; Writeln (B) END.

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

Ввод с клавиатуры.

KeyPressed : boolean Анализирует нажатие клавиши клавиатуры (за исключением вспомогательных клавиш - Shift, Alt, NumLock и т.п.). Результат - True, если клавиша на клавиатуре нажата, и False в противном случае.

ReadKey : char. Считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа.

Присваиванием

с: =readkey;

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

c : =readkey;

if ord(с)=0 then c : =readkey;

Параметры-переменные и параметры-значения.

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

Отличие параметров-значений от параметров-перемен- ных:

7

Одесский колледж компьютерных технологий “СЕРВЕР”

параметры-значения только получают значения при вызо-

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

параметры-переменные получают значения, во время вы-

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

Для параметров-значений заводится новая переменная, в которую заносится передаваемое значение. Все изменения этой переменной действуют только в пределах текущей процедуры. При завершении процедуры переменная уничтожается. При этом становится видна исходная переменная (значение которой передавалось как параметр). Но её значение остаётся прежним. При передаче параметра-переменной передаётся не само значение, а адрес исходной переменной. При этом все изменения переменной в процедуре сохраняются при возврате в программу.

В описании подпрограмм перед параметрамизначениями ставится служебное слово var, например:

Procedure Example (x : integer, var y : real);

Категории параметров

 

Параметры-значения

Параметры-переменные

Служебное

---

VAR

слово

 

 

Передаётся

Копия переменной

Сама переменная

 

 

(её адрес)

Изменения

Разрешены

Разрешены

Обратная

Невозможна (ориги-

Возможна

передача

нал не изменяется)

 

8