Programar en Lua es como programar en un lenguaje pseudocódigo como PSeInt debido a su aparente simplesa para empezar a teclear código.
Ejemplo 1. Crear un programa que valide si el estado civil del usuario es "casado" y su salario es menor a 26000, en caso de ser así dar un aumento del 16%. En caso contrario hacer nada.
aumento.lua
# Aumento de salario salario = 12000 edo_civil = "casado" salario_final = 0 print("Salario: $",salario) print("Estado civil: ",edo_civil) if salario < 26000 and edo_civil == "casado" then salario_final = ((16.0/100.0)*salario)+salario end if salario_final == 0 then salario_final = salario end print("Salario final: $",salario_final)
Ejecutamos:
lua aumento.lua
Salida:
Salario: $ 12000 Estado civil: casado Salario final: $ 13920.0
Ejemplo 2. Hacer un programa con funciones matemáticas, suma resta, factorial, etc.
funciones.lua
-- Funciones function saludar() print("Hola, mundo en Lua!") end function saludarNombre(nombre) if nombre~=nil then print("Hola, "..nombre.."!") else saludar() end end function restar(x,y) return x-y end function producto(x,y) return x*y end function capacidadPago(x,y) return restar(x,y) end function division(x,y) if y==0 then return 0.0 else return x/y end end function factorial(n) if n == 0 then return 1 end return n * factorial(n-1) end function combinatorio(n,k) x = factorial(n) y = producto(factorial(k), factorial(restar(n,k))) return division(x, y) end function cambioPorcentual(variacion, valor_inicial) return (variacion/valor_inicial)*100 end function sumar(x,y) return x+y end saludar() nombre = "Fernando" saludarNombre(nombre) saludarNombre(nil) ingresos = 18500.9 egresos = 1299.80 print("Tus ingresos: $"..ingresos) print("Tus egresos: $"..egresos) print("Tu capacidad de pago es: $"..capacidadPago(ingresos,egresos)) numero = 45 print("El factorial de "..numero.." es "..factorial(numero)) n = 9 k = 6 print("El combinatorio de "..n.." y "..k.." es "..combinatorio(n,k)) v = 45 vi = 345 print("Valor inicial: $"..vi) print("Valor actual: $"..sumar(vi,v)) print("Variacion: "..v) print("El cambio porcentual es de: "..math.ceil(cambioPorcentual(v,vi)).."%")
Ejecutamos:
lua funciones.lua
Salida:
Hola, mundo en Lua! Hola, Fernando! Hola, mundo en Lua! Tus ingresos: $18500.9 Tus egresos: $1299.8 Tu capacidad de pago es: $17201.1 El factorial de 45 es -8797348664486920192 El combinatorio de 9 y 6 es 84.0 Valor inicial: $345 Valor actual: $390 Variacion: 45 El cambio porcentual es de: 14%
Ejemplo 3. Calcular el cambio porcentual.
porcentual.lua
function cambioPorcentual(variacion, valor_inicial) return (variacion/valor_inicial)*100 end print("\t===== Cambio porcentual en Lua =====") v=26 vi=167 print("Variacion:",v) print("Valor inicial:",vi) print("El cambio porcentual es de:",math.ceil(cambioPorcentual(v,vi)))
Ejecutamos:
lua porcentual.lua
Salida:
===== Cambio porcentual en Lua ===== Variacion: 26 Valor inicial: 167 El cambio porcentual es de: 16
Con Lua se tiene estructuras de control (if, if-else, while, for, etc.) similares a lenguajes como C.
operaciones.lua
# Operaciones print("Suma de 3 + 5 =",(3+5)) print("Resta de 23 - 20 =",(23-20)) booleanas = true print("Booleano:",booleanas) booleanas = true and true print("Booleano true and true:",booleanas) booleanas = true or true print("Booleano true or true:",booleanas) booleanas = false or true print("Booleano false or true:",booleanas) booleanas = true or false print("Booleano true or false:",booleanas) booleanas = true and false print("Booleano true and false:",booleanas) booleanas = true and false or true print("Booleano true and false or true:",booleanas) booleanas = not booleanas print("Booleano not booleanas:",booleanas) x = 55 if(x > 56) then print("Mayor a 56:",x); end if(x > 45) then print("Mayor a 45:",x) else print("Menor a 45:",x) end if(x > 344) then print("Mayor a 344:",x) elseif(x > 211) then print("Mayor a 211:",x) else print("X:",x) end MAX = 10 local cont = MAX while cont > 0 do print("Contador = ",cont) cont = cont - 1 end print("===================================") local cont = 0 while cont < MAX do print("Contador = ",cont) cont = cont + 1 end
Ejecutamos:
lua operaciones.lua
Salida:
Suma de 3 + 5 = 8 Resta de 23 - 20 = 3 Booleano: true Booleano true and true: true Booleano true or true: true Booleano false or true: true Booleano true or false: true Booleano true and false: false Booleano true and false or true: true Booleano not booleanas: false Mayor a 45: 55 X: 55 Contador = 10 Contador = 9 Contador = 8 Contador = 7 Contador = 6 Contador = 5 Contador = 4 Contador = 3 Contador = 2 Contador = 1 =================================== Contador = 0 Contador = 1 Contador = 2 Contador = 3 Contador = 4 Contador = 5 Contador = 6 Contador = 7 Contador = 8 Contador = 9
En próximos haremos comparaciones entre Lua, Rust, Golang y quizás Vlang y Odin
Enlaces:
https://www.lua.org/https://pseint.sourceforge.net/
https://odin-lang.org/
https://vlang.io/
https://go.dev/
https://www.rust-lang.org/es
Comentarios
Publicar un comentario