Les funcions són un dels conceptes fonamentals en la programació en C. Permeten dividir el codi en blocs més petits i manejables, facilitant la seva reutilització i manteniment. En aquest tema, aprendrem què són les funcions, com es defineixen i com s'utilitzen en C.

Què és una Funció?

Una funció és un bloc de codi que realitza una tasca específica. Les funcions poden rebre dades d'entrada (arguments) i retornar un valor com a resultat. L'ús de funcions permet:

  • Modularitat: Dividir el codi en parts més petites i manejables.
  • Reutilització: Utilitzar el mateix codi en diferents parts del programa.
  • Claredat: Millorar la llegibilitat i mantenibilitat del codi.

Definició d'una Funció

Una funció en C es defineix amb la següent estructura:

retorn_tipus nom_funció(tipus_argument1 nom_argument1, tipus_argument2 nom_argument2, ...) {
    // Cos de la funció
    instruccions;
    return valor_de_retorn;
}

Parts d'una Funció

  1. retorn_tipus: El tipus de dada que la funció retorna. Si la funció no retorna cap valor, es fa servir void.
  2. nom_funció: El nom de la funció, que ha de ser únic dins del programa.
  3. tipus_argument: El tipus de cada argument que la funció rep.
  4. nom_argument: El nom de cada argument.
  5. cos de la funció: El conjunt d'instruccions que defineixen el que fa la funció.
  6. return: La instrucció que retorna un valor des de la funció (opcional si el tipus de retorn és void).

Exemple de Funció

A continuació, es mostra un exemple d'una funció que suma dos nombres enters i retorna el resultat:

#include <stdio.h>

// Definició de la funció
int suma(int a, int b) {
    int resultat = a + b;
    return resultat;
}

int main() {
    int num1 = 5, num2 = 10;
    int resultat = suma(num1, num2); // Crida a la funció
    printf("La suma de %d i %d és %d\n", num1, num2, resultat);
    return 0;
}

Explicació del Codi

  1. Definició de la funció suma:

    • int suma(int a, int b): La funció suma rep dos arguments de tipus int i retorna un valor de tipus int.
    • int resultat = a + b;: Es calcula la suma dels dos arguments i es guarda en la variable resultat.
    • return resultat;: Es retorna el valor de resultat.
  2. Crida a la funció suma:

    • int resultat = suma(num1, num2);: Es crida a la funció suma amb els arguments num1 i num2, i es guarda el resultat en la variable resultat.
    • printf("La suma de %d i %d és %d\n", num1, num2, resultat);: Es mostra el resultat per pantalla.

Exercicis Pràctics

Exercici 1: Funció de Multiplicació

Escriu una funció que multipliqui dos nombres enters i retorni el resultat.

#include <stdio.h>

// Definició de la funció
int multiplica(int a, int b) {
    // Escriu el cos de la funció aquí
}

int main() {
    int num1 = 3, num2 = 4;
    int resultat = multiplica(num1, num2); // Crida a la funció
    printf("La multiplicació de %d i %d és %d\n", num1, num2, resultat);
    return 0;
}

Solució

#include <stdio.h>

// Definició de la funció
int multiplica(int a, int b) {
    int resultat = a * b;
    return resultat;
}

int main() {
    int num1 = 3, num2 = 4;
    int resultat = multiplica(num1, num2); // Crida a la funció
    printf("La multiplicació de %d i %d és %d\n", num1, num2, resultat);
    return 0;
}

Exercici 2: Funció de Divisió

Escriu una funció que divideixi dos nombres enters i retorni el resultat. Tingues en compte que la divisió per zero no està permesa.

#include <stdio.h>

// Definició de la funció
float divideix(int a, int b) {
    // Escriu el cos de la funció aquí
}

int main() {
    int num1 = 10, num2 = 2;
    float resultat = divideix(num1, num2); // Crida a la funció
    printf("La divisió de %d per %d és %.2f\n", num1, num2, resultat);
    return 0;
}

Solució

#include <stdio.h>

// Definició de la funció
float divideix(int a, int b) {
    if (b == 0) {
        printf("Error: Divisió per zero\n");
        return 0.0;
    }
    float resultat = (float)a / b;
    return resultat;
}

int main() {
    int num1 = 10, num2 = 2;
    float resultat = divideix(num1, num2); // Crida a la funció
    printf("La divisió de %d per %d és %.2f\n", num1, num2, resultat);
    return 0;
}

Resum

En aquest tema, hem après què són les funcions, com es defineixen i com s'utilitzen en C. Les funcions són essencials per a la modularitat, reutilització i claredat del codi. Hem vist exemples pràctics de funcions que sumen, multipliquen i divideixen nombres enters. En els següents temes, aprofundirem en els arguments de funció, els valors de retorn, l'àmbit i la durada de les variables, i les funcions recursives.

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