Shrnutí
V této lekci jste se naučili, že:
- Tabulka může být slovník:
{mrkev = 12, brambory = 30}obsahuje dvojice klíč–hodnota. Zvláštní typ pro to Lua nemá; seznam je tabulka, jejíž klíče jsou 1, 2, 3… - Hodnotu přečtete pomocí tečky,
stodola.mrkev, nebo v hranatých závorkách,stodola["mrkev"]. Klíč s mezerou nebo s diakritikou musí být v závorkách a uvozovkách:["dýně"] = 4. - Přiřazení změní hodnotu nebo přidá nový klíč (
stodola.vejce = 18), přiřazenínilklíč odebere. Chybějící klíč dánil, ne chybu, astodola.jahody or 0z něj udělá výchozí hodnotu.#klíče slovníku nepočítá. - Když je klíč v proměnné, použijte hranaté závorky bez uvozovek:
ceny[plodina].ceny.plodinaje klíč"plodina". for klic, hodnota in pairs(t)projde všechny klíče, a to v pořadí, které není dané. Když chcete vypisovat popořadě, posbírejte klíče do seznamu, seřaďte ho pomocítable.sorta projděte pomocíipairs.pocty[x] = (pocty[x] or 0) + 1počítá výskyty; na závorkách záleží.- Záznam je tabulka, která popisuje jednu věc a má pevné klíče:
{nazev = "Mrkev", dny = 3}. Seznam záznamů zpracujete pomocíipairs: sčítáte, vybíráte, hledáte. - Tabulky se dají vnořovat:
farma.stodola.vejce. Čtení přes chybějící tabulku skončí chybouattempt to index a nil value (field 'kulna'). - Proměnná drží odkaz na tabulku:
local b = aani předání funkci tabulku nezkopíruje.{} == {}jefalse. Samostatnou tabulku získáte kopírováním pomocípairs.
V příští lekci, Řetězce, budete pracovat s texty: vystřihovat z nich části, hledat v nich, zarovnávat je do sloupců a rozebírat je na slova a čísla.
A teď si to procvičte. Ema si tento týden vedla deník sklizně: co který den sklidila a kolik.
Jak psát:
"Shift + ů
\Alt Gr + q
{Alt Gr + b
}Alt Gr + n
[Alt Gr + f
]Alt Gr + g
<Alt Gr + ,
>Alt Gr + .
#Alt Gr + x
~Alt Gr + +
^Alt Gr + š
%Shift + =
*Alt Gr + -
/Shift + ú
:Shift + .
Pokyny
Napište funkci soucty(zaznamy), která vrátí slovník: u každé plodiny, kolik jí Ema sklidila celkem. Pak součty vypište, seřazené podle názvu plodiny:
brambory: 35
dýně: 3
mrkev: 25Napište funkci hodnota(sklizen, cenik), která dostane slovník součtů a ceník a vrátí, kolik mincí celá sklizeň vynese. Vypište:
Hodnota: 465 mincíNakonec vypište Podle množství: a pod to plodiny ještě jednou, od největšího množství po nejmenší. Seznam plodin seřaďte s porovnávací funkcí, která porovná jejich součty:
Podle množství:
brambory: 35
mrkev: 25
dýně: 3Začněte programovat zdarma
10/10