/* Cognome, Nome: Montanari, Mario PROGRAMMA CHE, DATO UN ARRAY CONTENENTE 10 VALORI GENERATI CASUALMENTE, CONTA LE OCCORRENZE DEGLI ELEMENTI PRESENTI ALL'INTERNO DELL'ARRAY. */ #include // LIBRERIA NECESSARIA PER L'INPUT E L'OUTPUT STANDARD #include // LIBRERIA NECESSARIA PER LAVORARE CON GLI ARRAY #include // LIBRERIA NECESSARIA PER LAVORARE CON LA FUNZIONE 'rand' #include // LIBRERIA NECESSARIA PER LAVORARE CON LA FUNZIONE 'time' #define CAPACITY 10 // DIMENSIONE MASSIMA DELL'ARRAY #define SIZE 5 // NUMERO DI CELLE OCCUPATE NELL'ARRAY #define MIN 1 // VALORE MINIMO PER I NUMERI GENERATI CASUALMENTE #define MAX 5 // VALORE MASSIMO PER I NUMERI GENERATI CASUALMENTE using namespace std; void riempiArray(int arr[], int size); // PROTOTIPO DELLA FUNZIONE CHE RIEMPIE L'ARRAY INIZIALE CON NUMERI CASUALI void stampaArray(int arr[], int size); // PROTOTIPO DELLA FUNZIONE CHE STAMPA GLI ELEMENTI PRESENTI NELL'ARRAY void contaOccorrenzeElementi(int arr[], int size); // PROTOTIPO DELLA FUNZIONE CHE CONTA LE OCCORRENZE DEGLI ELEMENTI PRESENTI ALL'INTERNO DELL'ARRAY int main(void) { int arr[CAPACITY]; // DICHIARAZIONE DELL'ARRAY 'arr[]' CON CAPACITA' MASSIMA DI 10 int size = SIZE; // INIZIALIZZAZIONE DELLA VARIABILE 'size' CHE SPECIFICA IL NUMERO DI ELEMENTI PRESENTI NELL'ARRAY riempiArray(arr, size); // CHIAMATA DELLA FUNZIONE CHE RIEMPIE L'ARRAY INIZIALE CON NUMERI CASUALI cout << "Initial array: "; stampaArray(arr, size); // CHIAMATA DELLA FUNZIONE CHE STAMPA GLI ELEMENTI PRESENTI NELL'ARRAY contaOccorrenzeElementi(arr, size); // CHIAMATA DELLA FUNZIONE CHE CONTA LE OCCORRENZE DEGLI ELEMENTI PRESENTI ALL'INTERNO DELL'ARRAY return 0; // TERMINA IL PROGRAMMA } // DICHIARAZIONE DELLA FUNZIONE CHE RIEMPIE L'ARRAY INIZIALE CON NUMERI CASUALI void riempiArray(int arr[], int size) { srand(time(NULL)); // INIZIALIZZA IL GENERATORE DI NUMERI CASUALI for (int i = 0; i < size; i++) { // ISTRUZIONE CHE CICLA ATTRAVERSO TUTTE LE CELLE DELL'ARRAY arr[i] = rand() % (MAX - MIN + 1) + MIN; // GENERA UN NUMERO CASUALE TRA 'MIN' E 'MAX' E LO ASSEGNA ALLA CELLA CORRENTE } } // DICHIARAZIONE DELLA FUNZIONE CHE STAMPA GLI ELEMENTI PRESENTI NELL'ARRAY void stampaArray(int arr[], int size) { for (int i = 0; i < size; i++) { // ISTRUZIONE CHE CICLA ATTRAVERSO TUTTI GLI ELEMENTI PRESENTI NELL'ARRAY cout << arr[i] << " "; // STAMPA OGNI ELEMENTO SEGUITO DA UNO SPAZIO } cout << endl; // AGGIUNGE UN A CAPO DOPO LA STAMPA DI TUTTI GLI ELEMENTI } // DICHIARAZIONE DELLA FUNZIONE CHE CONTA LE OCCORRENZE DEGLI ELEMENTI PRESENTI ALL'INTERNO DELL'ARRAY void contaOccorrenzeElementi(int arr[], int size) { for(int i = 0; i < size; i++) { int count = 0; for (int j = i; j < size; j++) { if (arr[j] == arr[i]) { count++; } } cout << "Il valore " << arr[i] << " compare " << count << " volte." << endl; } }