Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-11-2009, 20:10   #1
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
[Fortran] Indovinello

Chi sa già la risposta è pregato di non rispondere, gli altri provino a indovinare l'output di questo banalissimo programma:

Codice:
	program test
	implicit none
	integer i,j,k
	i=1
	j=3
	do k = i,j
		write(*,*) k
	end do
	write(*,*) k
	end
Forse sarà che sono noob, ma ciò mi lascia basito...
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 21:13   #2
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
non conosco il fortran però mi butto:
1
2
3
3

ho indovinato?
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 21:18   #3
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Quote:
Originariamente inviato da kurts Guarda i messaggi
non conosco il fortran però mi butto:
1
2
3
3

ho indovinato?
No, magari fosse come dici te, non avrei perso un sacco di tempo per scoprirlo...
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 21:21   #4
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
ah beh, allora ci stai ingannando!! avevi detto "banalissimo"

P.S.: che brutta sintassi il fortran, non invidio i fisici! (che nella mia università studiano fortran)
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 21:25   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Provo anch'io dai...
1
3
3

oppure

1
1
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 21:36   #6
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Provo anch'io dai...
1
3
3

oppure

1
1
umh... spiega spiega, non capisco
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:08   #7
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da kurts Guarda i messaggi
umh... spiega spiega, non capisco
Premetto che non conosco fortran. Dopo aver escluso la tua soluzione per il primo ho pensato: k deve assumere i valori i e j, quindi 1 e 3 e poi all'uscita dal ciclo vale ancora 3.
Per la seconda invece ho pensato: è un do ma senza condizioni (non conoscendo la sintassi del fortran) quindi fa la prima assegnazione k=1, stampa 1 e poi esce dal ciclo e stampa di nuovo 1.
Ora però mi verrebbe da dire anche
3
3
perché potrebbe assegnare a k i ma subito dopo j e sovrascriverla...
Comunque l'ho buttata lì... sinceramente non capisco neanche a cosa serva quel (*,*) nel write
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:22   #8
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
write(*,*) serve solo per stampare a video, nulla di esotico

comunque non avete indovinato
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:30   #9
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da Devil! Guarda i messaggi
write(*,*) serve solo per stampare a video, nulla di esotico

comunque non avete indovinato
Scrive K per il numero di cicli in do, ... da quel che ricordo 1,3 sono i valori iniziali e finali da porre nel contatore (K).

Quindi teoricamente scrive il valore di K (il contatore) ad ogni ciclata (deduco siano 2, da 1 a 3).
Sbaglio?
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:33   #10
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Quote:
Originariamente inviato da michele.broggi Guarda i messaggi
Scrive K per il numero di cicli in do, ... sbaglio?
cioè? intendi così?
k
k
k
k

no, scrive 3 numeri, i primi 3 li ha indovinati kurts ma l'ultimo è quello interessante
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:34   #11
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da Devil! Guarda i messaggi
cioè? intendi così?
k
k
k
k

no, scrive 3 numeri, i primi 3 li ha indovinati kurts ma l'ultimo è quello interessante
Ovvio che non stampa le K ma il valore che prende... da 1 a 3... (quindi se mi dici che stampa tre numeri considera anche la terza posizione nello stato del ciclo )

Quindi 1 3 3 dici?
L'ultimo... è quel write (*,*) k fuori dal ciclo.
Bisogna sapere come il linguaggio gestisce le variabili..
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:36   #12
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Quote:
Originariamente inviato da michele.broggi Guarda i messaggi
Ovvio che non stampa le K ma il valore che prende... da 1 a 3...
Hai editato, prima non avevo capito

Quote:
Originariamente inviato da michele.broggi Guarda i messaggi
L'ultimo... è quel write (*,*) k fuori dal ciclo.
Bisogna sapere come il linguaggio gestisce le variabili..
Esatto, il problema è proprio qua, la soluzione è poco intuitiva
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:39   #13
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da Devil! Guarda i messaggi
Hai editato, prima non avevo capito
Lo so, avevo spiegato malissimo!

