Процедури, підпрограми та параметри, Детальна інформація

Процедури, підпрограми та параметри
Тип документу: Реферат
Сторінок: 4
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 8.7
Скачувань: 915
program sort31(input, output);

var a, b, c : integer;

procedure swap(xx, yy : integer);

var t : integer;

begin t:=xx; xx:=yy; yy:=t end;

begin

writeln('задайте три цілих:'); readln(a, b, c);

if a>b then swap(a, b);

if b>c then swap(b, c);

if a>b then swap(a, b);

writeln('упорядкування: ', a, ' ', b, ' ', c)

end.

КРАСИВО, АЛЕ НЕПРАВИЛЬНО!

Справа в тім, що при виконанні виклику, наприклад, swap(a, b), змінні xx і yy одержать значення змінних a і b, потім ці значення поміняються місцями, виконання виклику закінчиться, а в змінних a і b залишаться ті ж самі значення, що були перед викликом. Наприклад, якщо змінним a, b, c присвоїти "з зовнішнього світу" значення відповідно 3, 1, 2, то буде надруковано упорядкування: 3 1 2. Слушність цього напису дуже сумнівна.

Отже, при виконанні виклику процедури (чи функції) спочатку параметри одержують значення аргументів, а потім їх зміни ніяк не відбиваються на аргументах (рис.3.3). Тому параметри, що дотепер розглядалися, називаються параметрами-значеннями.

Мова Паскаль допускає в заголовках процедур і функцій означати параметри іншого виду. Вони називаються параметрами-змінними і означаються зі словом var попереду. Так, процедура swap набуває вигляду:

procedure swap(var xx, yy : integer);

var t : integer;

begin

t:=xx;

xx:=yy;

yy:=t

end;

<

>

J

L

t

v

\x00AA

The online video editor trusted by teams to make professional video in minutes