Процедури, підпрограми та параметри, Детальна інформація
Процедури, підпрограми та параметри
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
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
© Referats, Inc · All rights reserved 2021