Ir al contenido principal

Lua en otro vistazo

 

 

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

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...