Никак, эта функция ничего не перемножает.
Var
a:array [1..10] of integer;
i,j,k,b:integer;
begin
randomize;
writeln('Массив:');
for i:=1 to 10 do
begin
a[i]:=random(99);
write(a[i],' ');
end;
writeln;
for i:=1 to 10 do
begin
k:=i;
for j:=(1+i-1) to 10 do
begin
if (a[j]>a[k])and((i mod 2)<>0) then k:=j;
if (a[j]<a[k])and((i mod 2)=0) then k:=j;
end;
b:=a[k];
a[k]:=a[i];
a[i]:=b;
end;
writeln('Массив после престанвоок:');
for i:=1 to 10 do
write(a[i],' ');
writeln;
end.
Program Task;
Uses GraphABC;
Const b = 4; r = 20 ;
d: Array [1..4, 1..2] of Integer = ((1, 0), (0, 1), (-1, 0), (0, -1));
xs: Array [1..b] of Integer = (r + r Div 2, WindowWidth - (r + r Div 2), WindowWidth - (r + r Div 2), r + r Div 2);
ys: Array [1..b] of Integer = (r + r Div 2, r + r Div 2, WindowHeight - (r + r Div 2), WindowHeight - (r + r Div 2));
Var x, y, dir: Array [1..b] of Integer;
i, j: Integer;
Begin
LockDrawing;
For i := 1 To b Do
Begin
x[i] := xs[i];
y[i] := ys[i];
dir[i] := i;
End;
While True Do
Begin
Window.Clear;
For i := 1 To b Do
Circle(x[i], y[i], r);
For i := 1 To b Do
Begin
x[i] := x[i] + d[dir[i], 1];
y[i] := y[i] + d[dir[i], 2];
End;
For i := 1 To b Do
For j := 1 To b Do
If (x[i] = xs[j]) And (y[i] = ys[j]) Then
If dir[i] < b Then
dir[i] := dir[i] + 1
Else
dir[i] := 1;
Redraw;
End;
<span>End.</span>
Все 5.
Гномы видели, что существовало всего 3 красных капюшона. А значит те, на кого надеты капюшоны синего цвета сразу могут дать ответ, что на них синие. Если гномы в красных капюшонах видят, что гномы в синих ответили, то понимают, что эти гномы должны быть уверены в правильности их ответа, а значит все оставшиеся - с красными. И поэтому оставшиеся 3 тоже могут ответить правильно.