Autore Topic: Conversione di un angolo  (Letto 946 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Conversione di un angolo
« il: 29 Settembre 2013, 16:11:12 »
Vi segnalo questa interessante discussione apparsa nel sito della Comunità francese dei programmatori Gambas:

http://89.234.156.109/sujet-4459-conversion-dangle-page-1.html
« Ultima modifica: 24 Agosto 2020, 22:26:26 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 Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #1 il: 29 Settembre 2013, 23:23:18 »
Già che ci siamo facciamo pure il contrario:  ;)

Codice: [Seleziona]
' Gambas class file

Private angolodec As Float
Private angoloorario As String

Public Sub _new()
End

Public Sub Form_Open()
angolodec = CFloat(inputbox("Angolo?"))
Label1.text = convertiorario(angolodec)
End

Public Function convertiorario(angolo As Float) As String
Dim minuti As Byte, secondi As Short
Dim gradi As String
gradi = CStr(CInt(angolo)) & "°"
secondi = (angolo - CInt(angolo)) * 3600
minuti = secondi \ 60
gradi &= CStr(minuti) & "'"
secondi = secondi Mod (secondi \ 60)
gradi &= CStr(secondi) & "''"
Return gradi
End

Però ho notato una cosa, controllando con la mia calcolatrice scientifica: i risultati corrispondono solo da circa 22° in poi; sotto, la calcolatrice mi da un risultato leggermente superiore sui secondi, ma non capisco se sbaglia Gambas o la mia calcolarice. :-\
« Ultima modifica: 29 Settembre 2013, 23:32:50 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #2 il: 29 Settembre 2013, 23:32:35 »
Già che ci siamo facciamo pure il contrario:  ;)


Io, però, la vedrei ben inserita nella WIKI.  :-\
« 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 Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #3 il: 29 Settembre 2013, 23:34:03 »
Fallo tu che sei capace, magari dopo aver capito dove sta l'inghippo dei secondi.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #4 il: 29 Settembre 2013, 23:42:10 »
Fallo tu che sei capace, magari dopo aver capito dove sta l'inghippo dei secondi.

Ahéééééééééééé !  Stiamo freschi, allora ! 
« 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 Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #5 il: 29 Settembre 2013, 23:44:13 »
Per me è un bugghino di Gambas, al limite pubblicalo così com'è e ci lavorerò su in seguito.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #6 il: 30 Settembre 2013, 00:24:57 »
Perché un bug ?
Mi pare che il problema, di cui parli, è l'errore di divisione per zero alla riga
Codice: gambas [Seleziona]

secondi = secondi Mod (secondi \ 60)

nei casi in cui i valori a destra del punto (ossia della virgola) siano uguali a zero (ad esempio 7.0 ).
In effetti si avrebbe sostanzialmente una cosa di questo genere:
 secondi = 0 Mod 0

Si potrebbe risolvere con un IF :   :-\
Codice: gambas [Seleziona]

   If secondi > 0 Then secondi = secondi Mod (secondi \ 60)
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #7 il: 30 Settembre 2013, 00:45:41 »
...ad ogni modo nel codice proposto dal programmatore lì nel forum francese c'è anche il calcolo inverso per passare dai gradi decimali ai gradi sessadecimali.
« 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 Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #8 il: 30 Settembre 2013, 17:31:13 »
Hai ragione, c'è quell'errore. :-[
Non ho fatto caso che nel codice del programmatore francese, c'era anche l'inverso, era una riga commentata. :-[
Vabbé, ho perso un quarto d'ora per niente. :D
« Ultima modifica: 30 Settembre 2013, 17:34:39 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #9 il: 30 Settembre 2013, 20:47:09 »

Vabbé, ho perso un quarto d'ora per niente.

E' stato comunque per te un esercizio, e quindi - secondo me - non è stato tempo sprecato.  :-\
« 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: Conversione di un angolo
« Risposta #10 il: 02 Ottobre 2013, 15:15:37 »
E il mio di tempo non lo contate?  :'(

Che stò quà a leggere 'stò andirivieni di post... mannaggia...  >:(


 ;D ;D ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Conversione di un angolo
« Risposta #11 il: 02 Ottobre 2013, 15:52:49 »
Che stò quà a leggere 'stò andirivieni di post... mannaggia...


...è tutta culdura !
« 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. »