Quote:
Originariamente inviato da Devil! Guarda i messaggi
Esatto, il problema è proprio qua, la soluzione è poco intuitiva
Non so come alloca le variabili il linguaggio.
Secondo me o resta a (null) è dichiarato ma non ha un valore di riferimento, o assume l'ultimo valore del ciclo (3)... o non lo so. Io punto alla prima (null)
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:40   #14
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Quote:
Originariamente inviato da michele.broggi Guarda i messaggi
Secondo me o resta a (null) è dichiarato ma non ha un valore di riferimento, o assume l'ultimo valore del ciclo (3)... o non lo so. Io punto alla prima (null)
Nè (null) nè 3

Vi do la soluzione?
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:41   #15
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da Devil! Guarda i messaggi
Nè (null) nè 3

Vi do la soluzione?
SPARA
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:47   #16
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da Devil! Guarda i messaggi
no, scrive 3 numeri, i primi 3 li ha indovinati kurts ma l'ultimo è quello interessante
Ah ok, io mi ero concentrato sul do... Beh, visto che 'sto do funziona tipo un ciclo for all'uscita k potrebbe valere 4 e quindi stampare 4.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:48   #17
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
1
2
3
pi greco






scherzo
1
2
3
4

E ora, secondo indovinello.
Secondo voi, quanto ci ho messo io, niubbo che programma in Python da una decina di giorni e che conosce poco il Fortran e soprattutto era all'oscuro di questo arcano mistero, a tradurre questa subroutine da Fortran a Python???????
Tenete conto bisogna sistemare tutti gli indici perchè Python inizia a contare da 0, Fortran da 1 e perchè Python non elabora l'ultimo valore nel ciclo, mentre Fortran sì...

Codice:
      subroutine kersh(iout,nequ,nterm,ia,ja,sysmat,prec)

      implicit none

      integer  iout,nequ,nterm
      integer  ia(nequ+1),ja(nterm)

      integer  i,j,k,kk,k1,i1,j1,k2

      real*8   prec(nterm),sysmat(nterm)
      real*8   a,zero

      parameter (zero=0.0)

      do k=1,nterm
         prec(k) = zero
      end do

      do kk=1,nequ-1

         k = ia(kk)
         a = sysmat(k) - prec(k)
         if(a.le.zero) then
            write(iout,100) k,a
            write(iout,101) prec(ia(kk-1))
            a = (prec(ia(kk-1)))**2
         end if
         prec(K) = sqrt(a)
 
         i = ia(kk) + 1
         j = ia(kk+1) - 1


         do k1 = i,j
            prec(k1) = (sysmat(k1)-prec(k1))/prec(k)
         end do

         do k2 = i,j-1

            j1 = ia(ja(k2))
            prec(j1) = prec(j1) + prec(k2)**2
            i1 = k2 + 1
            j1 = j1 + 1
            do while(j1.lt.ia(ja(k2)+1).and.i1.le.j)
               if(ja(j1).eq.ja(i1)) then
                  prec(j1) = prec(j1) + prec(k2)*prec(i1)
                  i1 = i1 + 1
                  j1 = j1 + 1
               else if (ja(j1).lt.ja(i1))then
                  j1 = j1 + 1
               else if (ja(j1).gt.ja(i1))then
                   i1 = i1 + 1
               end if
            end do

         end do

         if(j.ge.i)
     1        prec(ia(ja(j))) = prec(ia(ja(j))) + prec(k2)**2

      end do

      k = ia(nequ) 
      a = sysmat(k)-prec(k)
      if(a.le.zero) then
         write(iout,100) nequ ,a
         write(iout,101) prec(ia(nequ-1))
         a = (prec(ia(nequ-1)))**2
      end if
      prec(k) = sqrt(a)

      return
100   format('*** Subroutine Kersh: diagonal',
     1       ' element <= zero at position: ',I5,2X,E16.5)
101   format('***** using previous diagonal value: ',E16.8)
      end
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 22:54   #18
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da Devil! Guarda i messaggi
1
2
3
pi greco

