I vettori in C++

I vettori in C++

Abbiamo già visto come utilizzare i vettori in C++, in questa lezione faremo un riepilogo di quanto appreso.


I Vettori in C++ – Primo esercizio

Caricare un vettore di N elementi con numeri interi inseriti da tastiera.

Si dichiara un intero N e si chiede all’utente di inserire il valore da tastiera. Con un ciclo do-while controlliamo questo valore e se è minore o uguale a 0, richiediamo l’inserimento.

Dopo dichiariamo un vettore di N elementi int v[N].

Poi con un ciclo for, con un indice i che scorre il vettore dalla prima posizione, inseriamo gli elementi.

Supponendo che N è 5, inseriamo i seguenti valori da tastiera: 3, 5, 12, -2, 9.

Partendo da sinistra si avrà dunque:

v[0]=3, v[1]=5, v[2]=12, v[3]=-2, v[4]=9.

L’indice varia da 0 a 4 (cioè N-1).

Ecco dunque cosa otterremo:

vettori inserimento

Scriviamo quindi l’algoritmo in C++:

#include<iostream>
using namespace std;

int main() {
	int N;
	
	do {
		cout<<"Inserisci N: ";
		cin>>N;
	}while (N<=0);
	
	int v[N];
	
	for (int i=0;i<N;i++) {
		cout<<"Inserisci un numero: ";
		cin>>v[i]; 
	}

	return 0;
}

Notate questa istruzione

cin>>v[i]; 

Molte volte vedo fare:

cin>>n;
v[i]=n

Non è necessario utilizzare una variabile n per inserire elementi nel vettore, basta scrivere il dato inserito da tastiera direttamente nel vettore.

Secondo esempio sui vettori in C++

Visualizzare il vettore precedentemente caricato dalla prima all’ultima posizione.

Per visualizzare il vettore basta realizzare un ciclo for che parte dalla prima posizione fino all’ultima e per ogni iterazione si stampa l’i-esimo elemento.

Quindi aggiungete il codice che segue all’algoritmo precedente poco prima del return 0.

cout<<"Visualizzo gli elementi!\n";
	for (int i=0;i<N;i++) {
		cout<<v[i]<<'\t';
	}

N.B. Se invece volessimo visualizzare gli elementi dall’ultima posizione del vettore alla prima, potremmo far partire l’indice da N-1 e a mano a mano decrementarlo fino ad arrivare a 0.

Ecco dunque la soluzione. Inserite il codice anche sotto il precedente per vedere la differenza.

cout<<"Visualizzo gli elementi a partire dall'ultimo numero'!\n";
	for (int i=N-1;i>=0;i--) {
		cout<<v[i]<<'\t';
	}

Terzo esempio – Modificare elementi di un vettore

Utilizziamo i vettori in C++ per modificare gli elementi in esso presenti.

Inserire N elementi in un vettore, visualizzarli in ordine crescente. Dopo modificare solo gli elementi pari moltiplicandoli per 3 e visualizzare gli elementi in ordine decrescente.

Quindi ripetiamo i passaggi fatti nel primo esercizio per inserire gli elementi nel vettore.

Dopo visualizziamo il vettore così come spiegato nell’esempio 2.

Poi modifichiamo solo gli elementi pari del vettore e li moltiplichiamo per 3. Attenzione non gli elementi con indice pari!

Infine visualizziamo il vettore in ordine inverso così come spiegato nell’esempio 2.

Ecco il codice completo:

#include<iostream>
using namespace std;

int main() {
	int N;
	
	do {
		cout<<"Inserisci N: ";
		cin>>N;
	}while (N<=0);
	
	int v[N];
	
	for (int i=0;i<N;i++) {
		cout<<"Inserisci un numero: ";
		cin>>v[i];
	}
	
	cout<<"Visualizzo gli elementi!\n";
	for (int i=0;i<N;i++) {
		cout<<v[i]<<'\t';
	}
	
	for (int i=0;i<N;i++) {
		if (v[i]%2==0)
			v[i]*=3;
	}
	
	cout<<"\nVisualizzo gli elementi modificati!\n";
	for (int i=N-1;i>=0;i--) {
		cout<<v[i]<<'\t';
	}

	return 0;
	
}

Quarto esempio

In questo esempio modifichiamo gli elementi con indice dispari aggiungendo il valore 100. Visualizzarli poi in ordine decrescente.

L’esercizio è molto simile al precedente, basta cambiare questo punto:

for (int i=0;i<N;i++) {
	if (v[i]%2==0)
		v[i]*=3;
}

Con questo:

for (int i=0;i<N;i++) {
	if (i%2!=0)
		v[i]+=100;
}

Cioè non devo guardare l’elemento ma l’indice dispari. Basta controllare dunque che il resto della divisione di i diviso 2 sia diverso da zero. Se tale condizione è vera aggiungiamo all’elemento il valore 100.

Ecco il codice completo:

#include<iostream>
using namespace std;

int main() {
	int N;
	
	do {
		cout<<"Inserisci N: ";
		cin>>N;
	}while (N<=0);
	
	int v[N];
	
	for (int i=0;i<N;i++) {
		cout<<"Inserisci un numero: ";
		cin>>v[i];
	}
	
	cout<<"Visualizzo gli elementi!\n";
	for (int i=0;i<N;i++) {
		cout<<v[i]<<'\t';
	}
	
	for (int i=0;i<N;i++) {
		if (i%2!=0)
			v[i]+=100;
	}
	
	cout<<"\nVisualizzo gli elementi modificati!\n";
	for (int i=N-1;i>=0;i--) {
		cout<<v[i]<<'\t';
	}

	return 0;
	
}

Sommare gli elementi di un vettore

Utilizziamo i vettori in C++ per effettuare la somma degli elementi.

Inseriamo N elementi in un vettore. Li sommiamo e visualizziamo poi il vettore in ordine crescente e la somma.

Quindi in definitiva ripetiamo alcuni passaggi già visti per l’inserimento degli elementi nel vettore.

Poi con un ciclo for sommiamo gli elementi in una variabile s, precedentemente inizializzata a 0, e li visualizziamo.

Infine visualizziamo la somma.

Ecco dunque il codice completo:

#include<iostream>
using namespace std;

int main() {
	int N,s=0;
	
	do {
		cout<<"Inserisci N: ";
		cin>>N;
	}while (N<=0);
	
	int v[N];
	
	for (int i=0;i<N;i++) {
		cout<<"Inserisci un numero: ";
		cin>>v[i];
	}
	
	cout<<"Visualizzo gli elementi!\n";
	for (int i=0;i<N;i++) {
		cout<<v[i]<<'\t';
		s+=v[i];
	}

	cout<<"\nLa somma e': !\t"<<s;


	return 0;
	
}

Nella prossima lezione proporrò ancora alcuni esercizi su come utilizzare i vettori in C++.

Alcuni link utili

Indice argomenti linguaggio C++

Alcuni link utili

Indice argomenti linguaggio C++

Array o vettori in C++

Esercitazione sugli array in C++

Massimo elemento di un vettore

Esercizi con gli array

Ricerca sequenziale in C++

Ricerca in un array ordinato

Array con numeri random

Ricerca binaria

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *