Les funcions són un dels conceptes fonamentals en la programació, ja que permeten dividir el codi en blocs més petits, reutilitzables i manejables. 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 permeten:
- Reutilització del codi: Escriure una vegada i utilitzar múltiples vegades.
- Modularitat: Dividir el programa en parts més petites i manejables.
- Claredat: Millorar la llegibilitat del codi.
Estructura d'una Funció
Una funció en C++ té la següent estructura bàsica:
Components d'una Funció
- Tipus de Retorn: El tipus de dada que la funció retorna després de l'execució. Pot ser qualsevol tipus de dada com
int
,float
,char
, etc. Si la funció no retorna cap valor, es fa servirvoid
. - Nom de la Funció: Un identificador únic que es fa servir per cridar la funció.
- Paràmetres: Una llista de variables que la funció pot rebre com a entrada. Es defineixen dins dels parèntesis.
- Cos de la Funció: El bloc de codi que defineix què fa la funció. Es troba entre claus
{}
.
Exemple Bàsic
A continuació, es mostra un exemple bàsic d'una funció que suma dos nombres:
#include <iostream> using namespace std; // Definició de la funció int suma(int a, int b) { return a + b; } int main() { int resultat = suma(5, 3); // Crida a la funció cout << "La suma és: " << resultat << endl; return 0; }
Explicació de l'Exemple
- Definició de la Funció:
int suma(int a, int b)
defineix una funció anomenadasuma
que pren dos paràmetres de tipusint
i retorna un valor de tipusint
. - Cos de la Funció:
return a + b;
retorna la suma dels dos paràmetres. - Crida a la Funció:
suma(5, 3)
crida la funciósuma
amb els arguments5
i3
. El resultat es guarda a la variableresultat
. - Sortida:
cout << "La suma és: " << resultat << endl;
imprimeix el resultat de la suma.
Exercicis Pràctics
Exercici 1: Funció de Multiplicació
Escriu una funció anomenada multiplica
que prengui dos nombres enters com a paràmetres i retorni el seu producte.
#include <iostream> using namespace std; // Definició de la funció int multiplica(int a, int b) { return a * b; } int main() { int resultat = multiplica(4, 7); // Crida a la funció cout << "El producte és: " << resultat << endl; return 0; }
Exercici 2: Funció de Salutació
Escriu una funció anomenada saluda
que prengui un nom com a paràmetre i imprimeixi un missatge de salutació.
#include <iostream> using namespace std; // Definició de la funció void saluda(string nom) { cout << "Hola, " << nom << "!" << endl; } int main() { saluda("Anna"); // Crida a la funció return 0; }
Errors Comuns
- Oblidar el Tipus de Retorn: Cada funció ha de tenir un tipus de retorn, fins i tot si és
void
. - No Retornar un Valor: Si la funció té un tipus de retorn diferent de
void
, ha de retornar un valor del tipus especificat. - Manca de Paràmetres: Assegura't que els paràmetres de la funció coincideixin amb els arguments passats durant la crida.
Resum
En aquesta secció, hem après què són les funcions, com es defineixen i com es criden en C++. Les funcions són essencials per a la modularitat i la reutilització del codi. Hem vist exemples pràctics i hem practicat amb exercicis per reforçar els conceptes apresos. En el següent tema, explorarem els paràmetres de funció i els tipus de retorn amb més detall.
Curs de Programació en C++
Mòdul 1: Introducció al C++
- Introducció al C++
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Entrada i Sortida
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Introducció a les Funcions
- Paràmetres de Funció i Tipus de Retorn
- Sobrecàrrega de Funcions
- Recursivitat
Mòdul 4: Arrays i Strings
Mòdul 5: Punteres i Referències
- Introducció als Punteres
- Aritmètica de Punteres
- Punteres i Arrays
- Referències
- Assignació Dinàmica de Memòria
Mòdul 6: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Constructors i Destructors
- Herència
- Polimorfisme
- Encapsulació i Abstracció
Mòdul 7: Temes Avançats
- Plantilles
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Biblioteca de Plantilles Estàndard (STL)
- Expressions Lambda
- Multifil