|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 6851
|
Problema stupido fortran scolastico
Allora, devo fare un programma in linguaggio fortran che faccia una sommatoria da un numero a ad un numero b di numeri naturali dove i numeri glieli do io.
Esempio la sommatoria da 3 a 7 dovrebbe venire: 3+4+5+6+7 = 25 Il programma che ha fatto un mio collega, ma non viene è il seguente
Il programma non funziona e onestamente non mi è nemmeno chiaro come funzioni l'indicizzazione. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Guada la riga che ti ho messo in evidenza: lui in realtà per ogni valore dell'intervallo preso in considerazione non va a sommare il valore stesso (come il concetto di sommatoria prevede) ma va a incrementare semplicemente di 1 il valore di S. Quella riga deve essere sostituita con questa: S = S + i |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 6851
|
wow, che schiappa che sono.
Ma la cosa bella non era il mio amico che aveva sbagliato ma io che ho letto un 1 al posto di una i.... |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Codice:
program sommatoria fra due numeri
integer i
write(*,*) 'inserire due numeri a e b (con b > a)'
read(*,*) a, b
S = a
do i = a + 1, b
S = S + i
enddo
write(*,*) 'la somma dei numeri compresi fra a e b è', S
pause
end
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 6851
|
grazie
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2004
Messaggi: 431
|
Però fatto così, con un ciclo do, mi pare una roba fortemente inefficente... se la somma riguardasse decine di milioni di numeri è troppo lento... normalmente la somma dei numeri da 1 a n si calcola con:
(n * (n + 1)) / 2 (es: la somma dei numeri da 1 a 6 non si fa come 1 + 2 + 3 + 4 + 5 + 6 ma (6 * 7) / 2) quindi non è difficile arrivare ad una soluzione più efficiente anche ponendo di partire da un valore diverso da 1....
__________________
--In Siberia non sono tutte gnocche... ma tante si... |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Sep 2013
Messaggi: 24
|
Penso che in questo caso lo scopo fosse trovare l'algoritmo più che la formula.
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 6851
|
Si infatti, sono solo esercitazioni per farci imparare.
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Dec 2012
Messaggi: 97
|
@shivor credo che la soluzione più efficace sia
Codice:
(n_iniziale + n_finale) * ((n_finale - n_iniziale + 1) / 2)
__________________
CPU: Intel I7 2600K RAM: 4x4GB Crucial Ballistix Tactical Tracer (DDR3 1866mhz) VGA: Sapphire HD 7950 Vapor-X Ali: Corsair TX850 HDD: 6x WD2500YS (raid 0 {S.O.} raid 1+0 {Data}) CASE: AeroCool xPredator Evil Green Edition Work In Progress... Ecco tutte le mie trattative: QUI Se dovessi avere i PM pieni, mandatemi una e-mail, quella è la prima cosa che leggo e che vedo tramite cellulare |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:44.



















