Imparare a programmare in C++ – #7 – Array

Imparare a programmare in C++ – #7 – Array

Imparare a programmare in C++ – #7 – Array: Gli array, vettori o matrici permettono di immagazzinare più valori all’interno di un unico elemento.

Tempo di lettura stimato: 5 minuti

Imparare a programmare in C++ – #7 – Array

Gli array (chiamati anche matrici o vettori) permettono di assegnare più valori ad un unico elemento.

Infatti dichiarando un singolo array possiamo inserire un elenco di valori dello stesso tipo.

Gli array hanno lo stesso tipo di valore delle variabili.

int IlMioPrimoArray[3] = {1,2,3};

Quando dichiariamo un array, andiamo prima a dichiararne il tipo (ad esempio int), poi il nome seguito da un valore all’interno delle parentesi quadre.

Nell’esempio il valore è 3, questo indica che ci si aspetta di trovare 3 elementi all’interno dell’array.

Gli elementi nell’array vengono inseriti all’interno di parentesi graffe separati da una virgola.

int IlMioPrimoArray[3] = {1,2,3};
// richiamiamo il valore 1
cout << IlMioPrimoArray[0];
// richiamiamo il valore 2
cout << IlMioPrimoArray[1];
// richiamiamo il valore 3
cout << IlMioPrimoArray[2];

L’indice degli array parte sempre da 0, quindi per riferirci al primo elemento all’interno di un array dovremo usare 0 come indice.

Possiamo anche assegnare un valore ad un determinato indice dell’array:

int IlMioPrimoArray[3] = {1,2,3};
// cambiamo il valore da 1 a 20
IlMioPrimoArray[0] = 20;

Array Bidimensionali o Multidimensionali

Oltre agli array semplici, esistono anche array multidimensionali.

Questo tipo di array ha bisogno di più indici per essere individuato correttamente.

Immaginiamo ogni dimensione come se fosse una scatola che al suo interno contiene altre scatole più piccole.

Un array multidimensionale puù essere dichiarato cosi:

// SU SINGOLA RIGA
int IlMioPrimoArray[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
// SU PIU RIGHE
int IlMioPrimoArray[3][4] = 
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};

Dovremo indicare quindi ogni dimensione dell’array, partendo da quella più esterna a quella più interna.

Immaginiamo questo array come se fosse una biblioteca, abbiamo quindi 3 che può corrispondere alle diverse stanze, e 4 che può corrispondere agli scaffali.

Quindi abbiamo la biblioteca, le 3 stanze divise magari per genere ogni stanza ha 4 scaffali con gli autori divisi ad esempio per nazionalità.

// SU SINGOLA RIGA
int IlMioPrimoArray[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
// SU PIU RIGHE
int IlMioPrimoArray[3][4] = 
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};

// RICHIAMARE IL NUMERO 10
cout << IlMioPrimoArray[2][1];

Come per il caso precedente, dovremo indicare l’indice corretto per andare a visualizzare il valore selezionato.

Quindi indichiamo prima l’indice della prima dimensione e poi di quella secondaria.

ESEMPIO 1: Loop che mostra tutti i valori di un array

	char ElencoLettere[7] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
	cout << "L'array contiene:" << endl;
	for (int a = 0; a <= 7; a++)
	{
	cout << ElencoLettere[a] << endl;	
	}

ESEMPIO 2: Array con input ed output per selezionare un valore scelto dall’utente

	int NumeroSelezionato;
	char ElencoLettere[7] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
	cout << "Inserisci un numero da 0 a 6" << endl;
	cin >> NumeroSelezionato;
	cout << "Hai scelto la lettera: " << ElencoLettere[NumeroSelezionato] << endl;

ESEMPIO 3: Array Multidimensionale con input ed output per selezionare un valore scelto dall’utente

	int NumeroSelezionato, ColonnaSelezionata;
	char ElencoLettere[2][7] = 
	{
	{'A', 'B', 'C', 'D', 'E', 'F', 'G'},
	{'a', 'b', 'c', 'd', 'e', 'f', 'g'}
	};
	cout << "Inserisci un numero da 0 a 1" << endl;
	cin >> ColonnaSelezionata;
	cout << "Inserisci un numero da 0 a 6" << endl;
	cin >> NumeroSelezionato;
	cout << "Hai scelto la lettera: " << ElencoLettere[ColonnaSelezionata][NumeroSelezionato] << endl;

ESERCITAZIONI

Esercizio 1: Array semplice

Crea un programma che dato un array contenente un elenco di lettere chieda all’utente per 10 volte di selezionare un indice.

Vada quindi a prendere la lettera corrispondente all’indice scelto e la aggiunga ad una stringa.

Alla fine deve mostrare la stringa con tutte le lettere scelte dall’utente.

REGOLE:

  • È possibile inserire nell’array lettere minuscole o minuscole e maiuscole.
  • L’array deve essere ad una singola dimensione
  • Si può utilizzare sia il ciclo for che il ciclo while

SUGGERIMENTO:

Le stringhe permettono di aggiungere e concatenare i singoli caratteri tramite il simbolo +.

Esempio:

string StringaFinale;
	StringaFinale += ElencoLettere[0];
	StringaFinale += ElencoLettere[5];
	StringaFinale += ElencoLettere[3];
	cout << StringaFinale;

Mostra la soluzione

#include <iostream>
using namespace std;

int main() {
	string StringaFinale;
	int NumeroSelezionato;
	char ElencoLettere[21] = {'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'};
	for (int a = 0; a < 10; a++)
	{
		cout << "Scegli un numero tra 0 e 21:" << endl;
		cin >> NumeroSelezionato;
		StringaFinale += ElencoLettere[NumeroSelezionato];
		
	}
	cout << "La stringa finale e': " << StringaFinale << endl;
	
 return 0;
}

Esercizio 2: Array Bidimensionale

L’esercizio è lo stesso dell’array semplice, ma in questo caso si dovranno dividere maiuscole e minuscole in 2 dimensioni separate.

L’utente dovrà quindi di volta in volta selezionare entrambe le dimensioni per poter ottenere la lettera finale.

Mostra la soluzione

#include <iostream>
using namespace std;

int main() {
	string StringaFinale;
	int ArraySelezionato,NumeroSelezionato;
	char ElencoLettere[2][21] = {
	{'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'},
	{'A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'}
	};
	for (int a = 0; a < 10; a++)
	{
		cout << "Scegli un numero tra 0 ed 1:" << endl;
		cin >> ArraySelezionato;
		cout << "Scegli un numero tra 0 e 21:" << endl;
		cin >> NumeroSelezionato;
		StringaFinale += ElencoLettere[ArraySelezionato][NumeroSelezionato];
	}
	cout << "La stringa finale e': " << StringaFinale << endl;
	
 return 0;
}

Video

Claudio Masci

Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.

Rispondi