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:
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:
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é 226x (2.29 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Lua