En aquest tema, explorarem els diferents tipus d'operadors disponibles en Lua. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques, com ara aritmètiques, lògiques o de comparació. A Lua, els operadors es poden classificar en les següents categories:

  1. Operadors aritmètics
  2. Operadors de comparació
  3. Operadors lògics
  4. Operadors de concatenació
  5. Operadors de longitud
  6. Operadors de precedència

  1. Operadors Aritmètics

Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques. A continuació es mostra una taula amb els operadors aritmètics disponibles en Lua:

Operador Descripció Exemple Resultat
+ Suma 5 + 3 8
- Resta 5 - 3 2
* Multiplicació 5 * 3 15
/ Divisió 5 / 3 1.6667
% Mòdul (residu) 5 % 3 2
^ Exponenciació 5 ^ 3 125
- Negació unària -5 -5

Exemple Pràctic

local a = 10
local b = 3

print("Suma: ", a + b)          -- Output: Suma: 13
print("Resta: ", a - b)         -- Output: Resta: 7
print("Multiplicació: ", a * b) -- Output: Multiplicació: 30
print("Divisió: ", a / b)       -- Output: Divisió: 3.3333
print("Mòdul: ", a % b)         -- Output: Mòdul: 1
print("Exponenciació: ", a ^ b) -- Output: Exponenciació: 1000
print("Negació unària: ", -a)   -- Output: Negació unària: -10

  1. Operadors de Comparació

Els operadors de comparació s'utilitzen per comparar dos valors. Aquests operadors sempre retornen un valor booleà (true o false). A continuació es mostra una taula amb els operadors de comparació disponibles en Lua:

Operador Descripció Exemple Resultat
== Igual a 5 == 3 false
~= Diferent de 5 ~= 3 true
> Major que 5 > 3 true
< Menor que 5 < 3 false
>= Major o igual que 5 >= 3 true
<= Menor o igual que 5 <= 3 false

Exemple Pràctic

local a = 10
local b = 3

print("Igual a: ", a == b)          -- Output: Igual a: false
print("Diferent de: ", a ~= b)      -- Output: Diferent de: true
print("Major que: ", a > b)         -- Output: Major que: true
print("Menor que: ", a < b)         -- Output: Menor que: false
print("Major o igual que: ", a >= b)-- Output: Major o igual que: true
print("Menor o igual que: ", a <= b)-- Output: Menor o igual que: false

  1. Operadors Lògics

Els operadors lògics s'utilitzen per combinar expressions booleanes. A Lua, els operadors lògics disponibles són:

Operador Descripció Exemple Resultat
and I lògic true and false false
or O lògic true or false true
not Negació not true false

Exemple Pràctic

local a = true
local b = false

print("I lògic: ", a and b)  -- Output: I lògic: false
print("O lògic: ", a or b)   -- Output: O lògic: true
print("Negació: ", not a)    -- Output: Negació: false

  1. Operador de Concatenació

L'operador de concatenació s'utilitza per unir dues cadenes de text. A Lua, l'operador de concatenació és ...

Exemple Pràctic

local str1 = "Hola"
local str2 = " món"

print("Concatenació: ", str1 .. str2) -- Output: Concatenació: Hola món

  1. Operador de Longitud

L'operador de longitud (#) s'utilitza per obtenir la longitud d'una cadena o el nombre d'elements en una taula.

Exemple Pràctic

local str = "Hola món"
local tbl = {1, 2, 3, 4, 5}

print("Longitud de la cadena: ", #str) -- Output: Longitud de la cadena: 8
print("Nombre d'elements en la taula: ", #tbl) -- Output: Nombre d'elements en la taula: 5

  1. Precedència d'Operadors

La precedència d'operadors determina l'ordre en què s'executen les operacions en una expressió. A Lua, la precedència d'operadors és la següent (de major a menor):

  1. ^ (exponenciació)
  2. not (negació), # (longitud), - (negació unària)
  3. *, /, % (multiplicació, divisió, mòdul)
  4. +, - (suma, resta)
  5. .. (concatenació)
  6. <, >, <=, >=, ~=, == (comparació)
  7. and (I lògic)
  8. or (O lògic)

Exemple Pràctic

local a = 5
local b = 3
local c = 2

-- Sense parèntesis, la multiplicació es fa abans que la suma
print("Resultat: ", a + b * c) -- Output: Resultat: 11

-- Amb parèntesis, la suma es fa abans que la multiplicació
print("Resultat: ", (a + b) * c) -- Output: Resultat: 16

Exercicis Pràctics

  1. Escriu un script que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres donats per l'usuari.
  2. Escriu un script que compari dos nombres donats per l'usuari i imprimeixi si són iguals, diferents, si un és major que l'altre, etc.
  3. Escriu un script que uneixi dues cadenes de text donades per l'usuari i imprimeixi el resultat.
  4. Escriu un script que calculi la longitud d'una cadena de text donada per l'usuari.

Solucions

  1. Suma, resta, multiplicació, divisió i mòdul
print("Introdueix el primer nombre:")
local num1 = io.read("*n")
print("Introdueix el segon nombre:")
local num2 = io.read("*n")

print("Suma: ", num1 + num2)
print("Resta: ", num1 - num2)
print("Multiplicació: ", num1 * num2)
print("Divisió: ", num1 / num2)
print("Mòdul: ", num1 % num2)
  1. Comparació de nombres
print("Introdueix el primer nombre:")
local num1 = io.read("*n")
print("Introdueix el segon nombre:")
local num2 = io.read("*n")

print("Igual a: ", num1 == num2)
print("Diferent de: ", num1 ~= num2)
print("Major que: ", num1 > num2)
print("Menor que: ", num1 < num2)
print("Major o igual que: ", num1 >= num2)
print("Menor o igual que: ", num1 <= num2)
  1. Concatenació de cadenes
print("Introdueix la primera cadena:")
local str1 = io.read()
print("Introdueix la segona cadena:")
local str2 = io.read()

print("Concatenació: ", str1 .. str2)
  1. Longitud de cadena
print("Introdueix una cadena:")
local str = io.read()

print("Longitud de la cadena: ", #str)

Conclusió

En aquest tema, hem après sobre els diferents tipus d'operadors disponibles en Lua, incloent-hi els operadors aritmètics, de comparació, lògics, de concatenació i de longitud. També hem vist com la precedència d'operadors afecta l'ordre en què es realitzen les operacions. Finalment, hem practicat aquests conceptes amb alguns exercicis pràctics. Ara estàs preparat per utilitzar operadors en els teus scripts Lua!

© Copyright 2024. Tots els drets reservats