|
- Programming4Fun http://www.programming4fun.pun.pl/index.php - Poradniki http://www.programming4fun.pun.pl/viewforum.php?id=29 - Lekcja 5 – Tablice. http://www.programming4fun.pun.pl/viewtopic.php?id=61 |
| doshaker - 2014-07-21 19:43:43 |
Poradnik zaczerpniety ze strony tibia.net.pl. Kod:{1,2,3,4,5,6}
{x=1,y=2,z=3}jest jeszcze inny sposób (mieszany: {a=1, 5, 4, x=1000}), ale nie będę o nim pisał, gdyż jest mało wygodny. Kod: local tablica = {1,2,3,4,5}Przy sposobie 1. dane z tablicy pobiera się poprzez tablica[index], gdzie tablica to zmienna zawierająca tablicę, a index to pozycja, z której chcemy pobrać dane. Kod: 1. tabela[index] = wartość (w tabeli {1,2,3})
2. tabela.index = wartość (w tabeli {x=1,y=2})
3. table.insert(tablica, [pozycja,] wartość)Lekcja 5.1 – Funkcje związane z tablicami Kod: local tablica = {1,2,3,4,5,6,7}
table.insert(tablica, 8)
print(unpack(tablica))Funkcja unpack użyta w przykładzie ‘rozpakowuje’ tablicę. Efektem działania naszego przykładu będzie: Kod:1 2 3 4 5 6 7 8 a teraz inny przykład: Kod: local tablica = {2,3,4,5,6,7}
table.insert(tablica, 1, 9)
print(unpack(tablica))A teraz otrzymamy: Kod:9 2 3 4 5 6 7 gdyż w table.insert() podaliśmy dokładną pozycję, gdzie ma zostać „wstrzyknięta” liczba 9. Kod: local tablica = {1,2,3,4,5,”LOL”}
table.foreach(tablica, print)print jest w tym wypadku użytą przez nas funkcją. Jej parametrami zostaną index oraz wartość z tablicy. Wynikiem działania przykładu będzie: Kod:1 1 2 2 3 3 4 4 5 5 6 LOL c) table.sort(tablica [, funkcja]) Kod: local tablica = {5,9,-1,-99,1,6,87}
table.sort(tablica)
print(unpack(tablica))w rezultacie otrzymamy: Kod:-99 -1 1 5 6 9 87 Jak widać wartości są poustawiane rosnąco, a co jeśli my wolimy malejąco? Kod: local tablica = {5,9,-1,-99,1,6,87}
table.sort(tablica, function(a,b) return a > b end)
print(unpack(tablica))Tym razem otrzymamy wynik przeciwny: Kod:87 9 6 5 1 -1 -99 w podobny sposób możemy napisać inne funkcje, które będą sortowały wartości tak jak sobie tego zażyczymy. Kod: local tablica = {1,2,3,4,5,6,7,8,9}
print(table.getn(tablica))funkcja ta wyświetli nam: Kod: local tablica = {1,5,3,8,3,5,7,4}
print(#tablica)Znaczek # sprawia, że jest pobierana ilość danych w tabeli tak jak za pomocą funkcji table.getn(), wynikiem działania przykładu oczywiście będzie liczba 8, bo tyle jest danych. Kod: local tablica = {x,5,f,2,4,65}
table.remove(tablica)
print(table.getn(tablica))Wynik tego będzie równy 0, gdyż funkcja usunie całą tabelę. Kod: local tablica = {1,3,2}
print(table.getn(tablica))
table.remove(tablica, 2) -- Usuniecie liczby 3 z tablicy
print(table.getn(tablica))W tym wypadku otrzymamy: Kod: a = {}
print(table.getn(a)) --> 0
table.setn(a, 10000)
print(table.getn(a)) --> 10000g) table.find(table, value) Kod: a = {1,3,5,7,9}
print(table.find(a, 5)) --> 3W tym przykładzie funkcja zwróci wartość 3, gdyż liczba 5 znajduje się w tabeli na 3 pozycji. Kod: a = {1,3,1,2,5,8,1,9}
print(table.countElements(a, 1)) --> 3Funkcja ta zliczy wszystkie jedynki w tabeli i wyświetli ich liczbę. W tym przypadku jedynek jest 3 i funkcja wyświetla nam liczbę 3. |