Язык программирования Pascal. Процедуры и функции. Рекурсия. Васильев В.В - 9 стр.

UptoLike

9
лок съела каждая сестра?
Количество яблок , собранных Аней , обозначим через n . Будем считать,
что девочки при дележе не разрезали яблоки на части. Каждую из четырех раз -
дач можно выразить процедурой , имеющей четыре параметра - количество яб-
лок у Ани , Оли , Маши и Светы . Все четыре параметра служат одновременно и
входными и выходными данными для процедуры . При обращении к процедуре
параметры хранят количества яблок до очередной раздачи . При выходе из про-
цедуры фактическим параметрам присваиваются количества яблок после оче-
редной раздачи . Первым в списке формальных параметров стоит количество
яблок у той сестры , которая ими делится .
Program Sestri;
Uses crt;
Var a,o,m,s:integer;
procedure delezh(var w,x,y,z:integer);
begin
x:=x+w div 3;y:=y+w div 3; z:=z+w div 3;
w:=w mod 3
end;{delezh}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
write('Сколько яблок нарвала Аня?');readln(a);
o:=0; m:=0; s:=0;
delezh(a,o,m,s);
delezh(o,a,m,s);
delezh(m,a,o,s);
delezh(s,a,o,m);
writeln('После дележа у Ани - ',a,', у Оли - ',o,', у Маши - ',m,',
у Светы -',s,' яблока');
readkey
End.{Sestri}
Область видимости формальных параметров такая же, как у локальных
данных!
Рассмотрим способы передачи параметров, принятые в Паскале . По
механизму передачи параметров процедуры /функции различают передачу по
значению и передачу по ссылке (по адресу).
При передаче параметров по значению при вызове процедуры /
функции выполняется копирование значений фактических параметров в па-
мять, выделяемую для формальных параметров .
При передаче параметров по ссылке при вызове процедуры / функ-
ции выполняется копирование адресов ( но не значений!) фактических пара-
метров в выделяемую для них память.
По взаимодействию вызывающего и вызываемого блока параметры
могут передаваться только как входные, только как выходные, одновременно
как входные и выходные.