Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Non ho compreso a fondo la filosofia di funzionamento: nelle dichiarazioni delle distanze mi sembra di aver capito che il riferimento è il metro=1, tutti gli altri valori sono dei moltiplicatori che permettono di fare la conversione.
Ma nella temperatura non c'è un riferimento e anzi il valore associato ai celsius è 1,8 che non è un moltiplicatore dei kelvin ma solo dei fahrenheit, infatti nella realtà se si aumenta di un grado celsius, si aumenta di 1,8 gradi fahrenheit, le scale sono diverse e la base di partenza pure.
Ultima modifica effettuata da Carlo il 29/03/2018 alle 17:56
Spero che l'autore del programma non ne avrà a male se ho pasticciato un po' il suo codice.
Per le temperature non ho trovato dei valori universali da caricare in c1 e c2 che soddisfino tutte le combinazioni.
Ho apportato modifiche solo nelle conversioni delle temperature ed evitato che sul secondo combobox si carichi la stessa unità di misura del primo combobox.
Ora le temperature vengono correttamente convertite, per le conversioni delle altre grandezze non ho eseguito alcun controllo, deve essere implementato il rifiuto dell'inserimrnto delle lettere.
Posto il sorgente modificato poiché il progetto allegato non è più in vb .net 2005 come l'originale ma in vb .net 2010.
Codice sorgente - presumibilmente VB.NET
PublicClass Form1
Dim Nome AsString=""
' Modificato separatore da "-" a ";" per poter inserire un valore negativo
Dim Lunghezza()AsString={"Lunghezza", "AnnoLuce;9461000000000000", "Pollice;0,025399986", "Centimetro;0,01", "Piede;0,3048", "Metro;1", _
Dim Pressione()AsString={"Pressione", "Atmosfera;1,01325", "Pascal;0,00001", "Bar;0,986923", "Torr;0,001315789117884332", "Libbra x polliceq;0,06804594551879439"}
Dim Potenza()AsString={"Potenza", "Cavallo Vapore;1", "Watt;0,00135962"}
Dim Temperatura()AsString={"Temperatura", "Fahrenheit;1,8", "Celsius;-273,15", "Kelvin;273,15"}
Dim Forza()AsString={"Forza,", "Newton;1", "Kilogrammo forza; 0.1020"}
Dim MainArr()()AsString={Lunghezza, Superficie, Capacità, Velocità, Peso, Pressione, Potenza, Temperatura, Forza}
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)HandlesMyBase.Load
'carico il primo combobox
ForEach a()AsString In MainArr
For k AsByte= 1 To a.Length- 1
Dim splt()AsString=Split(a(k), ";")' Modificato separatore da "-" a ";" per poter inserire un valore negativo
Sarebbe Bello se l'autore scrivesse qui, almeno spiegando il suo codice. Magari a noi sfugge qualcosa.
Sopratutto, viste le continue modifiche, non sarebbe meglio aprire un progetto?
Ultima modifica effettuata da Mikelius il 30/03/2018 alle 10:18
Ne ha pubblicato un altro rev.2, le temperature vengono convertite correttamente (senza arrotondamento), ma non ha inserito il controllo dei valori minimi, 0 per i Kelvin, -273,15 per i Celsius e -459,67 per i Fahrenheit.
Ho provato a convertire i galloni Usa, non funziona.