En aquest tema, explorarem els diferents tipus d'operadors disponibles en Ruby. Els operadors són símbols especials que es fan servir per realitzar operacions sobre variables i valors. Ruby ofereix una àmplia gamma d'operadors que es poden classificar en diverses categories:
- Operadors aritmètics
- Operadors de comparació
- Operadors lògics
- Operadors d'assignació
- Operadors de rang
- Operadors de concatenació
- Operadors aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, resta, multiplicació, divisió, etc.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
+ |
Suma | 5 + 3 |
8 |
- |
Resta | 5 - 3 |
2 |
* |
Multiplicació | 5 * 3 |
15 |
/ |
Divisió | 6 / 3 |
2 |
% |
Mòdul | 5 % 3 |
2 |
** |
Exponenciació | 2 ** 3 |
8 |
Exemple pràctic
a = 10 b = 3 puts "Suma: #{a + b}" # Suma: 13 puts "Resta: #{a - b}" # Resta: 7 puts "Multiplicació: #{a * b}" # Multiplicació: 30 puts "Divisió: #{a / b}" # Divisió: 3 puts "Mòdul: #{a % b}" # Mòdul: 1 puts "Exponenciació: #{a ** b}"# Exponenciació: 1000
- Operadors de comparació
Els operadors de comparació s'utilitzen per comparar dos valors. El resultat d'una operació de comparació és un valor booleà (true
o false
).
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
a = 10 b = 3 puts "Igual a: #{a == b}" # Igual a: false puts "Diferent de: #{a != b}" # Diferent de: true puts "Major que: #{a > b}" # Major que: true puts "Menor que: #{a < b}" # Menor que: false puts "Major o igual que: #{a >= b}" # Major o igual que: true puts "Menor o igual que: #{a <= b}" # Menor o igual que: false
- Operadors lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
&& |
I lògic | true && false |
false |
` | ` | O lògic | |
! |
No lògic | !true |
false |
Exemple pràctic
a = true b = false puts "I lògic: #{a && b}" # I lògic: false puts "O lògic: #{a || b}" # O lògic: true puts "No lògic: #{!a}" # No lògic: false
- Operadors d'assignació
Els operadors d'assignació s'utilitzen per assignar valors a les variables.
Operador | Descripció | Exemple | Equivalent a |
---|---|---|---|
= |
Assignació | a = 5 |
a = 5 |
+= |
Assignació i suma | a += 5 |
a = a + 5 |
-= |
Assignació i resta | a -= 5 |
a = a - 5 |
*= |
Assignació i multiplicació | a *= 5 |
a = a * 5 |
/= |
Assignació i divisió | a /= 5 |
a = a / 5 |
%= |
Assignació i mòdul | a %= 5 |
a = a % 5 |
**= |
Assignació i exponenciació | a **= 5 |
a = a ** 5 |
Exemple pràctic
a = 10 a += 5 puts "Assignació i suma: #{a}" # Assignació i suma: 15 a -= 3 puts "Assignació i resta: #{a}" # Assignació i resta: 12 a *= 2 puts "Assignació i multiplicació: #{a}" # Assignació i multiplicació: 24 a /= 4 puts "Assignació i divisió: #{a}" # Assignació i divisió: 6 a %= 5 puts "Assignació i mòdul: #{a}" # Assignació i mòdul: 1 a **= 3 puts "Assignació i exponenciació: #{a}" # Assignació i exponenciació: 1
- Operadors de rang
Els operadors de rang s'utilitzen per crear seqüències de valors.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
.. |
Inclou el final | (1..5).to_a |
[1, 2, 3, 4, 5] |
... |
Exclou el final | (1...5).to_a |
[1, 2, 3, 4] |
Exemple pràctic
inclou_final = (1..5).to_a exclou_final = (1...5).to_a puts "Inclou el final: #{inclou_final}" # Inclou el final: [1, 2, 3, 4, 5] puts "Exclou el final: #{exclou_final}" # Exclou el final: [1, 2, 3, 4]
- Operadors de concatenació
Els operadors de concatenació s'utilitzen per unir cadenes de text.
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
+ |
Concatenació | "Hola" + " Món" |
"Hola Món" |
<< |
Concatenació destructiva | a = "Hola"; a << " Món" |
"Hola Món" |
Exemple pràctic
cadena1 = "Hola" cadena2 = " Món" concatenacio = cadena1 + cadena2 puts "Concatenació: #{concatenacio}" # Concatenació: Hola Món cadena1 << " Món" puts "Concatenació destructiva: #{cadena1}" # Concatenació destructiva: Hola Món
Exercicis pràctics
- Escriu un programa que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres introduïts per l'usuari.
- Escriu un programa que compari dos nombres introduïts per l'usuari i mostri si són iguals, diferents, si un és major que l'altre, etc.
- Escriu un programa que utilitzi operadors lògics per combinar diverses condicions i mostri el resultat.
- Escriu un programa que utilitzi operadors d'assignació per modificar el valor d'una variable inicialitzada amb un nombre introduït per l'usuari.
- Escriu un programa que generi una seqüència de nombres utilitzant operadors de rang i la mostri per pantalla.
- Escriu un programa que uneixi dues cadenes de text introduïdes per l'usuari utilitzant operadors de concatenació.
Solucions
- Càlcul aritmètic
puts "Introdueix el primer nombre:" num1 = gets.chomp.to_i puts "Introdueix el segon nombre:" num2 = gets.chomp.to_i puts "Suma: #{num1 + num2}" puts "Resta: #{num1 - num2}" puts "Multiplicació: #{num1 * num2}" puts "Divisió: #{num1 / num2}" puts "Mòdul: #{num1 % num2}"
- Comparació de nombres
puts "Introdueix el primer nombre:" num1 = gets.chomp.to_i puts "Introdueix el segon nombre:" num2 = gets.chomp.to_i puts "Igual a: #{num1 == num2}" puts "Diferent de: #{num1 != num2}" puts "Major que: #{num1 > num2}" puts "Menor que: #{num1 < num2}" puts "Major o igual que: #{num1 >= num2}" puts "Menor o igual que: #{num1 <= num2}"
- Operadors lògics
puts "Introdueix el primer valor booleà (true/false):" bool1 = gets.chomp == 'true' puts "Introdueix el segon valor booleà (true/false):" bool2 = gets.chomp == 'true' puts "I lògic: #{bool1 && bool2}" puts "O lògic: #{bool1 || bool2}" puts "No lògic del primer valor: #{!bool1}"
- Operadors d'assignació
puts "Introdueix un nombre:" num = gets.chomp.to_i num += 5 puts "Assignació i suma: #{num}" num -= 3 puts "Assignació i resta: #{num}" num *= 2 puts "Assignació i multiplicació: #{num}" num /= 4 puts "Assignació i divisió: #{num}" num %= 5 puts "Assignació i mòdul: #{num}" num **= 3 puts "Assignació i exponenciació: #{num}"
- Operadors de rang
puts "Introdueix el valor inicial del rang:" inici = gets.chomp.to_i puts "Introdueix el valor final del rang:" final = gets.chomp.to_i rang_inclou = (inici..final).to_a rang_exclou = (inici...final).to_a puts "Rang que inclou el final: #{rang_inclou}" puts "Rang que exclou el final: #{rang_exclou}"
- Operadors de concatenació
puts "Introdueix la primera cadena de text:" cadena1 = gets.chomp puts "Introdueix la segona cadena de text:" cadena2 = gets.chomp concatenacio = cadena1 + cadena2 puts "Concatenació: #{concatenacio}" cadena1 << cadena2 puts "Concatenació destructiva: #{cadena1}"
Conclusió
En aquesta secció, hem après sobre els diferents tipus d'operadors en Ruby i com utilitzar-los per realitzar diverses operacions. Hem vist exemples pràctics i hem practicat amb exercicis per reforçar els conceptes apresos. Ara estàs preparat per avançar al següent tema, on explorarem les estructures de control en Ruby.
Curs de Programació en Ruby
Mòdul 1: Introducció a Ruby
Mòdul 2: Conceptes Bàsics de Ruby
Mòdul 3: Treballant amb Col·leccions
Mòdul 4: Programació Orientada a Objectes en Ruby
- Classes i Objectes
- Variables i Mètodes d'Instància
- Variables i Mètodes de Classe
- Herència
- Mòduls i Mixins
Mòdul 5: Conceptes Avançats de Ruby
- Blocs, Procs i Lambdas
- Metaprogramació
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Expressions Regulars
Mòdul 6: Introducció a Ruby on Rails
- Què és Ruby on Rails?
- Configuració de l'Entorn Rails
- Creació d'una Aplicació Simple en Rails
- Arquitectura MVC
- Rutes
Mòdul 7: Proves en Ruby
- Introducció a les Proves
- Proves Unitàries amb Minitest
- Desenvolupament Basat en Comportament amb RSpec
- Mocking i Stubbing
Mòdul 8: Millors Pràctiques en Ruby
- Estil de Codi i Convencions
- Refactorització
- Optimització del Rendiment
- Millors Pràctiques de Seguretat