[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
coutecinsenza prefissostd::
Dichiarazione delle variabili
int n;
double v[100];
double sommaPari = 0, sommaDispari = 0;
n: numero di elementi che l'utente vuole inserirev[100]: array che può contenere fino a 100 numeri decimalisommaPariesommaDispari: 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
forper 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;
}