Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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ě:

Kalkulačka v LUA ve finální podobě - Lua

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:

Program papoušek v LUA - Lua

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 225x (2.29 kB)
Aplikace je včetně zdrojových kódů v jazyce Lua

 

Všechny články v sekci
Lua
Článek pro vás napsal Neaktivní Účet
Avatar
Uživatelské hodnocení:
9 hlasů
Aktivity