[SOL] Esercizio n. 16 Array (16_array)


Spiegazione del programma: Somma di numeri pari e dispari

Cosa fa il programma

Questo programma in C++ chiede all'utente di inserire una serie di numeri e calcola separatamente la somma dei numeri pari e quella dei numeri dispari.

Analisi del codice

Inclusioni e dichiarazioni iniziali

#include <iostream>
using namespace std;
  • Include la libreria per input/output
  • Permette di usare cout e cin senza scrivere std::

Variabili utilizzate

int n, x;
int sommaPari = 0, sommaDispari = 0;
  • n: memorizza quanti numeri l'utente vuole inserire
  • x: variabile temporanea per ogni numero inserito
  • sommaPari: accumula la somma dei numeri pari (inizializzata a 0)
  • sommaDispari: accumula la somma dei numeri dispari (inizializzata a 0)

Input del numero di elementi

cout << "Quanti numeri? ";
cin >> n;

Il programma chiede all'utente di specificare quanti numeri intende inserire.

Ciclo principale

for (int i = 1; i <= n; i++) {
    cout << "Numero " << i << ": ";
    cin >> x;
    if (x % 2 == 0)
        sommaPari += x;
    else
        sommaDispari += x;
}

Il ciclo for si ripete n volte e per ogni iterazione:

  1. Richiede un numero: mostra "Numero 1:", "Numero 2:", ecc.
  2. Legge il valore: memorizza il numero inserito nella variabile x
  3. Verifica se è pari o dispari:
    • x % 2 == 0 controlla se il resto della divisione per 2 è zero
    • Se è zero → il numero è pari → lo aggiunge a sommaPari
    • Altrimenti → il numero è dispari → lo aggiunge a sommaDispari

Output dei risultati

cout << "Somma valori pari = " << sommaPari << endl;
cout << "Somma valori dispari = " << sommaDispari << endl;

Alla fine mostra le due somme calcolate.

Esempio di esecuzione

Se l'utente inserisce:

  • Numero di valori: 4
  • Numeri: 3, 8, 15, 22

Il programma calcola:

  • Numeri pari: 8 + 22 = 30
  • Numeri dispari: 3 + 15 = 18

E stampa:

Somma valori pari = 30
Somma valori dispari = 18

Concetti chiave

  • Operatore modulo (%): restituisce il resto della divisione
  • Ciclo for: ripete un blocco di codice un numero prestabilito di volte
  • Variabili accumulatore: sommaPari e sommaDispari mantengono il totale parziale
  • Struttura condizionale if-else: decide in quale somma aggiungere ogni numero

#include <iostream>
using namespace std;

int main() {
    int n, x;
    int sommaPari = 0, sommaDispari = 0;

    cout << "Quanti numeri? ";
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cout << "Numero " << i << ": ";
        cin >> x;
        if (x % 2 == 0)
            sommaPari += x;
        else
            sommaDispari += x;
    }

    cout << "Somma valori pari = " << sommaPari << endl;
    cout << "Somma valori dispari = " << sommaDispari << endl;

    return 0;
}