Shrnutí

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

  • Text je řetězec. Jeho funkce jsou v tabulce string a obvykle se volají jako metody, přes dvojtečku: plodina:upper() je zkratka za string.upper(plodina). Text napsaný přímo v kódu potřebuje závorky: ("="):rep(10).
  • Funkce pro řetězce nikdy nemění text; vrátí nový, který musíte uložit nebo použít: plodina = plodina:upper().
  • upper a lower mění velikost písmen, len (nebo #) vrátí délku, rep text zopakuje a reverse ho otočí.
  • s:sub(i, j) vrátí část od pozice i po j, obě včetně; bez j až do konce. Záporné pozice se počítají od konce: s:sub(-3) jsou poslední tři znaky.
  • s:find(text, 1, true) vrátí pozice, kde text začíná a končí, nebo nil. Bez 1, true je hledaný text vzor.
  • ("%-10s %6.2f"):format(nazev, kg) doplní hodnoty na šířku: s mínusem je hodnota vlevo, bez něj vpravo. %% je znak procenta.
  • Texty jsou bajty a písmeno s diakritikou zabírá dva. #, sub i šířky počítají bajty, upper a lower mění jen písmena od a do z a utf8.len počítá znaky. Zarovnávejte pomocí (" "):rep(sirka - utf8.len(text)).
  • Vzory mají třídy %d, %a, %w, %s (velké písmeno znamená opak) a . pro jakýkoli znak; množiny jako [^,]; +, * a - pro opakování; ^ a $ pro začátek a konec; a % před magickým znakem. %a písmena s diakritikou nezná.
  • match vrátí první shodu, nebo její zachycení v závorkách (vždy texty), nebo nil. gmatch projde všechny shody v cyklu for.
  • gsub nahradí všechny shody a vrátí dvě hodnoty, nový text a počet: print((s:gsub("a", "b"))) vypíše jen text.

V příští lekci, o objektech a metatabulkách, zjistíte, jak dvojtečka doopravdy funguje, a dáte metody i svým vlastním tabulkám. Nejdřív si ale vyzkoušejte, co už umíte, na dnešních prodejích na trhu.

Pokyny

Projděte prodeje pomocí gmatch a nakreslete sloupcový graf: u každé plodiny její název doplněný mezerami na 10 znaků (spočítejte je pomocí utf8.len) a za ním jeden # za každý prodaný kus. Pozor na mezery za některými čárkami: do názvů se dostat nesmějí. A potíže nesmí dělat ani diakritika.

dýně      ###
mrkev     #######
jahody    #####
pšenice   ####

Pod graf vypište, kolik kusů Ema prodala celkem a která plodina se prodávala nejvíc: Celkem kusů: 19, nejprodávanější: mrkev.

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

9/9