AUTODIVISOR...
Publicado: 28 Feb 2010, 01:58
Hola a todos hoy les traigo un "comienzo" de un pequeño program para autodividir una cantidad. Pero me he quedado estancado y necesito ayuda!
Aqui les dejare el code:
Mi problema esta en que no se como decirle si $datos2 contiene un "." ( es decimal la cifra) pon que el $r100 = 1 y si no ponme que $b100 = 0. Pero no solo una vez sino que si por ejemplo tengo el numero 15 haga...
15 / 2 = 7.5 ----> Aqui pondre un 1 porque hay un "."
Despues coja solo el 7 !! y haga
7 / 2 = 3,5 ----> Aqui pondre un 1 porque hay un "."
Despues coja solo el 3 !! y haga
3 / 2 = 1.5 ----> Aqui pondre un 1 porque hay un "."
Ahora lo que quedaria serie 1, que en el code ya especifico que ponerle...
En realidad como ya han visto es un conversor de dec - bin pero lo quiero hacer de este modo, y me parece que no hay "formula" para esto. Porque yo no hablo del binario del autoit ( de la funcion Binary...que te da e.j :0x576875) sino del numero con base 2 ( o 1 o 0)
Nose si me explico pero la cosa estaria en que me automizara eso de dividir ( parte ya tengo hecha) y que lo hiciera seguido osea que mirara y digera 15 "es 2, 1 o 3" [NO] entonces -----> / 2 = el resultado contiene ". " , entonces -----> dile $r100 = 1.
I asi despues con el 7 y ... infinidad de veces ( como un While). I claro que lo ahga con numeros grandes tipo 867.
I despues esta decirle que el 1 que le ha salido de la division de 15 /2 le llame $r100, el 1 que le ha salido de la division de 7 / 2 le diga $r99...y asi! para que despues pudiera poner [MsgBox(1, "BIEN", $0 & $1 & $... & $99 & $100)] como resultado.
Nose si me explico pero sino diganmelo y intento resumirlo todo.
GRACIAS A TODOS!! MUY BUEN TRABAJO
Aqui les dejare el code:
Código: Seleccionar todo
$Input2 = GUICtrlCreateInput("", 208, 32, 121, 21)
$Button2 = GUICtrlCreateButton("CALCULA", 232, 64, 75, 25, $WS_GROUP)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
_dec()
GUICtrlDelete($Input2)
Sleep(100)
$Input2 = GUICtrlCreateInput("", 208, 32, 121, 21)
EndSwitch
WEnd
Func _dec()
$datos2 = GUICtrlRead($Input2)
Select
Case
If $datos2 = '2' Then
$r0 = '0'
$r1 = '1'
ElseIf $datos2 = '3' Then
$r0 = '1'
$r1 = '1'
ElseIf $datos2 = '1' Then
$r0 = '1'
$r1 = '0'
Else
$datos2 = $datos2 / 2
StringSplit($datos2, ".")
If @error Then
$r[aqui el nº correspondiente] = '1'
Else
$r[aqui el nº correspondiente] = '0'
EndIf
EndIf
; Pero todo esto lo ha de repetir hasta llegar a que $datos 2 sea o 1 o 2 o 3!! y podra finalizar
EndSelect
EndFunc
15 / 2 = 7.5 ----> Aqui pondre un 1 porque hay un "."
Despues coja solo el 7 !! y haga
7 / 2 = 3,5 ----> Aqui pondre un 1 porque hay un "."
Despues coja solo el 3 !! y haga
3 / 2 = 1.5 ----> Aqui pondre un 1 porque hay un "."
Ahora lo que quedaria serie 1, que en el code ya especifico que ponerle...
En realidad como ya han visto es un conversor de dec - bin pero lo quiero hacer de este modo, y me parece que no hay "formula" para esto. Porque yo no hablo del binario del autoit ( de la funcion Binary...que te da e.j :0x576875) sino del numero con base 2 ( o 1 o 0)
Nose si me explico pero la cosa estaria en que me automizara eso de dividir ( parte ya tengo hecha) y que lo hiciera seguido osea que mirara y digera 15 "es 2, 1 o 3" [NO] entonces -----> / 2 = el resultado contiene ". " , entonces -----> dile $r100 = 1.
I asi despues con el 7 y ... infinidad de veces ( como un While). I claro que lo ahga con numeros grandes tipo 867.
I despues esta decirle que el 1 que le ha salido de la division de 15 /2 le llame $r100, el 1 que le ha salido de la division de 7 / 2 le diga $r99...y asi! para que despues pudiera poner [MsgBox(1, "BIEN", $0 & $1 & $... & $99 & $100)] como resultado.
Nose si me explico pero sino diganmelo y intento resumirlo todo.
GRACIAS A TODOS!! MUY BUEN TRABAJO