Var
  S: array[1..4] of String[11];{длина на 1 больше,
  чтобы можно было зафиксировать превышение длины при вводе}
  Matr: array[1..10, 1..10] of Char;
  i, j: Integer;
begin
  for i := 1 to 4 do
    begin
      Repeat
        Write('Введите строку ', i, ':'); ReadLn(S[i]);
        if Length(S[i])<>10 then
          WriteLn('Строка должна быть длиной 10 символов.');
      until Length(S[i])=10;
    end;
  for i := 1 to 10 do
    for j := 1 to 10 do
      Matr[i, j] := ' ';
  if (S[1,10]=S[2,1])and(S[2,10]=S[3,1])and(S[3,10]=S[4,1])and
    (S[4,10]=S[1,1]) then
    for i := 1 to 9 do
      begin
        Matr[1, i] := S[1, i]; Matr[i, 10] := S[2, i];
        Matr[10, 11-i] := S[3, i]; Matr[11-i, 1] := S[4, i];
      end
   else
    for i := 1 to 10 do
      begin
        Matr[i, i] := S[1, i]; Matr[i, 11-i] := S[2, i];
      end;
  WriteLn('Искомая матрица:');
  for i := 1 to 10 do
    begin
      for j := 1 to 10 do
        Write(Matr[i, j]);
      WriteLn;
    end;
end.