Lua - Instalace Lua a Jednoduchá kalkulačka
Vítejte u druhého dílu seriálu o Lua! Jako první bych chtěl oznámit, že musíte mít nainstalovanou Luu na svém PC! Doteď jsme si Luu zprostředkovávali Javou, ale vzhledem k tomu, že jsem přešel na Mac mi LDT začalo dělat neplechu. Samozřejmě můžete dál používat LDT, do tohoto těžšího způsobu vás nikdo nenutí.
Instalace na Windows
- Z této stránky si stáhneme Lua for Windows.
- Projedeme instalaci, při výběru komponent můžeme odškrtnout IDE (můžete používat například Notepad++)
- V editoru nyní budeme soubory ukládat jako .lua a otevírat je budeme pomocí cmd - příkazem
lua cesta_název
Instalace na OS X (Mac)
- Z této stránky si stáhneme Lua
- Projedeme instalaci
- V editoru nyní budeme soubory ukládat jako .lua a otevírat je budeme pomocí terminálu - příkazem
lua cesta_název
Instalace na Linuxu (Raspbian)
- Pomocí apt-get stáhneme lua, verzi 5.2
sudo apt-get install lua5.2
- V editoru nyní budeme soubory ukládat jako .lua a otevírat je budeme pomocí terminálu - příkazem
lua cesta_název
Programování Kalkulačky
Dnes se naučíme číst vstup od uživatele, to se dělá pomocí
io.read()
Budeme používat základní matematické funkce, neboli + - * /. No a vrátíme se k proměnným z minulého dílu.
Začneme tedy základem. Vytvoříme si funkci kalkulacka (věřte nebo ne, v pokročilejších částech vám ten pořádek vykouzlí úsměv na tvářích). Do ní vložíme samozřejmě nějaké to uvítání a vytvoříme si proměnnou s vstupem od uživatele. Tato kalkulačka ale ušetří místo na obrazovce uživatele, nevypíšou se mu totiž všechny výpočty ale jen ten, který si zvolí.
print("Vítá tě kalkulačka z ITnetwork") print("Zadej první číslo:") prvni = io.read() print("Zadej druhé číslo:") druhe = io.read() print("Zadej operaci (+-*/)") operace = io.read()
A jdeme na podmínky! Podmínky jsou v Lue "tak jak je znáte" - if. No a k ifu samozřejmě patří i else. V lue se podmínky ukončují endem.
print("Vítá tě kalkulačka z ITnetwork") print("Zadej první číslo:") prvni = io.read() print("Zadej druhé číslo:") druhe = io.read() print("Zadej operaci (+-*/)") operace = io.read() if operace == "+" then print(prvni + druhe) elseif operace == "-" then print(prvni - druhe) elseif operace == "*" then print(prvni * druhe) elseif operace == "/" then print(prvni / druhe) end
To ale ještě není vše. My si kalkulačku vylepšíme a budeme moci provést další operaci bez dalšího spuštění. No a hodí se nám funkce! Vytvoříme funkci znovu, ve které se uživatele zeptáme, jestli chce provést další operaci. A odpověď bude klasická y/n. V případě, že napíše y se spustí funkce kalkulačka, v případě, že napíše cokoli jiného (očekávejme n), program se ukončí.
function znovu() print("Chceš provést další operaci? y/n") dalsi = io.read() if dalsi == "y" then kalkulacka() end end function kalkulacka() print("Zadej první číslo:") prvni = io.read() print("Zadej druhé číslo:") druhe = io.read() print("Zadej operaci (+-*/)") operace = io.read() if operace == "+" then print(prvni + druhe) elseif operace == "-" then print(prvni - druhe) elseif operace == "*" then print(prvni * druhe) elseif operace == "/" then print(prvni / druhe) end znovu() end print("Vítá tě kalkulačka z devbooku") kalkulacka()
Naše kalkulačka ve finální podobě:

