NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[Mam] Sprawdzanie całej tablicy jedną pętlą
Autor Wiadomość
GHPL 
Starszy chorąży


Główny edytor: Fusion 2.5 Dev
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: Fusion 2.5 Dev
Drugi edytor: Construct
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: KNP
Drugi edytor: MMF Express
Pomógł: 35 razy
Posty: 644

18047 Prestiż
Wysłany: 12-08-2016, 02:58   

Sne, to lepiej nie otwieraj :D 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: Fusion 2.5 Dev
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: MMF2 Dev
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: Fusion 2.5 Dev
Drugi edytor: Construct
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: Fusion 2.5 Dev
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: Fusion 2.5
Drugi edytor: TGF2
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: MMF2 Dev
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: KNP
Drugi edytor: MMF Express
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
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie
Daj piniondza Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group