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

Програмування: Функції, процедури та підпрограми
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 11.4
Скачувань: 923
означення імен

begin

послідовність операторів

end;

Процедура, як і функція, є означенням імені і записується серед означень програми.

v

x

\x017E

 

c

¤

r

головку немає імені типу для значень, породжуваних у результаті виклику, тому що ніякі значення не породжуються. За цією ж причиною в тілі процедури не може бути операторів присвоювання з її ім'ям у лівій частині.

Виклик процедури складається з імені й аргументів у дужках і записується як окремий оператор, наприклад, readln(x, y).

Отже, напишемо інший варіант програми упорядкування трьох значень:

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. Слушність цього напису дуже сумнівна.

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