Здесь главное не перестараться с глубиной, а в остальном…
Вот простой пример на Паскале (сегодня студенту делал ;-)
{ Заполнение массива по спирали }
var Arr : array [1..19, 1..19] of Word; N, D : Byte;
procedure ShowArray(N, D : Byte);
var Row, Col : Byte;
begin
for Row := 1 to N do begin for Col := 1 to N do Write(Arr[Row, Col]:D); WriteLn; end;
end;
function Square(Row0, Col0, Row1, Col1 : Byte): Word;
var Num : Word; Row, Col : Byte;
begin
if Row0 = Row1 then begin Num := 1; Arr[Row0, Col0] := Num; end
else if Odd(Row1 - Row0) then
begin
Num := Square(Row0 + 1, Col0, Row1, Col1 - 1);
for Col := Col0 to Col1 do begin Inc(Num); Arr[Row0, Col] := Num; end;
for Row := Row0 + 1 to Row1 do begin Inc(Num); Arr[Row, Col1] := Num; end;
end
else
begin
Num := Square(Row0, Col0 + 1, Row1 - 1, Col1);
for Col := Col1 downto Col0 do begin Inc(Num); Arr[Row1, Col] := Num; end;
for Row := Row1 - 1 downto Row0 do begin Inc(Num); Arr[Row, Col0] := Num; end;
end;
Square := Num;
end;
begin
Write('Введите N (от 1 до 19) : '); ReadLn(N);
case N of
1..3 : D := 2;
4..9 : D := 3;
10..19 : D := 4;
else WriteLn('Значение N должно быть из диапазона от 1 до 19.'); Halt;
end;
Square(1, 1, N, N);
ShowArray(N, D);
end.
Другие языки программирования и технологии
Рекурсия, возникли проблемы с изучением рекурсии, не могли бы подсказать книги или видео про обьяснение рекурсии
Похожие вопросы
- Подскажите, возник интерес к изучению программирования, какой язык подойдет для чайника, что бы понять принцип и основы?
- Возникла проблема, связанная с фотошопом
- Подскажите как отконвертировать видео. Не могу загрузить файл на сайт.
- посоветуйте книги или видео уроки по C++
- посоветуйте книги или видео про созданию шаблонов с нуля (по собственному вкусу) на wordpress
- Подскажите книгу
- Как можно снять скриншот экрана(если возникла проблема с установкой программы и админ просит скрин)
- начал изучать winApi но тут же возникли проблемы
- возникла проблема с компьютором
- Нужно сделать сайт. Подскажите книги, статьи, программы.