Aiuto Visual Basic 6

Messaggioda antonio89x » 22/10/2005, 16:51

Sapete se è possibile fare un programma con VB6 che semplifichi le frazioni?

Ad esempio 3/15 lo trasformi in 1/5

Fatemi sapere e grazie per l'aiuto.
Avatar utente
antonio89x
Junior Member
Junior Member
 
Messaggio: 39 di 338
Iscritto il: 25/06/2005, 16:05
Località: Italia

Messaggioda karl » 22/10/2005, 17:55

Costruisci un form con 3 textbox e 1 commandbutton.
Al "Run" nel primo textbox ci metti il numeratore,nel secondo
il denominatore,nel terzo niente.
Premi il commandbutton facendogli girare la seguente
routine:
<b>
Private Sub Command1_Click()
strnum = Text1.Text
strden = Text2.Text
num = CInt(strnum)
den = CInt(strden)
While (num <> den)
If (num > den) Then num = num - den Else den = den - num
Wend
num1 = CInt(strnum) / (num)
den1 = CInt(strden) / (num)
Text3.Text = CStr(num1) + "/" + CStr(den1)
End Sub</b>
Se tutto va bene,nel terzo textbox dovrebbe comparire
la frazione semplificata.
Non uso il VISUALBASIC e quindi non ti garantisco nulla!
Comunque la procedura che ti ho suggerito potrebbe andar
bene per un eventuale inserimento in un programma piu' completo.
Ciao.
karl
 

Messaggioda antonio89x » 22/10/2005, 18:44

Grazie.

Proverò a farlo e poi ti faccio sapere.
Avatar utente
antonio89x
Junior Member
Junior Member
 
Messaggio: 40 di 338
Iscritto il: 25/06/2005, 16:05
Località: Italia

Messaggioda antonio89x » 22/10/2005, 18:48

Funziona correttamente!

Grazie mille archimede!
Avatar utente
antonio89x
Junior Member
Junior Member
 
Messaggio: 41 di 338
Iscritto il: 25/06/2005, 16:05
Località: Italia

Messaggioda antonio89x » 22/10/2005, 18:50

Già che ci sono potresti dirmi come fare un prog ,sempre con VB6, che trasformi i numeri decimali in frazioni?

Ci sentiamo domani, stasera nn potrò rispondere.

Thanks.
Avatar utente
antonio89x
Junior Member
Junior Member
 
Messaggio: 42 di 338
Iscritto il: 25/06/2005, 16:05
Località: Italia

Messaggioda karl » 23/10/2005, 08:55

Come nell'altro caso prepara un form con 2 textbox e 1 commandbutton.
La procedura da inserire nel commandbutton e':
<b>
a = Len(Text1.Text) - InStr(Text1.Text, ".")
b = Text1.Text
c = CVar(b) * (10 ^ a)
b1 = CVar(c): a1 = CVar(10 ^ a): a3 = a1
While (a1 <> b1)
If (a1 > b1) Then a1 = a1 - b1 Else b1 = b1 - a1
Wend
a2 = CVar(a3) / a1: b2 = CVar(c) / a1
Text2.Text = CStr(b2) + "/" + CStr(a2)
</b>
Al momento del "Run" inserisci il numero decimale da convertire
nel text1,premendo il command si avra'nel text2 la frazione
decimale equivalente semplificata.
Ho usato il "." come separatore decimale:se invece vuoi adoperare
la "," devi solo cambiare nella prima riga della procedura il punto
con la virgola.
Per il primo programma ho notato che per numeri grandi
si puo' andare in "overflow".Conviene pertanto sostituire
CInt con CDbl o con Cvar.
Ciao.
karl
 

Messaggioda antonio89x » 23/10/2005, 17:48

Grazie mille!

Sei davvero bravo! [;)]

Se non ti annoia potresti spiegarmi il ragionamento logico fatto nei due programmi?
Se non ti va fa niente lo stesso.
Avatar utente
antonio89x
Junior Member
Junior Member
 
Messaggio: 43 di 338
Iscritto il: 25/06/2005, 16:05
Località: Italia


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite