Els operadors són símbols que indiquen a l'ordinador que realitzi operacions matemàtiques, lògiques o de manipulació de dades. En C, els operadors es poden classificar en diverses categories segons la seva funcionalitat.

Tipus d'Operadors

  1. Operadors Aritmètics
  2. Operadors de Relació
  3. Operadors Lògics
  4. Operadors d'Assignació
  5. Operadors d'Increment i Decrement
  6. Operadors Bit a Bit
  7. Operadors de Membre d'Estructura
  8. Operadors de Punt i Fletxa
  9. Operadors de Grandària

  1. Operadors Aritmètics

Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques.

Operador Descripció Exemple
+ Suma a + b
- Resta a - b
* Multiplicació a * b
/ Divisió a / b
% Mòdul (residu) a % b

Exemple:

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    printf("Suma: %d\n", a + b);
    printf("Resta: %d\n", a - b);
    printf("Multiplicació: %d\n", a * b);
    printf("Divisió: %d\n", a / b);
    printf("Mòdul: %d\n", a % b);
    return 0;
}

  1. Operadors de Relació

Els operadors de relació s'utilitzen per comparar dos valors.

Operador Descripció Exemple
== Igual a a == b
!= Diferent de a != b
> Major que a > b
< Menor que a < b
>= Major o igual que a >= b
<= Menor o igual que a <= b

Exemple:

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    printf("a és igual a b? %d\n", a == b);
    printf("a és diferent de b? %d\n", a != b);
    printf("a és major que b? %d\n", a > b);
    printf("a és menor que b? %d\n", a < b);
    printf("a és major o igual que b? %d\n", a >= b);
    printf("a és menor o igual que b? %d\n", a <= b);
    return 0;
}

  1. Operadors Lògics

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

Operador Descripció Exemple
&& I lògic (AND) a && b
` `
! Negació lògica (NOT) !a

Exemple:

#include <stdio.h>

int main() {
    int a = 1, b = 0;
    printf("a AND b: %d\n", a && b);
    printf("a OR b: %d\n", a || b);
    printf("NOT a: %d\n", !a);
    return 0;
}

  1. Operadors d'Assignació

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

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

Exemple:

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    a += b;
    printf("a += b: %d\n", a);
    a -= b;
    printf("a -= b: %d\n", a);
    a *= b;
    printf("a *= b: %d\n", a);
    a /= b;
    printf("a /= b: %d\n", a);
    a %= b;
    printf("a %%= b: %d\n", a);
    return 0;
}

  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
++ Increment a++
-- Decrement a--

Exemple:

#include <stdio.h>

int main() {
    int a = 10;
    printf("Valor inicial: %d\n", a);
    a++;
    printf("Després d'incrementar: %d\n", a);
    a--;
    printf("Després de decrementar: %d\n", a);
    return 0;
}

  1. Operadors Bit a Bit

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

Operador Descripció Exemple
& I bit a bit (AND) a & b
` ` O bit a bit (OR)
^ XOR bit a bit a ^ b
~ Complement a un (NOT) ~a
<< Desplaçament a l'esquerra a << 1
>> Desplaçament a la dreta a >> 1

Exemple:

#include <stdio.h>

int main() {
    int a = 5, b = 3; // a = 0101, b = 0011 en binari
    printf("a AND b: %d\n", a & b); // 0001
    printf("a OR b: %d\n", a | b);  // 0111
    printf("a XOR b: %d\n", a ^ b); // 0110
    printf("NOT a: %d\n", ~a);      // 1010 (en binari, depenent de la mida de l'int)
    printf("a << 1: %d\n", a << 1); // 1010
    printf("a >> 1: %d\n", a >> 1); // 0010
    return 0;
}

  1. Operadors de Membre d'Estructura

Els operadors de membre d'estructura s'utilitzen per accedir als membres d'una estructura.

Operador Descripció Exemple
. Accés a membre d'estructura struct.member
-> Accés a membre d'estructura a través d'un punter ptr->member

Exemple:

#include <stdio.h>

struct Punt {
    int x;
    int y;
};

int main() {
    struct Punt p = {10, 20};
    struct Punt *ptr = &p;
    printf("p.x: %d\n", p.x);
    printf("ptr->y: %d\n", ptr->y);
    return 0;
}

  1. Operadors de Grandària

L'operador sizeof s'utilitza per determinar la mida d'una variable o tipus de dades en bytes.

Operador Descripció Exemple
sizeof Mida en bytes sizeof(a)

Exemple:

#include <stdio.h>

int main() {
    int a = 10;
    printf("Mida de a: %lu bytes\n", sizeof(a));
    printf("Mida de int: %lu bytes\n", sizeof(int));
    return 0;
}

Exercicis Pràctics

  1. Escriu un programa que demani a l'usuari dos números enters i mostri el resultat de les operacions aritmètiques bàsiques (suma, resta, multiplicació, divisió i mòdul) entre aquests dos números.

  2. Escriu un programa que demani a l'usuari un número enter i determini si és parell o senar utilitzant l'operador mòdul.

  3. Escriu un programa que demani a l'usuari dos números enters i mostri si el primer és major, menor o igual al segon utilitzant operadors de relació.

  4. Escriu un programa que demani a l'usuari un número enter i mostri el resultat de desplaçar els bits d'aquest número a l'esquerra i a la dreta en una posició.

Solucions

Exercici 1

#include <stdio.h>

int main() {
    int a, b;
    printf("Introdueix dos números enters: ");
    scanf("%d %d", &a, &b);
    printf("Suma: %d\n", a + b);
    printf("Resta: %d\n", a - b);
    printf("Multiplicació: %d\n", a * b);
    printf("Divisió: %d\n", a / b);
    printf("Mòdul: %d\n", a % b);
    return 0;
}

Exercici 2

#include <stdio.h>

int main() {
    int num;
    printf("Introdueix un número enter: ");
    scanf("%d", &num);
    if (num % 2 == 0) {
        printf("%d és parell.\n", num);
    } else {
        printf("%d és senar.\n", num);
    }
    return 0;
}

Exercici 3

#include <stdio.h>

int main() {
    int a, b;
    printf("Introdueix dos números enters: ");
    scanf("%d %d", &a, &b);
    if (a > b) {
        printf("%d és major que %d\n", a, b);
    } else if (a < b) {
        printf("%d és menor que %d\n", a, b);
    } else {
        printf("%d és igual a %d\n", a, b);
    }
    return 0;
}

Exercici 4

#include <stdio.h>

int main() {
    int num;
    printf("Introdueix un número enter: ");
    scanf("%d", &num);
    printf("Desplaçament a l'esquerra: %d\n", num << 1);
    printf("Desplaçament a la dreta: %d\n", num >> 1);
    return 0;
}

Conclusió

En aquesta secció, hem après sobre els diferents tipus d'operadors en C i com utilitzar-los per realitzar diverses operacions. Els operadors són fonamentals per a la programació, ja que permeten manipular dades i prendre decisions basades en condicions. Practicar amb aquests operadors és essencial per dominar la programació en C.

Curs de Programació en C

Mòdul 1: Introducció al C

Mòdul 2: Tipus de Dades i Variables

Mòdul 3: Flux de Control

Mòdul 4: Funcions

Mòdul 5: Arrays i Strings

Mòdul 6: Punteres

Mòdul 7: Estructures i Unions

Mòdul 8: Assignació Dinàmica de Memòria

Mòdul 9: Gestió d'Arxius

Mòdul 10: Temes Avançats

Mòdul 11: Millors Pràctiques i Optimització

Mòdul 12: Projecte i Avaluació Final

© Copyright 2024. Tots els drets reservats