Oppure

Loading
29/10/14 18:12
Ercules76
Ciao a tutti, sto studiando (malgrado l'età;) il c#, dopo aver letto e visto guide ho deciso di iniziare a fare qualche programma in windows form, quindi un convertitore di angoli da decimale a sessadecimale e viceversa. La mia idea è quella di avere 3 textbox (1 per i gradi, 1 per i primi, 1 per i secondi) e un'altra textbox con il valore convertito in decimale. Vorrei non utilizzare bottoni, ma deve essere tutto dinamico, come cambio i valori nei vari textbox dei gradi, automaticamente converte e visualizza il nuovo valore nel textbox dei decimale, viceversa se scrivo un valore decimale nell'apposito textbox, automaticamente lo trovo separato nei 3 box riguardanti i gradi.
Non voglio che mi facciate il programma sia chiaro :), diciamo che la parte dove scrivo i gradi-primi-secondi l'ho fatta, mi risulta difficile trovare una funzione che mi trasformi i decimali, non riesco a gestire stringhe convertite in valori numerici per fare i vari calcoli, mi sono bloccato e non riesco ad andare avanti. Avete dei suggerimenti? Grazie mille in anticipo.
aaa
29/10/14 19:26
Il suggerimento è quello di preparare su carta i passi da seguire.

Ovvero, scrivi cosa dovrebbe fare con i singoli valori il programma (operazioni da eseguire)
29/10/14 20:56
Ercules76
Sto facendo così, ma non riesco a trovare la via :), ora mi sono fermato un pò perchè sono un pò di ore che ci sto perdendo la testa oggi e ormai non connetto più, domani riprovo a mente serena
aaa
29/10/14 21:19
Scusa ... ma cosa non riesci a fare?

Prima di tutto ... conosci le formule da applicare?
30/10/14 11:57
Ercules76
Si conosco le formule, vorrei fare questo convertitore da sessagesimali a decimali e viceversa, ma in maniera dinamica. Per farti capire, immagine 3 textbox uno di fianco all'altro, nel primo metterò i gradi nel secondo i primi e nel terzo i secondi, sotto questi 3 textbox ne ho un quarto, dove sarà visualizzato il calcolo in decimale, in maniera dinamica con l'evento textchange, quindi ogni volta che inserisco un numero nei tre textbox, automaticamente verrà visualizzato il valore dei numeri inseriti, questa cosa l'ho fatta. Ora mi piacerebbe fare anche la situazione inversa, cioè scrivere nel quarto textbox un valore decimale, e vedere automaticamente nei primi 3 textbox il valore convertito in sessagesimale. So che mi spiego male e come esercizio iniziale forse è un pò dura. Non riesco a gestire le varie trasformazioni di text in float/double, anche perchè scrivendo ad esempio 34,2456, devo comunque dividere in 3 parti per la trasformazione 34 24 56, il problema nasce sulla gestione dei numeri prima della virgola, se c'è un solo numero o 2 oppure 3, potrei avere anche 3,4567 o 234,4567. Quindi il mio primo problema è la gestione della stringa del textbox4, come splittare la stringa, riconoscendo se prima della virgola ci sia 1-2 o 3 cifre.
aaa
30/10/14 12:02
Ad esempio, supponi che nei primi textbox tu abbia i valori

34 24 56

quale formula useresti per ottenere l'altro valore convertito?
30/10/14 12:15
Ercules76
34 + (24/60) + (56/3600)
aaa
30/10/14 12:24
Bene ... quindi per ottenere dal primo textbox il valore in una variabile che chiamerai g

Dim g As Integer = 0
Integer.TryParse(TextBox1.Text, g)

quindi ...