En aquest tema, aprendrem sobre els operadors i les expressions en Objective-C. Els operadors són símbols que indiquen a l'ordinador que realitzi operacions específiques sobre una o més variables. Les expressions són combinacions de variables, constants i operadors que es poden avaluar per obtenir un valor.

Tipus d'Operadors

Objective-C ofereix diversos tipus d'operadors que es poden utilitzar per realitzar diferents operacions. Aquests inclouen:

  1. Operadors Aritmètics
  2. Operadors de Comparació
  3. Operadors Lògics
  4. Operadors d'Assignació
  5. Operadors d'Increment i Decrement
  6. Operadors de Bit a Bit

Operadors Aritmètics

Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, la resta, la multiplicació i la divisió.

Operador Descripció Exemple Resultat
+ Suma a + b Suma de a i b
- Resta a - b Resta de b a a
* Multiplicació a * b Producte de a i b
/ Divisió a / b Quocient de a i b
% Mòdul a % b Residual de la divisió de a per b

Exemple:

int a = 10;
int b = 3;
int sum = a + b; // 13
int difference = a - b; // 7
int product = a * b; // 30
int quotient = a / b; // 3
int remainder = a % b; // 1

Operadors de Comparació

Els operadors de comparació s'utilitzen per comparar dos valors. El resultat d'una operació de comparació és un valor booleà (YES o NO).

Operador Descripció Exemple Resultat
== Igual a a == b YES si a és igual a b
!= Diferent de a != b YES si a és diferent de b
> Major que a > b YES si a és major que b
< Menor que a < b YES si a és menor que b
>= Major o igual que a >= b YES si a és major o igual que b
<= Menor o igual que a <= b YES si a és menor o igual que b

Exemple:

int a = 10;
int b = 3;
BOOL isEqual = (a == b); // NO
BOOL isNotEqual = (a != b); // YES
BOOL isGreater = (a > b); // YES
BOOL isLess = (a < b); // NO
BOOL isGreaterOrEqual = (a >= b); // YES
BOOL isLessOrEqual = (a <= b); // NO

Operadors Lògics

Els operadors lògics s'utilitzen per combinar expressions booleanes.

Operador Descripció Exemple Resultat
&& I lògic a && b YES si tant a com b són YES
` ` O lògic
! No lògic !a YES si a és NO

Exemple:

BOOL a = YES;
BOOL b = NO;
BOOL resultAnd = (a && b); // NO
BOOL resultOr = (a || b); // YES
BOOL resultNot = !a; // NO

Operadors d'Assignació

Els operadors d'assignació s'utilitzen per assignar valors a les variables.

Operador Descripció Exemple Equivalent a
= Assignació a = b Assigna el valor de b a a
+= Assignació amb suma a += b a = a + b
-= Assignació amb resta a -= b a = a - b
*= Assignació amb multiplicació a *= b a = a * b
/= Assignació amb divisió a /= b a = a / b
%= Assignació amb mòdul a %= b a = a % b

Exemple:

int a = 10;
int b = 3;
a += b; // a = 13
a -= b; // a = 10
a *= b; // a = 30
a /= b; // a = 10
a %= b; // a = 1

Operadors d'Increment i Decrement

Els operadors d'increment i decrement s'utilitzen per augmentar o disminuir el valor d'una variable en una unitat.

Operador Descripció Exemple Resultat
++ Increment a++ Augmenta a en 1
-- Decrement a-- Disminueix a en 1

Exemple:

int a = 10;
a++; // a = 11
a--; // a = 10

Operadors de Bit a Bit

Els operadors de bit a bit s'utilitzen per realitzar operacions a nivell de bit.

Operador Descripció Exemple Resultat
& I de bit a bit a & b I de bit a bit de a i b
` ` O de bit a bit `a
^ XOR de bit a bit a ^ b XOR de bit a bit de a i b
~ NO de bit a bit ~a Complement a 1 de a
<< Desplaçament a l'esquerra a << b Desplaça a a l'esquerra b bits
>> Desplaçament a la dreta a >> b Desplaça a a la dreta b bits

Exemple:

int a = 5; // 0101 en binari
int b = 3; // 0011 en binari
int andResult = a & b; // 0001 en binari, 1 en decimal
int orResult = a | b; // 0111 en binari, 7 en decimal
int xorResult = a ^ b; // 0110 en binari, 6 en decimal
int notResult = ~a; // 1010 en binari (complement a 1), -6 en decimal
int leftShift = a << 1; // 1010 en binari, 10 en decimal
int rightShift = a >> 1; // 0010 en binari, 2 en decimal

Exercicis Pràctics

Exercici 1

Escriu un programa que calculi la suma, resta, producte, quocient i residu de dues variables x i y.

Solució:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int x = 15;
        int y = 4;
        
        int sum = x + y;
        int difference = x - y;
        int product = x * y;
        int quotient = x / y;
        int remainder = x % y;
        
        NSLog(@"Suma: %d", sum);
        NSLog(@"Resta: %d", difference);
        NSLog(@"Producte: %d", product);
        NSLog(@"Quocient: %d", quotient);
        NSLog(@"Residu: %d", remainder);
    }
    return 0;
}

Exercici 2

Escriu un programa que compari dues variables a i b i imprimeixi si a és major, menor o igual a b.

Solució:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int a = 7;
        int b = 10;
        
        if (a > b) {
            NSLog(@"%d és major que %d", a, b);
        } else if (a < b) {
            NSLog(@"%d és menor que %d", a, b);
        } else {
            NSLog(@"%d és igual a %d", a, b);
        }
    }
    return 0;
}

Exercici 3

Escriu un programa que utilitzi operadors lògics per determinar si una variable x és positiva i parella.

Solució:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int x = 8;
        
        if (x > 0 && x % 2 == 0) {
            NSLog(@"%d és positiu i parell", x);
        } else {
            NSLog(@"%d no és positiu i parell", x);
        }
    }
    return 0;
}

Conclusió

En aquest tema, hem après sobre els diferents tipus d'operadors en Objective-C i com utilitzar-los per crear expressions. Hem vist exemples pràctics de cada tipus d'operador i hem practicat amb exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar al següent tema, on explorarem el flux de control en Objective-C.

© Copyright 2024. Tots els drets reservats