Спираль из центра массива по часовой стрелке (для нечетных n): const n=7; var a:array[1..n,1..n] of integer; i,j,d,k,l,m:integer; begin k:=n*n; i:=n div 2 + 1; j:=n div 2 + 1; a[i,j]:=k; d:=1; for m:=1 to n div 2 do begin for l:=1 to d do begin k:=k-1; j:=j+1; a[i,j]:=k; end; for l:=1 to d do begin k:=k-1; i:=i+1; a[i,j]:=k; end; d:=d+1; for l:=1 to d do begin k:=k-1; j:=j-1; a[i,j]:=k; end; for l:=1 to d do begin k:=k-1; i:=i-1; a[i,j]:=k; end; d:=d+1; end; d:=d-1; for l:=1 to d do begin k:=k-1; j:=j+1; a[i,j]:=k; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
Согласно конструкции оператора ветвления: if <условие> then <команда, в случае, когда условие выполняется> else <когда условие НЕ выполняется>;
Обратите внимание на точки с запятыми. Также обратите внимание, что разрешается только одна команда. То есть, следующее решение будет неверно: if a > b then x:=a; y=b;
В таких случаях надо "оборачивать" с и end: if a > b then begin x:=a; y=b; end;
Или так: if a > b then begin x:=a; y=b; end else a:=5;
Рекомендую ещё раз обратить внимание на точки с запятой.
а) справа убрать один ноль и будет в троичной системе