Spyrytus - пълнене алгоритъм на двумерен масив в спирала

Алгоритъм пълнене двумерен масив в спирала

Вероятно много от тях работа уроци програмиране, напишете програма, която трябва да се запълни една двумерен масив от числа в една спирала. Наскоро имах същия необходимостта да се реши този проблем. Написах го много пъти в различни езици за програмиране - и всеки път, когато трябва да се помни, както аз го написах, но сега съм написал алгоритъм, който може да запълни всяка гама от всякакви размери - дори semetrichnye.

За да започнете да обясни реалното алгоритъм. При попълването на двумерен масив в спирала (ще запълни ляво-дясно, горе-надолу). При попълване на охлюв масив - броя на повторенията на всяко четвърто пасаж е равна RazmerMassiva - 2. Сега, от тези данни и да започне.

На първо място, напишете част от кода е отговорен за попълване само на ляво-дясно:

където у - сегашната партия (0 - до 1 - десен 2 -).
sizeX - размерът на масива хоризонтално
CorrectX - променлива, която е отговорна за автоматична dekrimentirovanie
Граф - променлива, която е отговорна за тока в рамките на набор от цифри
Summ - произведението на широчината към височината, необходима за коригиране на грешката (виж по-долу.)
Mas - името на двумерен масив
х - действителната позиция в масива

Е, от другата страна на случая на принципа, описан по-горе, с изключение на това, че променливите се променят места, както и някои модифицирани състояние. Ако забележите, че е писано, че променливата Summ. Трябва да се премахнат грешките - да, това е така. Грешката се крие във факта, че по време на последния цикъл на първото условие (Виж кодекс.) - работи, както и промяна не успя, тъй като е необходимо да се въведе още една променлива.

По-долу е функция код, който изпълва масива в спирала. Пълненето се извършва само в една посока - от ляво на дясно, горе-надолу. Е, който иска да - може да пренапише ее, така че тя започва от всяко място. На добър час.

Готов версия на програмата може да се намери, като кликнете върху връзката в лентата за навигация, готови програми.