Esercizio No. 7 Vettori
Realizzare un programma per individuare il valore modale contenuto in un vettore di interi.
Soluzione:
Ricordiamo che il valore modale in una seriazione numerica è il valore che ricorre con maggior frequenza in tale serie. Noi pensiamo di testare l’algoritmo con un vettore così inizializzato:
int T[n]={3,2,4,5,1,5,3,2,5,6};
un vettore di n=10 elementi con il 5 che ricorre maggiormente (per ben 3 volte). Le variabili principali che saranno usate sono: max:numero massimo di ricorrenze incontrate per un dato valore maxi:indice del valore che ricorre maggiormente x: contatore delle ricorrenze La tecnica usata è simile a quella dell’ordinamento caratterizzata da un doppio for sui due indici i e j che controlla tutte le posizioni successive ad i.
#include<iostream>
using namespace std;
const int n=10;
main(){
int T[n]={3,2,4,5,1,5,3,2,5,6};
int i,j,max=0,maxi,x=1;
for(i=0;i < n-1;i++){
for(j=i+1;j < n;j++) if(T[j]==T[i])x++;
if(x > max){max=x;maxi=i;}//fine if
x=1;
} //fine for(i)
cout << max <<” volte il ” << T[maxi];
}//fine main
notiamo come x debba essere inizializzata a 1; infatti al valore riscontrato saranno aggiunte tutte le eventuali ulteriori ricorrenze trovate attraverso il ciclo for(j) sulla parte successiva del vettore.
Commento all'articolo