Ci sono cascato... burlone!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 23:29   #19
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da Devil! Guarda i messaggi
1
2
3
pi greco






scherzo
1
2
3
4

E ora, secondo indovinello.
Secondo voi, quanto ci ho messo io, niubbo che programma in Python da una decina di giorni e che conosce poco il Fortran e soprattutto era all'oscuro di questo arcano mistero, a tradurre questa subroutine da Fortran a Python???????
Tenete conto bisogna sistemare tutti gli indici perchè Python inizia a contare da 0, Fortran da 1 e perchè Python non elabora l'ultimo valore nel ciclo, mentre Fortran sì...

Codice:
      subroutine kersh(iout,nequ,nterm,ia,ja,sysmat,prec)

      implicit none

      integer  iout,nequ,nterm
      integer  ia(nequ+1),ja(nterm)

      integer  i,j,k,kk,k1,i1,j1,k2

      real*8   prec(nterm),sysmat(nterm)
      real*8   a,zero

      parameter (zero=0.0)

      do k=1,nterm
         prec(k) = zero
      end do

      do kk=1,nequ-1

         k = ia(kk)
         a = sysmat(k) - prec(k)
         if(a.le.zero) then
            write(iout,100) k,a
            write(iout,101) prec(ia(kk-1))
            a = (prec(ia(kk-1)))**2
         end if
         prec(K) = sqrt(a)
 
         i = ia(kk) + 1
         j = ia(kk+1) - 1


         do k1 = i,j
            prec(k1) = (sysmat(k1)-prec(k1))/prec(k)
         end do

         do k2 = i,j-1

            j1 = ia(ja(k2))
            prec(j1) = prec(j1) + prec(k2)**2
            i1 = k2 + 1
            j1 = j1 + 1
            do while(j1.lt.ia(ja(k2)+1).and.i1.le.j)
               if(ja(j1).eq.ja(i1)) then
                  prec(j1) = prec(j1) + prec(k2)*prec(i1)
                  i1 = i1 + 1
                  j1 = j1 + 1
               else if (ja(j1).lt.ja(i1))then
                  j1 = j1 + 1
               else if (ja(j1).gt.ja(i1))then
                   i1 = i1 + 1
               end if
            end do

         end do

         if(j.ge.i)
     1        prec(ia(ja(j))) = prec(ia(ja(j))) + prec(k2)**2

      end do

      k = ia(nequ) 
      a = sysmat(k)-prec(k)
      if(a.le.zero) then
         write(iout,100) nequ ,a
         write(iout,101) prec(ia(nequ-1))
         a = (prec(ia(nequ-1)))**2
      end if
      prec(k) = sqrt(a)

      return
100   format('*** Subroutine Kersh: diagonal',
     1       ' element <= zero at position: ',I5,2X,E16.5)
101   format('***** using previous diagonal value: ',E16.8)
      end
Ma solo a me non sembra Python?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2009, 23:31   #20
Devil!
Senior Member
 
L'Avatar di Devil!
 
Iscritto dal: Feb 2003
Città: Padova
Messaggi: 5905
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Ma solo a me non sembra Python?
appunto, è Fortran, io volevo tradurre la subroutine da Fortran a Python
__________________

Devil! è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
La rete elettrica europea sta limitando ...
Apple Magic Keyboard per iPad Pro 11'' i...
BYD punta a nuove tecnologie: batterie a...
Windows 11 porta il Bluetooth multi-disp...
iPhone 17e e non solo: Gurman svela le c...
Arrestato per omicidio, in lacrime ai po...
Vexilar, scopa elettrica da 65000Pa, 4,9...
Linux 7.0 sarà la prossima versio...
Windows 11: Copilot AI entra anche nella...
Apple apre CarPlay ai chatbot di terze p...
Horses: Santa Ragione afferma di essere ...
Nuova causa contro Tesla e maniglie elet...
MindsEye, il CEO accusa: 'Speso un milio...
TV LG NanoCell da 65 pollici a 499€: tan...
ho. Mobile, nuova offerta low-cost: 100 ...
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: 12:43.


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