Esercizio 7
Realizzare un programma per individuare il valore modale contenuto in un vettore di interi .
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.