Аня нарвала яблок и поровну раздала своим сестрам Оле, Маше и Тане, а что осталось, съела. Оля свои яблоки поделила между тремя сестрами, а что осталось, съела. То же самое сделали Маша и Таня. Сколько яблок оказалось у каждой сестры?
Составим программу для решения этой задачи. Каждую из четырех раздач можно выразить посредством процедуры, имеющей четыре параметра. Обозначим их именами a, b, c, d.. Это число яблок, которые имеют сестры: до раздачи - при обращении к процедуре и после раздачи - по выполнении процедуры.
Program iabloki;
uses crt;
var Ania, Olia, Masha, Tania: integer;
procedure delej (var a, b, c, d:integer);
{сестрам дала по третьей части, что осталось, съела}
begin
b:=b+a div 3;
c:=c+a div 3;
d:=d+a div 3;
a:=0
end;
begin
write('Аня нарвала яблок: ');
read(Ania);
Olia:=0;
Masha:=0;
Tania:=0;
delej(Ania, Olia, Masha, Tania);
delej(Olia, Masha, Tania, Ania);
delej(Masha, Tania, Ania, Olia);
delej(Tania, Ania, Olia, Masha);
writeln('После дележа сестры имеют яблок: ');
writeln('Аня: ', Ania);
writeln('Оля: ', Olia);
writeln('Маша: ', Masha);
writeln('Таня: ', Tania);
readkey
end.
Обратим внимание на одну интересную деталь: результат для последнего участника дележа всегда будет равен нулю.