1. Современное решение
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var a:=MatrFill(n,n,'+');
var k:=(n+1) div 2-1;
for var i:=0 to k do
for var j:=i to n-i-1 do a[i,j]:='@';
for var i:=k+1 to n-1 do
for var j:=n-i-1 to i do a[i,j]:='@';
a.Println(1);
end.
Пример
n= 5
@@@@@
[email protected]@@+
[email protected]++
[email protected]@@+
@@@@@
2. Школьный вариант в стиле ТурбоПаскаль 1983г
const
nn=100; // максимальное n
var
i,j,n,k:integer;
a:array[0..nn-1,0..nn-1] of char;
begin
Write('n='); Read(n);
for i:=0 to n-1 do
for j:=0 to n-1 do
a[i,j]:='+';
k:=(n+1) div 2-1;
for i:=0 to k do
for j:=i to n-i-1 do
a[i,j]:='@';
for i:=k+1 to n-1 do
for j:=n-i-1 to i do
a[i,j]:='@';
for i:=0 to n-1 do begin
for j:=0 to n-1 do
Write(a[i,j]);
Writeln
end
end.