Els arrays són una estructura de dades fonamental en C++ que permet emmagatzemar múltiples valors del mateix tipus en una sola variable. Aquesta capacitat és especialment útil quan es treballa amb grans quantitats de dades que necessiten ser processades de manera eficient.
Conceptes Clau
- Definició d'Array: Un array és una col·lecció d'elements del mateix tipus emmagatzemats en ubicacions de memòria contigües.
- Índex: Cada element de l'array es pot accedir mitjançant un índex, que comença en 0.
- Tipus d'Array: Els arrays poden ser unidimensionals o multidimensionals (com els arrays bidimensionals).
Declaració i Inicialització
Declaració d'un Array
Per declarar un array en C++, es necessita especificar el tipus de dades dels elements i la seva mida. La sintaxi bàsica és:
Exemple
Inicialització d'un Array
Els arrays es poden inicialitzar en el moment de la seva declaració:
Si no es proporcionen tots els valors, els elements restants es inicialitzen a zero:
Accés als Elements de l'Array
Els elements de l'array es poden accedir utilitzant l'índex corresponent:
int primerElement = numeros[0]; // Accedeix al primer element numeros[2] = 10; // Assigna el valor 10 al tercer element
Exemple Pràctic
A continuació es mostra un exemple complet que declara, inicialitza i accedeix a un array:
#include <iostream> using namespace std; int main() { // Declaració i inicialització d'un array int numeros[5] = {1, 2, 3, 4, 5}; // Accés als elements de l'array cout << "El primer element és: " << numeros[0] << endl; cout << "El tercer element és: " << numeros[2] << endl; // Modificació d'un element de l'array numeros[2] = 10; cout << "El tercer element després de la modificació és: " << numeros[2] << endl; return 0; }
Exercicis Pràctics
Exercici 1
Descripció: Declara un array de 10 enters i inicialitza'l amb els valors del 1 al 10. Imprimeix tots els elements de l'array.
Solució:
#include <iostream> using namespace std; int main() { int numeros[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for (int i = 0; i < 10; i++) { cout << "Element " << i << ": " << numeros[i] << endl; } return 0; }
Exercici 2
Descripció: Declara un array de 5 floats i inicialitza'l amb valors de la teva elecció. Calcula i imprimeix la mitjana dels valors de l'array.
Solució:
#include <iostream> using namespace std; int main() { float numeros[5] = {2.5, 3.5, 4.5, 5.5, 6.5}; float suma = 0.0; for (int i = 0; i < 5; i++) { suma += numeros[i]; } float mitjana = suma / 5; cout << "La mitjana és: " << mitjana << endl; return 0; }
Errors Comuns
- Accés fora dels límits de l'array: Intentar accedir a un índex que està fora dels límits de l'array pot causar comportaments inesperats o errors de temps d'execució.
- Inicialització incorrecta: No inicialitzar tots els elements de l'array pot portar a valors indeterminats.
Consells Addicionals
- Sempre assegura't que els índexs utilitzats per accedir als elements de l'array estan dins dels límits de l'array.
- Utilitza bucles per processar arrays de manera eficient.
Conclusió
Els arrays són una eina poderosa per emmagatzemar i gestionar col·leccions de dades en C++. Comprendre com declarar, inicialitzar i accedir als elements de l'array és fonamental per a qualsevol programador. En el proper tema, explorarem els arrays multidimensionals, que permeten treballar amb dades en més d'una dimensió.
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