Tworzenie spirali w tablicy 2-wymiarowej

Odpowiedz Nowy wątek
2011-07-30 13:03
0

przykładowa spirala dla tablicy 5x5:

21 22 23 24 25
20  7  8  9 10
19  6  1  2 11
18  5  4  3 12
17 16 15 14 13

Zasada tworzenia takiej spirali jest dość łatwa do zrozumienia jednak nie wiem jak to zaimplementować w kodzie, myślałem żeby to zrobić w pętli for <= 5^2 ale nie wiem jak sie poruszać po indexach zgodnie z zasada. z góry dzięki za jakieś podpowiedzi

edytowany 2x, ostatnio: Markness, 2011-07-30 13:04

Pozostało 580 znaków

2011-07-30 13:09
0

Zrób funkcję, która przyjmuje 5 parametrów - numer górnego i dolnego wiersza, numer lewej i prawej kolumny, liczbę, od której zaczyna numerować pola. Następnie wywołaj tę funkcję tyle razy, ile jest wewnętrznych kwadratów (w przykładzie są takie trzy). A w samej funkcji użyj czterech pętelek for - osobno numeruj prawą kolumnę, dolny wiersz, lewą kolumnę i górny wiersz.
Ewentualnie zrób funkcję, która przemapuje liczby od 1 do 25 na pozycje w tablicy, a potem tylko pętelka for.

Pozostało 580 znaków

2011-07-30 13:22
bo
0

Zasada nie jest łatwa do zrozumienia. Gdzie się zaczyna numerowanie dla spirali rozmiaru 4x4?

Pozostało 580 znaków

2011-07-30 13:37
bo

Można też numerować w drugą stronę (nie ma wtedy problemu gdzie rozpocząć gdy wymiary są parzyste).
Przykład dla 7X7. W prawym górnym rogu wpisujesz największą liczbę (49), przesuwasz się w lewo dopóki nie skończy się tablica (i dopóki są niewypełnione pola), zmniejszasz wpisywaną liczbę o 1 i wpisujesz. Pętla jest wykonywana dopóki wpisywana liczba jest >=1. Po napotkaniu na lewy brzeg zmieniasz kierunek (na w dół), po napotkaniu dolnego brzegu zmieniasz kierunek na w prawo, potem do góry, potem w lewo, itd..

heh, właśnie o tym samym pomyślałem - yalk 2011-07-30 13:48

Pozostało 580 znaków

2011-07-30 13:46
0

A nie łatwiej numerować od zewnątrz malejącymi liczbami ?
Przy takiej numeracji po ponumerowaniu nie będzie tam zera.
Najpierw można wypełnić całą tablicę zerami, potem można spróbować numerować wiersz lub kolumnę kolejnymi cyframi aż do granicy macierzy lub do pola gdzie już coś jest. Wtedy zmieniamy kierunek (indeks, który zmniejszamy lub zwiększamy) - chodzi o warunek skręcenia w lewo lub w prawo gdy będziemy w rogu. Kończymy gdy wstawimy cyfrę 1. To by zadziałało dla macierzy z parzystą i nieparzystą ilością kolumn i wierszy.

jesteśmy wyjątkowo jednomyślni - bogdans 2011-07-30 13:51

Pozostało 580 znaków

2011-07-30 13:53
0

zadanie dotyczy wymiarow tablicy nieparzystych wiec z np. 4x4 nie bedzie rozpatrywane. spróbuję użyć tego malejącego numerowania, @bo dzięki wielkie.

Pozostało 580 znaków

2011-07-30 14:08
0

http://is.gd/A1Eeon i nie dyskutować bo mnie łeb nap... boli po wczorajszym.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0