Можно, например, так: алг Квадрат начало опустить перо сместиться на вектор (0,4) сместиться на вектор (4,0) сместиться на вектор (0,-4) сместиться на вектор (-4,0) поднять перо конец
Ромб с диагоналями 3х3 - это квадрат. Для разнообразия можно его повернуть на 45°. Тогда получится вот такой алгоритм: алг Ромб нач сместиться на вектор (0,1.5) опустить перо сместиться на вектор (1.5,1.5) сместиться на вектор (1.5,-1.5) сместиться на вектор (-1.5,-1.5) сместиться на вектор (-1.5,1.5) поднять перо кон
// PascalABC.NET 3.2, сборка 1447 от 22.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество колонок в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(5); Writeln(5*a.ColCount*'-'); a.Cols.Select(x->Format('{0,5}',x.Where(y->y<0).Sum)).Print(''); Println(' - суммы отрицательных'); end.
алг Квадрат
начало
опустить перо
сместиться на вектор (0,4)
сместиться на вектор (4,0)
сместиться на вектор (0,-4)
сместиться на вектор (-4,0)
поднять перо
конец
Ромб с диагоналями 3х3 - это квадрат. Для разнообразия можно его повернуть на 45°. Тогда получится вот такой алгоритм:
алг Ромб
нач
сместиться на вектор (0,1.5)
опустить перо
сместиться на вектор (1.5,1.5)
сместиться на вектор (1.5,-1.5)
сместиться на вектор (-1.5,-1.5)
сместиться на вектор (-1.5,1.5)
поднять перо
кон