edutecnica

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.