1 0 0 начало 2 5 0 налить 5-ти литровое из родника 3 0 5 перелить из 5-ти в 9-ти л 4 5 5 налить в 5-ти из родника 5 1 9 из 5-ти долить 9-ти л 6 1 0 вылить воду из 9-ти л 7 0 1 из 5-ти л перелить в 9-ти 8 5 1 наполнить 5-ти л из родника 9 0 6 из 5-ти л перелить в 9-ти 10 5 6 наполнить 5-ти л из родника 11 2 9 из 5-тил долить 9-ти л 12 2 0 вылить из 9-ти л 13 0 2 из 5-ти л перелить в 9-ти л 14 5 2 налить из родника в 5-ти л 15 0 7 вылить из 5-ти л в 9-ти л 16 5 7 набрать из родника в 5-ти л 17 3 9 долить 9-ти л из 5-тил и в 5-ти л останутся заветные 3 литра 18 3 0 выливаем из 9-ти л 19 КОНЕЦ
2 9-ти литровое
3 действие
№ | 1 | 2 | 3
1 0 0 начало
2 5 0 налить 5-ти литровое из родника
3 0 5 перелить из 5-ти в 9-ти л
4 5 5 налить в 5-ти из родника
5 1 9 из 5-ти долить 9-ти л
6 1 0 вылить воду из 9-ти л
7 0 1 из 5-ти л перелить в 9-ти
8 5 1 наполнить 5-ти л из родника
9 0 6 из 5-ти л перелить в 9-ти
10 5 6 наполнить 5-ти л из родника
11 2 9 из 5-тил долить 9-ти л
12 2 0 вылить из 9-ти л
13 0 2 из 5-ти л перелить в 9-ти л
14 5 2 налить из родника в 5-ти л
15 0 7 вылить из 5-ти л в 9-ти л
16 5 7 набрать из родника в 5-ти л
17 3 9 долить 9-ти л из 5-тил и
в 5-ти л останутся заветные 3 литра
18 3 0 выливаем из 9-ти л
19 КОНЕЦ
// PascalABC.NET 3.6
type
TR = record
Имя, Отчество, Фамилия: string;
Возраст, НомерКласса: integer;
БукваКласса: char;
end;
function ПринятьСведения: TR;
begin
Result.Имя := ReadlnString('Имя:');
Result.Отчество := ReadlnString('Отчество:');
Result.Фамилия := ReadlnString('Фамилия:');
Result.Возраст := ReadlnInteger('Возраст:');
Result.НомерКласса := ReadlnInteger('Номер клвсса:');
Result.БукваКласса := ReadlnChar('Буква класса:');
end;
procedure ВывестиСведения(L: List<TR>);
begin
foreach var r in L do
Writeln(r.Имя+' '+r.Отчество+' '+r.Фамилия:40,
r.Возраст:4, r.НомерКласса+r.БукваКласса:4)
end;
begin
var p := new List<TR>;
var n := ReadlnInteger('Сколько учеников добавить?');
loop n do
p.Add(ПринятьСведения);
p := p.OrderByDescending(t -> t.Имя).ToList;
ВывестиСведения(p);
end.