[[:oktatas:programozás:lua|< Lua]]
====== Lua nyelv ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2012
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== Bevezetés =====
Kevés memória igényű, több paradigmás (programozási elvű), könnyű szintaktikával rendelkező script alapú programozási nyelv.
===== Kivitel =====
print "Helló Világ"
print("Helló Világ")
print("alma", 35)
===== Különleges karakterek =====
| \a | csnegőhang |
| \b | back space |
| \f | lapdobás |
| \n | új sor |
| \r | kocsi vissza |
| \t | tabulátor |
| \v | vertikális tabulátor |
| \\ | backslash |
| \" | idézőjel |
| \' | aposztróf |
| \[ | bal szögletes zárójel |
| \] | jobb szögletes zárójel |
===== Változó használat =====
a = 3
print("a: ", a)
a = 3
b = 5
c = a + b
print(c)
===== Formázott kivitel =====
==== Szélesség ====
print(string.format("%20d", 1250000))
==== Vezető nullák ====
print(string.format("%020d", 1250000))
==== Tizedesjegyek száma ====
print(string.format("%.2d", 1.250000))
===== Matematikai függvények =====
a = math.abs(-1)
print("a: ", a)
a = math.pi
print("pi értéke: ", a)
a = math.pow(2,3)
print("2 a harmadik hatványon: ", a)
a = math.sqrt(9)
print("gyök: ", a)
arad = math.rad(1)
a = math.sin(arad)
print("gyök: ", a)
math.randomseed(os.time())
a = math.random(3)
print("1-től -- 3-ig véletlenszám: ", a)
===== Operátrok =====
==== Logikai ====
* and
* or
* not
===== Konvertálás =====
a = tonumber("10")
===== Bevitel =====
Szöveg beolvasása:
nev = io.stdin:read()
Egy szám beolvasása:
kor = tonumber(io.stdin:read())
Várunk egy billentyűnyomsára:
io.read();
===== Szelekció =====
Egyágú szelekció:
if 6>3 then
print "Nagyobb"
end
Kétágú szelekció:
if 6>9 then
print "Nagyobb"
else
print "Kisebb"
end
Több ágú szelekció:
if a == 1 then
print "Első"
elseif a == 2 then
print "Második"
elseif a == 3 then
print "Harmadik"
else
print "Más"
end
===== Iteráció =====
==== Növekményes ciklus ====
Egytől tízig kiírjuk a számokat:
for i = 1, 10 do
print("Hi")
end
==== Amíg ciklus ====
a = 1
while a<=10 do
print(a)
a = a + 1
end
===== Táblák =====
==== Létrehozás ====
Üres tábla:
table1 = {}
Tábla kezdőértékkel:
table1 = {3, 4, 8, 9, 1}
==== Tábla feltöltése ====
table1 = {}
table.insert(table1, "alma")
table.insert(table1, "körte")
table.insert(table1, "szilva")
==== Elem törlése ====
Utolsó elem törlése:
table1 = {3, 4, 8, 9, 1}
table.remove(table1)
Az első elem törlése:
table.remove(table1, 1)
Az 1 a pozíció. Helyette más értékek is megadhatók.
==== Tábla bejárása ====
for i in table1 do
print(table1[i])
end
===== Szövegkezelés =====
Konkatenálás
gy = "alma"
cs = "eszik"
tev = gy .. cs
A szöveg mérete bytokban:
s = "korte"
print("Hossz: ", string.len(s))
-- Hányadik helytől
s = "kortefa"
print("Rész: ", string.sub(s,4))
Az eredmény: tefa
-- Hányadik helytől, hányadik helyig
s = "kortefa"
print("Rész: ", string.sub(s,1,3))
Az eredmény: kor
Keresés a szövegben:
szoveg = "td*4"
a = string.find(szoveg, "*")
if a == nil then
print("egyenlő")
else
print("nem egyenlő")
end
-- Kimenet: 3
print(a)
Ha a keresett szöveg nem található, akkor nil értéket kapunk, amit egyszerű
egyenlőség vizsgálattal kapunk.
===== Fájlkezelés =====
fp = io.open("adat.txt", "r")
local x = fp:read("*a")
print(x)
fp:close()
===== Függvények/Eljárások =====
A függvény meg kell előzze a hívás helyét.
function kiir()
print("Hello")
end
kiir()
io.read()
Bemenő paraméterek visszaadott paraméter:
function kiir(a, b)
return a + b
end
print(kiir(3, 4))
io.read()
===== Egyéb =====
Környezeti változó lekérdezése
utvonal = os.getenv("PATH")
Operációs rendszerbeli parancs végrehajtása:
os.execute("dir")
siker = os.execute("dir")
print(siker)