IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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 - Inštalácia Lua a Jednoduchá kalkulačka

Vitajte u druhého dielu seriálu o Lua! Ako prvý by som chcel oznámiť, že musíte mať nainštalovanú Luu na svojom PC! Doteraz sme si Luu sprostredkovávali Javou, ale vzhľadom k tomu, že som prešiel na Mac mi LDT začalo robiť neplechu. Samozrejme môžete ďalej používať LDT, do tohto ťažšieho spôsobu vás nikto nenúti.

Inštalácia na Windows

  • Z tejto stránky si stiahneme Lua for Windows.
  • Prejdeme inštaláciu, pri výbere komponentov môžeme odškrtnúť IDE (môžete používať napríklad Notepad ++)
  • V editore teraz budeme súbory ukladať ako .lua a otvárať ich budeme pomocou cmd - príkazom
lua cesta_název

Inštalácia na OS X (Mac)

  • Z tejto stránky si stiahneme Lua
  • prejdeme inštaláciu
  • V editore teraz budeme súbory ukladať ako .lua a otvárať ich budeme pomocou terminálu - príkazom
lua cesta_název

Inštalácia na Linuxe (Raspbian)

  • Pomocou apt-get stiahneme lua, verziu 5.2
sudo apt-get install lua5.2
  • V editore teraz budeme súbory ukladať ako .lua a otvárať ich budeme pomocou terminálu - príkazom
lua cesta_název

Programovanie Kalkulačky

Dnes sa naučíme čítať vstup od užívateľa, to sa robí pomocou

io.read()

Budeme používať základné matematické funkcie, čiže + - * /. No a vrátime sa k premenným z minulého dielu.

Začneme teda základom. Vytvoríme si funkciu kalkulacka (verte alebo nie, v pokročilejších častiach vám ten poriadok vykúzli úsmev na tvárach). Do nej vložíme samozrejme nejaké to privítanie a vytvoríme si premennú s vstupom od užívateľa. Táto kalkulačka ale ušetrí miesto na obrazovke užívateľa, nevypíše sa mu totiž všetky výpočty ale len ten, ktorý 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 ideme na podmienky! Podmienky sú v Lue "tak ako ich poznáte" - if. No ak IFU samozrejme patrí aj else. V lue sa podmienky ukončujú endom.

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 ešte nie je všetko. My si kalkulačku vylepšíme a budeme môcť vykonať ďalšiu operáciu bez ďalšieho spustenia. No a hodí sa nám funkcie! Vytvoríme funkciu znovu, v ktorej sa používateľa opýtame, či chce vykonať ďalšiu operáciu. A odpoveď bude klasická y / n. V prípade, že napíše y sa spustí funkcia kalkulačka, v prípade, že napíše čokoľvek iné (očakávajme n), program sa 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ša kalkulačka vo finálnej podobe:

Kalkulačka v LUA vo finálnej podobe - Lua

Papouškovací program

Budeme pokračovať v šľapajách ostatných redaktorov a pustíme sa do programu papagáj, ktorý je niekoľkokrát ľahšia. Ale prečo si ho nenapísať? Vytvoríme si súbor papousek.lua a v ňom funkciu papagáj. No a ešte pred papagájom funkciu znova - opäť kvôli tomu, že Lua nevie spustiť funkcie načítané až po pokuse o spustenie. Vo funkcii znovu použijeme kód z funkcie znovu v kalkulačke:

print("Chceš zadat další text k papouškování? y/n")
dalsi = io.read()
if dalsi == "y" then
papousek()
end

V samotnom programe budeme používať opäť io.read a jednu premennú. Takže ideme na na to! Do funkcie papagáj napíšeme privítanie a vytvoríme premennú text s užívateľským textom. No a vypíšeme premennou text printom - a pokojne 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ýsledok:

Program papagáj v LUA - Lua

Věkomátor

A teraz ideme na program věkomátor. Ukáže vám váš aktuálny vek potom, čo zadáte rok narodenia. Výnimka sa teda 365 dní (v priestupnom roku). Naučíme sa taky, ako zistiť dátum. Aktuálny dátum alebo čas zistíme pomocou os.date (). Príklad:

os.date("%d.%m.%Y")

a dostaneme

1. 1. 1111

Ideme teda na program věkomátor! Urobíme si ho trošku zložitejšie - budeme môcť zadať až 5 mien, priezvisko a dátumov narodenia. Vytvoríme teda funkciu vekomator a funkciu upraviť. Funkcia upraviť musí byť ako prvý, pretože ju budeme používať vo funkcii vekomator.

Vytvoríme si 5x premenné MenoPriezvisko a rok. Teda napríklad jmenoprijmeni3. A ideme zapisovať do premenných! Na každú premennú sa spýtame užívateľa, pretože generátor mien ešte nevieme. Kód teda teraz vyzerá 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()

Áno, vyzerá to šialene, ale nie je. A teraz ideme urobiť príkazy. No, ako prvý urobíme samozrejme help. Pre každý príkaz vytvoríme samostatnú funkciu. Príkazy urobíme tri - help, zobraz a uprav. Pre zadávanie vytvoríme taky samostatnú funkciu, kvôli opakovania. Zatiaľ teda kód celého programu vyzerá 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 celkom dlhý, čo poviete? :) To je pre tento článok všetko, nabudúce program dorobíme.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 225x (2.29 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Lua

 

Všetky články v sekcii
Lua
Článok pre vás napísal Neaktivní Účet
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity