Ion69 Opublikowano 14 Listopada 2005 Zgłoś Opublikowano 14 Listopada 2005 Witam. Mam mały problem z wypełnieniem tablicy ( dowolny rozmiar ). Tablica powinna wygladac mniej wiecej tak: 1 3 6 102 5 9 134 8 12 157 11 14 16Chodzi o to, zeby cyfry byly rosnaco po skosie. Jezeli ktos ma jakis pomysl, jak ma wygladac do tego algorytm to z gory dziekuje. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kfgz Opublikowano 14 Listopada 2005 Zgłoś Opublikowano 14 Listopada 2005 (edytowane) DIM tabl(3, 3) AS INTEGERDIM diagonalflag AS INTEGERDIM startrow AS INTEGERDIM startcol AS INTEGERDIM counter AS INTEGERDIM colinc as INTEGERDIM i AS INTEGERDIM j AS INTEGERCONST n = 3startrow = 0startcol = 0counter = 1diagonalflag = 0FOR i = 1 TO 2 * (n + 1) - 1 IF startrow = n THEN diagonalflag = 1 colinc = 0 FOR j = startrow TO startcol STEP -1 tabl(j, startcol + colinc) = counter counter = counter + 1 colinc = colinc + 1 NEXT j IF startrow < n THEN startrow = startrow + 1 ELSE IF diagonalflag = 1 THEN startcol = startcol + 1NEXT i Jakoś tak to będzie wyglądało. To jest przykład dla tablicy 4x4 ale wystarczy zmienić wartość stalej n oraz rozmiar tablicy i algorytm będzie nadal działał poprawnie. P.S. Sorki, że w Basicu ale nic innego nie mam pod ręką. Edytowane 15 Listopada 2005 przez Dj_AnT Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...