/* Cognome, Nome: Montanari, Mario PROGRAMMA CHE, DATO UN ARRAY CONTENENTE 10 VALORI GENERATI CASUALMENTE, ELIMINA GLI ELEMENTI DISPARI 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 10 // NUMERO DI CELLE OCCUPATE NELL'ARRAY #define MIN 1 // VALORE MINIMO PER I NUMERI GENERATI CASUALMENTE #define MAX 100 // 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 int eliminaElementiDispari(int arr[], int size); // PROTOTIPO DELLA FUNZIONE CHE ELIMINA GLI ELEMENTI INDESIDERATI PRESENTI NELLA FUNZIONE INIZIALE int main(void) { int arr[CAPACITY]; // DICHIARAZZIONE 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 size = eliminaElementiDispari(arr, size); // CHIAMATA DELLA FUNZIONE CHE ELIMINA GLI ELEMENTI INDESIDERATI PRESENTI NELLA FUNZIONE cout << "Final array: "; stampaArray(arr, size); // CHIAMATA DELLA FUNZIONE CHE STAMPA GLI ELEMENTI PRESENTI NELL'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 ELIMINA GLI ELEMENTI INDESIDERATI PRESENTI NELLA FUNZIONE INIZIALE int eliminaElementiDispari(int arr[], int size) { int j = 0; // INIZIALIZZAZIONE DELLA VARIABILE 'j' for (int i = 0; i < size; i++) { // ISTRUZIONE CHE CICLA ATTRAVERSO TUTTI GLI ELEMENTI PRESENTI NELL'ARRAY if (arr[i] % 2 == 0) { // ISTRUZIONE CHE VERIFICA SE L'ELEMENTO CORRENTE E' PARI arr[j] = arr[i]; // SE L'ELEMENTO E' PARI LO COPIA NELLA POSIZIONE CORRENTE DI 'j' j++; // INCREMENTA 'j' PER SPOSTARSI ALLA PROSSIMA POSIZIONE LIBERA DELL'ARRAY } } return j; // LA FUNZIONE RESTITUISCE IL NUMERO DI ELEMENTI RIMASTI NELL'ARRAY }