Traccia:
Caricare un array a di 100 elementi in modo ciclico con la seguente sequenza:
10 20 30 40 50
Inoltre stampare a video la somma di tutti gli elementi dell'array che occupano una posizione il cui indice è multiplo di 3.
Strategia:
La sequenza ciclica presenta 5 elementi differenti per cui occorre applicare l'operatore modulo 5.
Potremo ottenere in questo modo la sequenza
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 ...
Per rendere coerente la sequenza con quella richiesta sarà sufficiente aumentare di 1 il risultato ottenuto con l'operatore modulo e moltiplicare per 10. Infatti
((0 mod 5) + 1) * 10 vale 10
((1 mod 5) + 1) * 10 vale 20
((2 mod 5) + 1) * 10 vale 30
((3 mod 5) + 1) * 10 vale 40
((4 mod 5) + 1) * 10 vale 50
((5 mod 5) + 1) * 10 vale 10
((6 mod 5) + 1) * 10 vale 20
((7 mod 5) + 1) * 10 vale 30
((8 mod 5) + 1) * 10 vale 40
((9 mod 5) + 1) * 10 vale 50
((10 mod 5) + 1) * 10 vale 10
((11 mod 5) + 1) * 10 vale 20
((12 mod 5) + 1) * 10 vale 30
((13 mod 5) + 1) * 10 vale 40
((14 mod 5) + 1) * 10 vale 50
....
Per verificare se un generico indice i è multiplo di 3 è sufficiente eseguire il test
if ((i % 3) == 0)
Svolgimento:
#include <stdio.h>
int main()
{
int a[100], i, val, somma;
// Carico l'array con una sequenza ciclica
printf("Caricamento dell'array con una sequenza ciclica:\n\n");
i=0;
while (i<100){
val = ((i % 5) + 1) * 10;
a[i] = val;
printf("%d ", val);
i++;
}
// Sommo gli elementi con indice i multiplo di 3
i=0;
somma=0;
while (i<100){
if ((i % 3) == 0)
somma = somma + a[i];
i++;
}
printf("\n\n\nLa somma degli elementi con indice i multiplo di 3 e': %d\n", somma);
return 0;
}
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 02. Introduzione al C
Paragrafo: 08. Array
Approfondimento: 01. Es. svolto: caricamento
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. Hello World - 02. Variabile di tipo int - 03. Input da tastiera - 04. Controllo condizionale if - 05. Operatori logici - 06. Ciclo while - 07. Operatore modulo - 08. Array - 09. Ciclo for - 10. Ciclo do/while - 11. Variabili di tipo float - 12. Funzione random() - 13. Impostazione del set di caratteri - 14. Definizione di funzioni - 15. Passaggio di parametri: gli array - 16. Variabili: visibilità e durata - 17. Il tipo char - 18. I file - 19. Funzioni matematiche
Indice degli approfondimenti: 01. Es. svolto: caricamento - 02. Es. svolto: caricamento II