
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:

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++
Esercitazione sugli array in C++
Massimo elemento di un vettore