DispatchCode
Utente Èlite
- Messaggi
- 2,509
- Reazioni
- 2,052
- Punteggio
- 144
Qundi è cosi':
Codice:double averagedT(int index) { double temp = 0; for(int j = 0+index*10) { temp += t[j]; // dovrebbe essere quindi come temp= temp+t[j]; } return temp/10; }
Pero' scusa ma non ci arrivo..
"Fare 10+index*10 significa ciclare 10 volte, ma partendo dal mese corrispondente (index*10)."
Io ho capito che terra terra bisogna trovare 10 valori di temperatura di ogni mese , è questo il "ciclare 10 volte" che intendi?
Inoltre index*10 non l'ho mai visto se fosse novembre sarebbe per te il 10 mese dell'anno .. non capisco bene questi passaggi..
poi mi dici
" prendi il mese corrente (novembre - 10), significa iniziare il ciclo alla posizione 100 fino ad arrivare a 109 compreso"
continuo a non capire perchè da 100 a 109 in questo caso...
Ultima cosa... i return che ho messo sono posizionati in maniere errata?
Ma scusa, ti sembra formalmente corretto quel for? Lui si era perso solo l'inizializzazione. La condizione rimane invece quella di prima (sarebbe però meglio calcolarlo prima del ciclo, ma ai fini del risultato, non c'entra niente).
Tu sai che i valori sono 120. Lui è partito dall'assunto che, essendo 12 i mesi, ci sono 10 valori per mese (120/12=10).
Quindi, visto che gli array sono basati a 0, gennaio sarà indicato con 0, febbraio con 1, marzo con 2 etc etc.
Nel caso di marzo quindi, avrai index=2. Visto che l'array è uno per tutti i valori, è che il primo mese è gennaio, i valori che lo riguardano sono memorizzati dalla posizione 0 alla 9. Quindi dalla 10 alla 19 trovi quelli di febbraio e marzo sarà dalla 20 alla 29. Faccio notare che: 2*10 è la posizione del primo valore di marzo, così come 2*10+10 è il limite superiore, l'ultimo valore di marzo (in realtà la posizione è (2*10+10)-1, poiché i valori sono 10).
Novembre sarà quindi 10, in quanto i valori sono 0 based. Quindi il primo valore di novembre sarà alla posizione 10*10=100 e l'ultimo alla posizione 10*10+10=110-1=109.
L'ultimo return si, è corretto. Ma è importante che tu abbia capito perché è corretto lì anche.