Newsgroup: it.comp.appl.access
Titolo: Logaritmo base 10 e tangente per calcolo su cartellino di rotta per i voli

Access 00/XP
Ciao a tutti, sto sviluppando un biccolo programmino per fare il cartellino 
di rotta per i voli che effettuo in elicottero (è la mia professione), 
contenente rotta, tempi, distanze, ecc.; purtroppo mi son bloccato in un 
formula che effettuo senza problemi con la calcolatrice scientifica, mentre 
con Access non riesco a farla funzionare (prove ne ho fatte abbasatanza), 
forse mi sfugge qualcosa ????
Il calcolo da effettuare è quello sotto, con il 20 scritto all'interno della 
funzione Tang(40° + (20°/2)) che cambia in funzione della latitudine. Mi 
piacerebbe utilizzarla con un'espressione, se possibile, diversamente con 
una routine Function (che non so fare).
Latitudine crescente= 7915,7 * log10 tang(45° + (40°/2)) 
il risultato corretto è :  2622,688712
l'altra formula per avere lo stesso risultato è : 57° ln tang(45° + (40°/2)) 
il risultato corretto è :  2622,688712                          (anche 
questa, nisba)
Con la calcolatrice scientifica ho provato a fare la conversione dei gadi in 
primi (45°*60= 2700') e i calcoli non sono riusciti correttamente, strano, 
pensavo che il calcolo lo facesse comunque dando lo stesso risultato. Mi 
sbagliavo, non sono mai stato un mostro in matematica.
Spero nel vostro aiuto
Mille grazie
            Bruno

 ha scritto nel messaggio
news:4637b5da$0$4787$4faf...@reader4.news.tin.it...

Ciao Bruno,
Le funzioni trigonometriche in VBA vogliono in ingresso la misura di un
angolo espressa in radianti, quindi  bisogna moltiplicare i gradi per
Pigreco/180 (trovi tutte le info nel manuale di Access)
La funzione Log di VBA rende il logaritmo naturale, quindi se vuoi il
logaritmo in base 10 devi cambiare base dividento per il logaritmo naturale
della nuova base Log(10)
Quindi
Latitudine crescente= 7915,7 * log10 tang(45° + (40°/2))
in VBA puoi esprimerla così
----
Latitudine crescente =  7915.7 * Log(Tan(65 * 3.14159265358979 / 180)) /
Log(10)
----
Risultato 2622,68871245544
Ciao
-- 
Giorgio Rancati
[Office Access MVP]


-----------------------------------------------------
Ciao Giorgio,
         mille grazie per l'aiuto datomi; mi hai permesso di proseguire 
nello sviluppo del mio piccolo e desiderato programma.
Pur avendo letto la spiegazione nell'aiuto in linea e provato a trascrivere 
la formula, non sono riuscito ad ottenere il tuo risultato.
Ancora grazie..... Bruno Musiu

 Ancora grazie..... Bruno Musiu
Cia Bruno,
nell'help di VBA per Access prova a cercare una funzione trigonometrica come
Sin o Tan ecc, in fondo troverai scritto
----
Per convertire i gradi in radianti, moltiplicarli per PiGreco/180. Per
convertire i radianti in gradi moltiplicarli per 180/PiGreco.
----
poi cerca Log, nella pagina dell'help troverai
----
È possibile calcolare i logaritmi in base n per qualsiasi numero x dividendo
il logaritmo naturale di x per il logaritmo naturale di n nel modo seguente:
Logn(x) = Log(x) / Log(n)
In questo esempio viene illustrata una routine Function che calcola i
logaritmi in base 10:
Static Function Log10(X)
    Log10 = Log(X) / Log(10#)
End Function
----
infine per verificare quanto ho scritto in precedenza, copia e incolla
questo codice in un modulo BAS (se non ne hai creane uno nuovo)  ed eseguilo
premendo F5
----
Sub ProvaCalcolo()
Dim Valore As Double
Dim Risultato As Double
Valore = 7915.7
Risultato = Valore * Log(Tan((45 + 40 / 2) * 3.14159265358979 / 180)) /
Log(10)
MsgBox Risultato
End Sub
----
La MsgBox mostrerà il risultato 2622,68871245544
In modo analogo, se indichi quali sono le variabili in ingresso, si può
costruire una funzione che potrai usare all'interno di maschere/query/report
ecc.


 ----
vedo che una parte č andata a capo, non vorrei ti creasse problemi.
Cosě non dovbrebbe andare a capo niente.
----
Sub ProvaCalcolo()
Dim Valore As Double
Dim Risultato As Double
Dim Pi As Double
Pi = 3.14159265358979
Valore = 7915.7
Risultato = Valore * Log(Tan((45 + 40 / 2) * Pi / 180)) / Log(10)
MsgBox Risultato
End Sub
----
Ciao
