Shrnutí

V této lekci jste se naučili, že:

  • Tabulka je v Lua jediný způsob, jak hodnoty seskupit. Tabulka, která drží hodnoty v pořadí, je seznam: local plodiny = {"mrkev", "brambory"}. Prázdný seznam je {}.
  • Indexy začínají od 1: plodiny[1] je první prvek. Index, na kterém žádný prvek není, třeba plodiny[0] nebo index za koncem, dá nil, ne chybu. Chyba přijde až později, když nil použijete: attempt to concatenate a nil value (field '?').
  • #plodiny je délka seznamu a plodiny[#plodiny] jeho poslední prvek.
  • plodiny[2] = "rajčata" změní prvek a plodiny[#plodiny + 1] = "kukuřice" přidá prvek na konec. Nenechávejte v seznamu díry (nil mezi prvky): # a ipairs pak přestanou spolehlivě fungovat.
  • table.insert(t, hodnota) přidá prvek na konec a table.insert(t, pozice, hodnota) ho vloží na pozici a zbytek posune doprava. table.remove(t) odebere poslední prvek, table.remove(t, pozice) prvek na pozici, a obě odebraný prvek vracejí.
  • for i = 1, #plodiny do projde všechny indexy (ne od 0 a ne do #plodiny + 1). for i, plodina in ipairs(plodiny) do vám v každém průchodu dá index i prvek a _ zastoupí hodnotu, kterou nepotřebujete.
  • print(plodiny) vypíše jen adresu tabulky, table: 0x…. table.concat(plodiny, ", ") spojí texty a čísla do jednoho textu, s oddělovačem mezi nimi.
  • Vzory se seznamy: součet (začít na 0 před cyklem, vypsat až za cyklem), průměr (celkem / #t, vždycky desetinné číslo, zaokrouhlené pomocí string.format("%.1f", …)) a největší nebo nejmenší hodnota (začít prvním prvkem, a když potřebujete vědět, kde je, pamatovat si i jeho index).
  • table.sort(t) řadí čísla od nejmenšího a texty podle kódů znaků: velká písmena před malými a slova začínající na Č, Š, Ž… až za Z. Mění přímo seznam a nic nevrací.

V příští lekci, o funkcích, se naučíte psát vlastní funkce, a s nimi seznam seřadit v jakémkoli pořadí. Nejdřív si ale vyzkoušejte, co už umíte, na Emině sklizni rajčat.

Pokyny

Uběhly další dva dny. Přidejte na konec seznamu sklizen čísla 8 a 5 a pak vypište celý seznam pomocí table.concat: Sklizeň: 6, 9, 4, 11, 7, 8, 5.

Vypište součet a průměr s jedním desetinným místem: Celkem: 50 kg, průměr: 7.1 kg.

Najděte nejlepší den a vypište jeho číslo (jeho index) a kolik toho Ema ten den natrhala: Nejlepší den: 4 (11 kg).

Nakonec sklizen seřaďte a vypište: Seřazeno: 4, 5, 6, 7, 8, 9, 11.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

11/11