Autore Topic: [Risolto] Quando è "relativo" anche mostrare il Tempo !  (Letto 2141 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Perché da queste seguenti istruzioni si ottiene un risultato diverso ?  :rolleyes:

Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Dim sTime As String = Time(Now())
  
  Print sTime

  Print Time(Now())

End


In particolare noterete che la prima stampa in console del tempo mostra anche i millesimi di secondo; invece la seconda no !  ???
« Ultima modifica: 06 Agosto 2012, 14:46:44 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Quando è "relativo" anche mostrare il Tempo !
« Risposta #1 il: 05 Agosto 2012, 21:57:25 »
già devi ringraziare che il print non ti stampa a video il valore float del tempo!! probabilmente qualcuno ha scelto che funzionasse così :)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Quando è "relativo" anche mostrare il Tempo !
« Risposta #2 il: 05 Agosto 2012, 23:33:15 »
Esatto!

La PRINT è una keyword, e intepreta qualsiasi cosa gli si passi, ma il come lo fà dipende dal tipo di formato che gli è stato imposto internamente.

Mettere invece un valore dentro una variabile è soggetto alla normale logica, che non fà conversioni (a meno che non lo si indichi volutamente, e che la variabile sia la stessa del valore che gli si và a scrivere dentro).

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Quando è "relativo" anche mostrare il Tempo !
« Risposta #3 il: 06 Agosto 2012, 00:22:25 »
La PRINT è una keyword, e intepreta qualsiasi cosa gli si passi, ma il come lo fà dipende dal tipo di formato che gli è stato imposto internamente.

Mettere invece un valore dentro una variabile è soggetto alla normale logica, che non fà conversioni...

Dunque, mi pare di capire che il normale e naturale risultato dell'istruzione Time(Now()) è quello come mostrato dalla stampa del valore contenuto nella variabile stringa; e non già quello mostrato dalla diretta stampa con Print, poiché questo ne dà una sua interpretazione.
 
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Quando è "relativo" anche mostrare il Tempo !
« Risposta #4 il: 06 Agosto 2012, 10:37:24 »
In realtà, il valore è in memoria in un formato numerico in virgola mobile.
L'interpretazione che si dà a questo valore, per renderlo leggibile, è dipendente dal codice inserito nelle varie funzioni.
Gambas ha parecchie funzioni di conversione (es. Str(), CStr(), Int(), CInt()), e ognuna lavora in modo diverso per rappresentare o convertire un valore.

Un esempio è quello di printare un oggetto. Si può fare con PRINT <oggetto>, che ritorna una stringa composta dal nome della classe (se l'oggetto è valido), seguito dall'indirizzo in memoria della stessa. In realtà, la PRINT non fà altro che comporre una stringa con i due elementi, per cui dà una sua interpretazione personale.
Lo stessa logica, ad esempio, è per i valori Float, anch'essi presenti in memoria in un formato binario particolare, non direttamente decifrabile ad occhio, per cui è necessaria una formattazione per poterlo rappresentare in un formato leggibile. Tanto per dirla tutta, il vero valore non contiene una virgole o un punto, questi caratteri vengono messi appunto nella sua rappresentazione a video, e dipendono poi dalla lingua corrente (vedi formati USA/Euro).

Nella documentazione è descritta l'occupazione di ogni tipo di dato, dal Byte al Long. Questi occupano una determinata dimensione in byte (sempre in byte, 8 bit, che è l'informazione di base per tutti), ma non sono scritti in cifre leggibili, ma alzando ogni singolo bit, per formare una valore esadecimale corrispondente al valore reale. Se potessimo stampare direttamente ogni singolo byte del dato, avremmo a video dei caratteri ascii, il cui valore Asc() corrisponderebbe appunto al valore del byte. E' ovvio che quello che vedremmo a video, non sarebbe intellegibile, o perlomeno non così palese (occorrerebbe un occhio allenato per decodificare il carattere, e avere una bella memoria per ricordarsi tutti i valori della tabella ASCII), e tenendo pure presente che alcuni caratteri della tabella ASCII, o vengono intrpretati (vedi Chr(13)=Return a video), o non visibili (vedi Chr(0)).

Spero che la spiegazione sia stata esauriente...  :D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Quando è "relativo" anche mostrare il Tempo !
« Risposta #5 il: 06 Agosto 2012, 17:41:24 »
Spero che la spiegazione sia stata esauriente...  :D

