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


Spiegazione del Programma: Somma di Elementi in Posizioni Pari e Dispari

Cosa fa il programma

Questo programma in C++ calcola la somma degli elementi di un array che si trovano in posizioni pari e la somma di quelli in posizioni dispari.

Analisi del codice

Inclusione delle librerie e dichiarazioni iniziali

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

Dichiarazione delle variabili

int n;
double v[100];
double sommaPari = 0, sommaDispari = 0;
  • n: numero di elementi che l'utente vuole inserire
  • v[100]: array che può contenere fino a 100 numeri decimali
  • sommaPari e sommaDispari: variabili per memorizzare le somme

Prima fase: Input dei dati

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

for (int i = 0; i < n; i++) {
    cout << "Numero " << i + 1 << ": ";
    cin >> v[i];
}
  • Chiede all'utente quanti numeri vuole inserire
  • Usa un ciclo for per leggere tutti i numeri e salvarli nell'array

Seconda fase: Calcolo delle somme

for (int i = 0; i < n; i++) {
    if (i % 2 == 0)
        sommaPari += v[i];
    else
        sommaDispari += v[i];
}

Punto chiave: Il programma considera le posizioni dell'array, non i valori!

  • Posizioni pari: indici 0, 2, 4, 6... (quando i % 2 == 0)
  • Posizioni dispari: indici 1, 3, 5, 7... (quando i % 2 != 0)

Output dei risultati

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

Esempio pratico

Se l'utente inserisce 5 numeri: 10, 20, 30, 40, 50

  • Array: v[0]=10, v[1]=20, v[2]=30, v[3]=40, v[4]=50
  • Posizioni pari (0, 2, 4): 10 + 30 + 50 = 90
  • Posizioni dispari (1, 3): 20 + 40 = 60

Nota importante

⚠️ Attenzione: Il programma somma in base alla posizione nell'array, non in base al fatto che i numeri siano pari o dispari matematicamente!

La posizione 0 è considerata "pari" nel contesto degli indici dell'array.


#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Quanti numeri? ";
    cin >> n;

    double v[100];
    double sommaPari = 0, sommaDispari = 0;

    for (int i = 0; i < n; i++) {
        cout << "Numero " << i + 1 << ": ";
        cin >> v[i];
    }

    for (int i = 0; i < n; i++) {
        if (i % 2 == 0)
            sommaPari += v[i];
        else
            sommaDispari += v[i];
    }

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

    return 0;
}