[SOL] Esercizio nr 39 Array (39_Array)
Spiegazione del Codice - Esercizio 39
Obiettivo del Programma
Questo programma verifica se in un array di 5 numeri interi esiste almeno un numero dispari. Se trova anche solo un numero dispari, comunica che "I numeri non sono tutti pari".
Analisi del Codice
Dichiarazione delle Variabili
const int DIM = 5;
int a[DIM];
DIMè una costante che definisce la dimensione dell'array (5 elementi)a[DIM]è un array di 5 numeri interi
Caricamento dei Dati
for(int i = 0; i<DIM; i++){
cout << "inserire il numero"<<i+1<<" : ";
cin >>a[i];
}
Il programma chiede all'utente di inserire 5 numeri, uno alla volta:
- Il ciclo
forsi ripete 5 volte (da i=0 a i=4) i+1viene usato per mostrare "numero 1", "numero 2", ecc. (più comprensibile per l'utente)- Ogni numero viene memorizzato nella posizione corrispondente dell'array
Controllo dei Numeri Dispari
bool existDispari = false;
for(int i = 0; i<DIM; i++){
if(a[i] % 2 != 0){
existDispari = true;
break;
}
}
Variabile di controllo:
existDispariè inizializzata afalse(assumiamo che non ci siano dispari)
Logica del controllo:
- Il programma esamina ogni elemento dell'array
a[i] % 2 != 0verifica se il numero è dispari:- L'operatore
%calcola il resto della divisione per 2 - Se il resto è diverso da 0, il numero è dispari
- L'operatore
- Appena trova un numero dispari:
- Imposta
existDispari = true - Usa
breakper uscire immediatamente dal ciclo (ottimizzazione)
- Imposta
Output del Risultato
if(existDispari){
cout << "I numeri non sono tutti pari";
}
- Se è stato trovato almeno un numero dispari, stampa il messaggio
- Nota: Il programma non stampa nulla se tutti i numeri sono pari
Esempio di Esecuzione
Input: 2, 4, 7, 8, 10
- Il programma trova il numero 7 (dispari) e stampa: "I numeri non sono tutti pari"
Input: 2, 4, 6, 8, 10
- Tutti i numeri sono pari, quindi non viene stampato nulla
Possibili Miglioramenti
Il programma potrebbe essere completato aggiungendo un messaggio anche per il caso in cui tutti i numeri sono pari:
if(existDispari){
cout << "I numeri non sono tutti pari";
} else {
cout << "Tutti i numeri sono pari";
}
Correzione esercizio 39
#include <iostream>
using namespace std;
int main(){
const int DIM = 5;
int a[DIM];
//caricamento
for(int i = 0; i<DIM; i++){
cout << "inserire il numero"<<i+1<<" : ";
cin >>a[i];
}
bool existDispari = false;
for(int i = 0; i<DIM; i++){
if(a[i] % 2 != 0){
existDispari = true;
break;
}
}
if(existDispari){
cout << "I numeri non sono tutti pari";
}
}