Molto bene, md9327, sono notizie che possono essere utili anche a tutti gli altri amici del forum.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #6 il: 07 Agosto 2012, 11:59:11 »
Credo di averlo già menzionato in tempi remoti, ad ogni modo questo tipo di domande e dubbi sono derivati dalla mancanza di una base conoscitiva di come lavora un computer. Questo è, purtroppo, causato dalla eccessiva diffusione di applicazioni che tentano di spelificare la vita a chi teoricamente dovrebbe sviluppare applicazioni o quant'altro.
E' sottinteso che la mia non è una critica, ma solo un'evidenziare di un fatto che, giornalmente mi si presenta anche in ambiente lavorativo, da chi si presume dovrebbe avere almeno una teorica idea di come funziona il tutto.
E' anche sottinteso che molti che si avvicinano ad un linguaggio, lo fanno non perchè imposto dal proprio lavoro o da forzature esterne, non siano in possesso di questi requisiti, e che appunto per questo cercano di ottenere qualcosa, cercando di carpire informazioni, come succede qui nel forum.
Molte delle richieste che leggo qui nel forum, evidenziano queste mancanze, e vorrei in qualche modo colmarle, cercando di spiegare almeno le basi, necessarie poi per capire il funzionamento delle cose ad un livello più alto.  A volte, poi, mi sembra che vi sia anche una paura atavica nel provare a fare cose, come se l'usare una funzione male causasse l'esplosione del proprio pc...  :D
Gambas, di per sè, è un linguaggio che facilita di molto lo sviluppo di idee, e la messa in pratica di programmi software. Il problema di questo tipo di linguaggi è che nascondono tutto quello che è alla base. Questo è ovvio, altrimenti non sarebbe un linguaggio, ma porta inevitabilmente a porre domande come quelle che leggo.
Io spero che con i miei spot, possa in qualche modo cercare di far capire i meccanismi minimali della programmazione, non fornendo facili soluzioni, ma cercando di spingere l'interlocutore ad analizzare le cose in modi diversi, ovvero vedere sotto altri punti di vista le possibili soluzioni di un problema.
Non sono un guru, ho solo abbastanza esperienza, assorbita piano piano nel tempo, sbattendo la testa innumerevoli volte, pur di capire come funziona una cosa, e la curiosità innata (altrimenti non avrei manco preso in considerazione questo linguaggio...).

Detto questo, ora vado a ritirarmi nel mio eremo sulla montagna sacra...  ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #7 il: 07 Agosto 2012, 16:53:01 »
Credo di averlo già menzionato in tempi remoti, ad ogni modo questo tipo di domande e dubbi sono derivati dalla mancanza di una base conoscitiva di come lavora un computer.
:'(


Io spero che con i miei spot, possa in qualche modo cercare di far capire i meccanismi minimali della programmazione, non fornendo facili soluzioni, ma cercando di spingere l'interlocutore ad analizzare le cose in modi diversi, ovvero vedere sotto altri punti di vista le possibili soluzioni di un problema.
Ma perciò ti teniamo in somma considerazione !  :D
Inoltre, il tuo approccio pedagogico ci spinge a capire, ad approfondire, ed anzi proprio a provare e riprovare.


Non sono un guru,
Questo fallo decidere a noi altri.  8)


Detto questo, ora vado a ritirarmi nel mio eremo sulla montagna sacra...  ;D
...me lo potevi dire  :violent: che vivi nella grotta accanto a quella di San Midi !

Sotto puoi ammirare un raro affresco rappresentante San Midi che insegna i principi del protocollo Midi, contenuti nel cosiddetto: "Codex midianus", a tre sapienti.
« Ultima modifica: 08 Agosto 2012, 00:43:00 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #8 il: 08 Agosto 2012, 09:57:39 »
Ma ndove lavori, in una chiesa? Hai più santini tu che il papa (non ceskho...).

 ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #9 il: 09 Agosto 2012, 02:09:50 »
Io spero che con i miei spot, possa in qualche modo cercare di far capire i meccanismi minimali della programmazione, non fornendo facili soluzioni, ma cercando di spingere l'interlocutore ad analizzare le cose in modi diversi, ovvero vedere sotto altri punti di vista le possibili soluzioni di un problema.

«Chi guarda nel cannocchiale e vede cose diverse da quelle che vedo io è sempre uno che può insegnarmi molte cose.»

(A. Capizzi, "La Repubblica cosmica", 1982)
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #10 il: 09 Agosto 2012, 10:29:37 »
...amen...


 ;D

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #11 il: 09 Agosto 2012, 18:07:44 »
...ragazzi questa è ormai un'epidemia, bisogna informare l' OMS!!!

 ;D
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #12 il: 09 Agosto 2012, 21:25:41 »
...ragazzi questa è ormai un'epidemia, bisogna informare l' OMS!!!

Bisognerebbe tenere un elenco aggiornato degli iscritti al forum infettati !  :-\
« Ultima modifica: 12 Settembre 2012, 11:22:04 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #13 il: 09 Agosto 2012, 22:38:34 »
credo si faccia prima a censire quelli NON infetti... :D
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [Risolto] Quando è "relativo" anche mostrare il Tempo !
« Risposta #14 il: 10 Agosto 2012, 10:45:39 »
quello che mi preoccupa è che non vi sia modo di creare un antivirus...

...magari un flit, da spruzzare direttamente sulla fonte...  ;D