Tablice dwuwymiarowe w Bascom (po raz kolejny zapewne)

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Tablice dwuwymiarowe w Bascom (po raz kolejny zapewne)

Post autor: M@ciej » 22 cze 2008, 13:49

Witam wszystkich :)

Pytanie jest trywialne i wiem, że powinienem skorzystać z opcji "szukaj",ale jakbym nie wpisał frazy szukania, otrzymuję odpowiedź: "Nie znaleziono tematów ani postów pasujących do Twoich kryteriów"

Więc moje pytanie brzmi: jak się definiuje i używa dwuwymiarowe tablice w bascom?

Próbowałem Dim T(8(8)) -tu nie wykazuje chociaż błędu, dla tablicy 8x8

ale zapis:

zmienna=T(a(b)) -tu pokazuje błąd: "Variable not dimensioned as array..."

Logiczny zapis dla innych języków: Dim T(8,8) niestety nie działa :(

ZbeeGin

Post autor: ZbeeGin » 22 cze 2008, 15:25

Zapis ten nie działa, gdyż BASCOM nie obsługiuje tablic wielowymiarowych.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 22 cze 2008, 15:39

Ale problem nie jest taki poważny poniewać każdą tablicę można rozłozyć na tablicę niższego rzędu. Tablice dwuwymiarową możesz zdefiniować jako zwykły ciąg w tablicy jednowymiarowej. Wybór "wiersza" wtedy wiązę się z dodaniem do numeru elementu stałej wartości. Dajmy na to, że chcesz stworzyć tablicę 4*4. Tworzysz więc tablicę jednowymiarową o ilości elementów 4*4 czyli 16. Wtedy element w drugiej kolumnie pierwszego wiersza będzie miał identyfikator 2 zaś element w drugiej kolumnie drugiego wiersza identyfikator 2+4(4 ponieważ tyle jest elementów w wyimaginowanym wierszu) czyli będzie to 6 element ciągu. W drugiej kolumnie trzeciuego wiersza będzie to więc identyfikator 2+4+4 (10 element).
Ostatnio zmieniony 22 cze 2008, 21:34 przez Jasam, łącznie zmieniany 1 raz.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 22 cze 2008, 16:44

To by tłumaczyło, dlaczego nigdzie nie mogłem znaleźć opisu tablic dwuwymiarowych dla Bascoma :(
Dlatego pozostaje jedynie zrobić 1-wymiarową i układać "wiersze" po kolei,jak radził Kolega w poście powyżej.

Zdaje się także, że Bascom nie liczy tablic od 0,tylko od 1, miałem z tym problem pamiętam.

[ Dodano: 2008-06-23, 09:10 ]
Bascom liczy tablice od zera,ale gdy wypełnia się je elementami od zera, dzieją się różne dziwne i nieoczekiwane rzeczy. Np. dodanie linijki "C= A + B" zmienia działanie programu, nawet, gdy powyższe równanie nie ma zastosowania w programie. Wypełnieie tablic od 1 likwiduje wszelkie niedogodności.

ODPOWIEDZ