Papouškovací program
Budeme pokračovat v šlépějích ostatních redaktorů a pustíme se do programu papoušek, který je několikrát lehčí. Ale proč si ho nenapsat? Vytvoříme si soubor papousek.lua a v něm funkci papousek. No a ještě před papouškem funkci znovu - opět kvůli tomu, že Lua neumí spustit funkce načtené až po pokusu o spuštění. Ve funkci znovu použijeme kód z funkce znovu v kalkulačce:
print("Chceš zadat další text k papouškování? y/n") dalsi = io.read() if dalsi == "y" then papousek() end
V samotném programu budeme používat opět io.read a jednu proměnnou. Takže jdeme na na to! Do funkce papousek napíšeme přivítání a vytvoříme proměnnou text s uživatelským textem. No a vypíšeme proměnnou text printem - a klidně dvakrát.
print("Jsem papoušek z afriky a budu po tobě opakovat") print("Napiš něco") text = io.read() print(text) print(text)
Výsledek:

Věkomátor
A nyní jdeme na program věkomátor. Ukáže vám váš aktuální věk poté, co zadáte rok narození. Odchylka může být tedy 365 dní (v přestupném roku). Naučíme se taky, jak zjistit datum. Aktuální datum nebo čas zjistíme pomocí os.date(). Příklad:
os.date("%d.%m.%Y")
a dostaneme
1. 1. 1111
Jdeme tedy na program věkomátor! Uděláme si ho trošku složitější - budeme moci zadat až 5 jmen, příjmení a datumů narození. Vytvoříme tedy funkci vekomator a funkci upravit. Funkce upravit musí být jako první, protože ji budeme používat ve funkci vekomator.
Vytvoříme si 5x proměnné jmenoprijmeni a rok. Tedy například jmenoprijmeni3. A jdeme zapisovat do proměnných! Na každou proměnnou se zeptáme uživatele, protože generátor jmen ještě neumíme. Kód tedy nyní vypadá takto:
print("Vlož 1. Jméno a Příjmení") jmenoprijmeni1 = io.read() print("Vlož 1. rok narození") rok1 = io.read() print("Vlož 2. Jméno a Příjmení") jmenoprijmeni2 = io.read() print("Vlož 2. rok narození") rok2 = io.read() print("Vlož 3. Jméno a Příjmení") jmenoprijmeni3 = io.read() print("Vlož 3. rok narození") rok3 = io.read() print("Vlož 4. Jméno a Příjmení") jmenoprijmeni4 = io.read() print("Vlož 4. rok narození") rok4 = io.read() print("Vlož 5. Jméno a Příjmení") jmenoprijmeni5 = io.read() print("Vlož 5. rok narození") rok5 = io.read()
Ano, vypadá to šíleně, ale není. A teď jdeme udělat příkazy. No, jako první uděláme samozřejmě help. Pro každý příkaz vytvoříme samostatnou funkci. Příkazy uděláme tři - help, zobraz a uprav. Pro zadávání vytvoříme taky samostatnou funkci, kvůli opakování. Zatím tedy kód celého programu vypadá takto:
function uprav() vloz() end function zobraz() vloz() end function help() print("help - Všechny příkazy") print("zobraz - Zobrazí informace o uživateli") print("uprav - Upraví uživatele") vloz() end function vekomator() print("Vlož 1. Jméno a Příjmení") jmenoprijmeni1 = io.read() print("Vlož 1. rok narození") rok1 = io.read() print("Vlož 2. Jméno a Příjmení") jmenoprijmeni2 = io.read() print("Vlož 2. rok narození") rok2 = io.read() print("Vlož 3. Jméno a Příjmení") jmenoprijmeni3 = io.read() print("Vlož 3. rok narození") rok3 = io.read() print("Vlož 4. Jméno a Příjmení") jmenoprijmeni4 = io.read() print("Vlož 4. rok narození") rok4 = io.read() print("Vlož 5. Jméno a Příjmení") jmenoprijmeni5 = io.read() print("Vlož 5. rok narození") rok5 = io.read() vloz() end function vloz() prikaz = io.read() if prikaz == "help" then help() elseif prikaz == "zobraz" then zobraz() elseif prikaz == "uprav" then uprav() else print("Neplatný příkaz") vloz() end end vekomator()
Kód už je celkem dlouhý, co říkáte? To je pro tento článek všechno,
příště program doděláme.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 226x (2.29 kB)
Aplikace je včetně zdrojových kódů v jazyce Lua