[Mam] Sprawdzanie całej tablicy jedną pętlą |
Autor |
Wiadomość |
GHPL
Starszy chorąży
Główny edytor:
Pojedynki: nie
Pomógł: 18 razy Posty: 386
6075 Prestiż
|
Wysłany: 10-08-2016, 11:12 [Mam] Sprawdzanie całej tablicy jedną pętlą
|
|
|
Załóżmy że mamy tablicę 5x10 i musimy sprawdzić całą. Tutaj jest przykład tego
https://www.dropbox.com/s...ieloop.mfa?dl=1
Sory, że taki krótki opis, ale nie wiem jak to opisać xD
EDIT: Nie zauważyłem, że wstawiłem tu wersję 5x10 |
Ostatnio zmieniony przez GHPL 12-08-2016, 09:19, w całości zmieniany 1 raz |
|
|
|
|
Minty
Stwórczyni omc dr fizyki
Główny edytor:
Drugi edytor:
Pojedynki: być może
Pomogła: 259 razy Posty: 3446
33789 Prestiż
|
Wysłany: 11-08-2016, 22:27
|
|
|
Nie otwierałam jeszcze, ale pętla z od 0 do 99, x=z mod 10, y=z/10? |
|
|
|
|
Cootje
Legenda
Główny edytor:
Drugi edytor:
Pomógł: 35 razy Posty: 644
18047 Prestiż
|
Wysłany: 12-08-2016, 02:58
|
|
|
Sne, to lepiej nie otwieraj To nawet nie ma nic wspólnego ze sprawdzaniem tablicy... raczej ustawianiem pary liczników w dziwny sposób, który przy użyciu reszty z dzielenia wypada blado. |
_________________ Mój klucz publiczny PGP |
|
|
|
|
GHPL
Starszy chorąży
Główny edytor:
Pojedynki: nie
Pomógł: 18 razy Posty: 386
6075 Prestiż
|
Wysłany: 12-08-2016, 09:13
|
|
|
Sne, aha, ja wykorzystałem wzór własnej roboty
Cootje, ale zauważ, że wartości tych counterów oznaczają jakieś coordynaty w tabeli, czyli wystarczy: on loop "a", if value ("Array",(moje dziwne równanie na wiersz),(moje dziwne równanie na kolumnę))=n
EDIT: Nie wiem jak w waszym sposobie z modulo "naprawić" to że czasem zwraca 0 we wierszu |
|
|
|
|
Fadex
Legenda #4; #12; #18; #20; #21; #27
Główny edytor:
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 12-08-2016, 12:16
|
|
|
GHPL napisał/a: | EDIT: Nie wiem jak w waszym sposobie z modulo naprawić to że czasem zwraca 0 we wierszu |
...dodać jeden? |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
|
Minty
Stwórczyni omc dr fizyki
Główny edytor:
Drugi edytor:
Pojedynki: być może
Pomogła: 259 razy Posty: 3446
33789 Prestiż
|
Wysłany: 12-08-2016, 12:29
|
|
|
Generalnie gdy krok pętli to z, natomiast a,b to koordynaty początku:
x = a + z mod 10
y = b + z / 10
Czyli jak Fadex powiedział... |
|
|
|
|
GHPL
Starszy chorąży
Główny edytor:
Pojedynki: nie
Pomógł: 18 razy Posty: 386
6075 Prestiż
|
Wysłany: 12-08-2016, 15:00
|
|
|
Fadex, Sne napisał/a: | Generalnie gdy krok pętli to z, natomiast a,b to koordynaty początku:
x = a + z mod 10
y = b + z / 10
Czyli jak Fadex powiedział... |
a=1 b=1 z=10
Wychodzą koordynaty: 1,2 u mnie wyszłyby 10,1 |
|
|
|
|
jarlfenrir
Generał brygady
Główny edytor:
Drugi edytor:
Pomógł: 82 razy Posty: 1731
37283 Prestiż
|
Wysłany: 12-08-2016, 15:33
|
|
|
Widzę tu jakiś problem z pierwszym indeksem tablicy. Jeśli tablica jest 0-based, to element o indeksie 10 faktycznie powinien wypaść w miejscu [1,2]. Indeks 10 jest jedenastym w kolejności.
W przypadku 1-based indeks 10 jest dziesiąty i dla niego powinna wyjść pozycja [10,1].
Ogólnie polecam używać tablic 0-based, bo do takich są przyzwyczajeni programiści i do takich przypadków znajdziesz najwięcej gotowych wzorów. |
|
|
|
|
Fadex
Legenda #4; #12; #18; #20; #21; #27
Główny edytor:
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 12-08-2016, 17:55
|
|
|
GHPL napisał/a: | Fadex, Sne napisał/a: | Generalnie gdy krok pętli to z, natomiast a,b to koordynaty początku:
x = a + z mod 10
y = b + z / 10
Czyli jak Fadex powiedział... |
a=1 b=1 z=10
Wychodzą koordynaty: 1,2 u mnie wyszłyby 10,1 |
Bo normalnie się indeksuje od zera. Wtedy dla z z przedziału 0..9 wychodzą indeksy tablicy 1..10 - czyli tak jak powinno być... a element o indeksie dziesiątym jest jedenasty więc trafia do kolejnego wiersza tabeli. |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
|
Cootje
Legenda
Główny edytor:
Drugi edytor:
Pomógł: 35 razy Posty: 644
18047 Prestiż
|
Wysłany: 12-08-2016, 20:15
|
|
|
GHPL, domyśliłem się, że liczniki symbolizują tablice - to było oczywiste. Co do reszty z dzielenia to oczywiście tak jak już Ci wyżej napisali indeksujemy od 0 i dlatego też jestem fanem base index 0 w programowaniu bo dla indeksowania od 1 nie widzę zastosowań, których nie dało by się zrobić na indeksach od 0 za to na indeksach od 1 z resztą z dzielenia musimy dodawać te nieszczęsną jedynkę. |
_________________ Mój klucz publiczny PGP |
|
|
|
|
|