Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-09-2013, 16:48   #1
Vul
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 6873
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
  • 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+1
  • enddo
  • write (*,*) 'la somma dei numeri compresi fra a e b è',S
  • pause
  • end

Il programma non funziona e onestamente non mi è nemmeno chiaro come funzioni l'indicizzazione.
Vul è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2013, 17:17   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Vul Guarda i messaggi
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
  • 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+1
  • enddo
  • write (*,*) 'la somma dei numeri compresi fra a e b è',S
  • pause
  • end

Il programma non funziona e onestamente non mi è nemmeno chiaro come funzioni l'indicizzazione.
Il Fortran l'ho fatto milioni di anni fa, però il problema in questo caso è dell'algoritmo.
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
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2013, 17:22   #3
Vul
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 6873
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....
Vul è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2013, 19:20   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da Vul Guarda i messaggi
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....
Scrivere con una formattazione degli spazi da cristiani avrebbe aiutato ad evitare questo strafalcione (e aiuterà in futuro a evitarne a palate, soprattutto visto che il FORTRAN è un linguaggio in cui i tipi delle variabili sono controllati MOLTO debolmente).

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
Consiglio uno stile simile: ben indentato, spazi tra gli operatori, con line break tra le parti di codice in cui si fanno compiti differenti.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2013, 20:45   #5
Vul
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 6873
grazie
Vul è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2013, 12:55   #6
Shirov
Senior Member
 
Iscritto dal: May 2004
Messaggi: 442
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...
Shirov è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2013, 16:18   #7
Storti
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 24
Penso che in questo caso lo scopo fosse trovare l'algoritmo più che la formula.
Storti è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2013, 00:27   #8
Vul
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 6873
Si infatti, sono solo esercitazioni per farci imparare.
Vul è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2013, 12:44   #9
andythesniper
Member
 
L'Avatar di andythesniper
 
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
andythesniper è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
PS5 Linux perde il suo sviluppatore: sto...
GPU gaming, Rubin e RDNA 5 verso il 2028...
AMD: l'alternativa al DLSS 5 sarebbe in ...
Canon EOS R8 Mark II: sensore da 24,2 MP...
Alla Napoli Shipping Week 2026 arriva il...
Addio bollo: il Governo cancella la tass...
Speciale Logitech G: mouse PRO X SUPERLI...
Cosa pensano Altman, Amodei, Benioff e H...
Microsoft: evento il 7 ottobre dedicato ...
Scoperti 84 corpi cosmici anomali: cosa ...
Dimensity 9600 Pro contro A20 Pro, il nu...
HillMiles MileCity1 torna a 648,99€: e-b...
Enel Mobile, il debutto è sempre ...
Nuova rimodulazione per il fisso di TIM ...
iPhone 18 Pro e Pro Max, preordini sotto...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v