Загрузка данных


program diamond;

var
  n: integer;

procedure DrawRow(y, n: integer);
var
  x, outerWidth, innerWidth: integer;
begin
  outerWidth := n - abs(y);
  innerWidth := n - 2 - abs(y);

  for x := -n to n do
  begin
    if (abs(x) = outerWidth) or
       ((n >= 5) and (innerWidth > 0) and
        (abs(y) < n - 2) and (abs(x) = innerWidth)) then
      write('*')
    else
      write(' ');
  end;
  writeln;
end;

procedure DrawTop(y, n: integer);
begin
  if y >= 0 then
  begin
    DrawRow(y, n);
    DrawTop(y - 1, n);
  end;
end;

procedure DrawBottom(y, n: integer);
begin
  if y <= n then
  begin
    DrawRow(y, n);
    DrawBottom(y + 1, n);
  end;
end;

begin
  write('Enter size (5 or more): ');
  readln(n);

  if n >= 5 then
  begin
    DrawTop(n, n);
    DrawBottom(1, n);
  end;
end.