Количество вариантов считаем так:
На первого человечка можно надеть 3 шляпы,тогда на второго останутся 2 на выбор и 1 на последнего. Итого: 3*2*1=6 вариантов.
Теперь выпишем их по порядку
Обозначу для краткости Человечков буквами Ч1.Ч2,Ч3, а
шляпы A,B,C.
1)Ч1-A, Ч2-B, Ч3-C
2)Ч1-A, Ч2-C, Ч3-B
3)Ч1-B, Ч2-A, Ч3-C
4)Ч1-B, Ч2-C, Ч3-A
5)Ч1-C, Ч2-A, Ч3-B
6)Ч1-C, Ч2-B, Ч3-A
ГОТОВО ^_^
В фигурных скобках добавил комментарии
{определяем процедуру вправо-вверх}
ПРОЦ вправо_вверх
ПОКА сверху свободно И справа свободно ДЕЛАТЬ
вправо; вверх; закрасить;
КОНЕЦ
{определяем процедуру вправо-вниз}
ПРОЦ вправо_вниз
ПОКА снизу свободно И справа свободно ДЕЛАТЬ
вправо; вниз; закрасить;
КОНЕЦ
ПРОГРАММА зигзаг;
{перемещаем Робота в левый нижний угол}
ПОКА слева свободно ДЕЛАТЬ
влево
КОНЕЦ
ПОКА снизу свободно ДЕЛАТЬ
вниз
КОНЕЦ
{закрашиваем первую клетку}
закрасить;
{двигаемся, пока не упрёмся в правую стенку}
ЕСЛИ справа свободно ТО
вправо_вверх;
вправо_вниз
КОНЕЦ
Const n=9;
var a:array[1..n,1..n] of integer;
i,j:integer;
begin
for i:=1 to n do for j:=1 to n do a[i,j]:=0;
for i:=1 to n do a[i,i]:=n div 2+n mod 2-abs(n div 2+n mod 2-i);
for i:=1 to n do begin for j:=1 to n do write(a[i,j]); writeln end
<span>end.</span>
Схема в приложенной картинке.