Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +


Ir a la página 1, 2  Siguiente

Objetivo: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
hola estoy haciendo una calculadora pero me sale erro al apretar 2 veces el + o - o * o /
esto pasa cuando el campo texbox queda vacío.

ejemplo cuando hago una suma y pongo en el texbox 12 y aprieto la suma en campo me queda en blanco y si le pongo ejemplo 12 y aprieto el igual. me dará 24 como debe de ser,

pero cuan esta esperando otro numero y vuelvo a apretar el botón mas para sumar me arroja el error y no se como parcharlo para que no me lo tire además cuando divido 9 / 0 me tira un error también.

calculadora

aquí dejo el código:

' gambas class file

PUBLIC num1 AS Integer
PUBLIC num2 AS Integer
PUBLIC op AS String



PUBLIC SUB Form_Open()



END

PUBLIC SUB Btn01_Click()

Txtcalc.Text = Txtcalc.Text & "1"

END

PUBLIC SUB BtnBorrar_Click()

Txtcalc.Text = "0"
LabEqu.Text = NULL
LabEqu.text = "¿?"

END

PUBLIC SUB Btn02_Click()

Txtcalc.Text = Txtcalc.Text & "2"

END

PUBLIC SUB Btn03_Click()

Txtcalc.Text = Txtcalc.Text & "3"

END

PUBLIC SUB Btn04_Click()

Txtcalc.Text = Txtcalc.Text & "4"

END

PUBLIC SUB Btn05_Click()

Txtcalc.Text = Txtcalc.Text & "5"

END

PUBLIC SUB Btn06_Click()

Txtcalc.Text = Txtcalc.Text & "6"

END

PUBLIC SUB Btn07_Click()

Txtcalc.Text = Txtcalc.Text & "7"

END

PUBLIC SUB Btn08_Click()

Txtcalc.Text = Txtcalc.Text & "8"

END

PUBLIC SUB Btn09_Click()

Txtcalc.Text = Txtcalc.Text & "9"

END

PUBLIC SUB Btn000_Click()

Txtcalc.Text = Txtcalc.Text & "."

END

PUBLIC SUB Btn00_Click()

Txtcalc.Text = Txtcalc.Text & "0"

END


PUBLIC SUB BtnMas_Click()


num1 = Txtcalc.Text
LabEqu.Text = "+"
Txtcalc.Text = " "
op = "+"

END

PUBLIC SUB BtnMultiplicar_Click()

num1 = Txtcalc.Text
LabEqu.Text = "x"
Txtcalc.Text = " "
op = "x"

END

PUBLIC SUB BtnMenos_Click()

num1 = Txtcalc.Text
LabEqu.Text = "-"
Txtcalc.Text = " "
op = "-"


END

PUBLIC SUB BtnDividir_Click()

num1 = Txtcalc.Text
LabEqu.Text = "/"
Txtcalc.Text = " "
op = "/"


END

PUBLIC SUB Btn0igual_Click()
IF Txtcalc.text = "" THEN
Txtcalc.text = "0"
END IF
num2 = Txtcalc.Text
IF op = "+" THEN
Txtcalc.Text = num1 + num2

ENDIF
IF op = "-" THEN
Txtcalc.Text = num1 - num2

ENDIF
IF op = "x" THEN
Txtcalc.Text = num1 * num2

ENDIF

IF op = "/" THEN
Txtcalc.Text = num1 / num2
ENDIF


END

espero me ayuden

atte: sergio - hostinglobal.net

Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Sergio:

Veo varios errores es tu codigo, te explico:

1) Definicion de variables...


En principio esta bien, pero ¿que pasa con los numeros decimales...?, integer solo acepta numero enteros
Lo suyo es que lo definas como float (te aconsejo que no uses single, pruebalo y veras la diferencia..). Echale un vistazo a : TIPOS DE DATOS



2) Al añadir los numeros...
Por ejemplo
PUBLIC SUB Btn01_Click()
Txtcalc.Text = Txtcalc.Text & "1"
END


Realmente lo que contienes en el Textcalc.text en una cadena de caracteres y le añades el texto "1" y no un numero

Por lo tanto cuando haces:
Citar:
num1 = Txtcalc.Text


Intentas que un variable numerica contenga un texto, y te dara error... tienes que convertir el texto en numero. ¿como se hace eso?, con la funcion Val(texto). ver Funciones de Conversión


num1=val(Txtcalc.Text)



Tampoco puedes hacer esto:

Txtcalc.Text = num1 + num2


Ya que estas sumando dos numero y lo estas pasando a una variable de texto. Para esto hay otra funcion Str$(numero). Que convierte el numero en un texto (o cadena, como la llama asi la ayuda del gambas). ver Funciones de Conversión


Txtcalc.Text = str$(num1 + num2 )




3) Division entre Cero
Citar:
además cuando divido 9 / 0 me tira un error también.

Eso eso normal ya que No se puede dividir un numero entre cero.

Por lo tanto lo que tienes es que insertar un codigo que averigue si el num2 es cero, es caso de hacerlo que salga un mensaje diciendo que no se puede dividir por cero, en caso de que sea distinto a cero (num2) , pues entonces si puedes hacer la operación de dividir.

Yo lo haria asi:



IF op = "/" THEN
if num2=0 then
message.error=("Error: no puedes dividir entre cero")
else
Txtcalc.Text = str$(num1 / num2)
endif
ENDIF


Bueno, echale un vistazo a los enlaces que te he dicho (que te serviran para el futuro...), (te lo dice uno que cometia los mismo errores ), y corrige tu codigo,

Si tienes problemas, pues nada a preguntar....

Saludos.

última edición por jsbsan el Lunes, 30 Agosto 2010, 10:43; editado 1 vez
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Es que creo que estas intentando sumar numeros pero como cadenas de texto.

Yo lo pondria asi:
>>Cambiaria las propiedades de los botones de los numeros asi:
Group -> num
Tag -> Por el numero que representa (al Btn1, Tag = 1, al Btn2,tag = 2 ...)
'Clikear en numeros:
PUBLIC SUB num_Click() 'Al clikear en cualquiera de los botones del grupo "num"

Txtcalc.Text &= LAST.Tag 'Añadimos al texto del TextBox el Tag del que activó el evento

END


Eso como consejo para hacer el codigo mas corto.

El resto, estoy en ello, a ver si consigo hacerlo o ver que es lo que pasa...

Perfil MP  
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
hola muchas gracias a los dos. esta calculadora me a servido de mucha ayuda para aprender ,

ademas le estoy poniendo en un proyecto y no quiero que contenga errores. si me funciona pero no como deberia ser.

seguire sus consejos y . le informo de los resultados

muchas gracias. a los dos

atte: sergio - hostinglobal.net

Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Es que realmente me he quedado con las ganas de intentar hacer una calculadora....porque no sabria como hacerla...

Seguramente haya miles de ejemplos por ahi, pero como reto personal....

Perfil MP  
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
AnSnarkista

hola te cuento que las calculadora le hice los cambio que me aconsejaron y funciona bien, siempre con el mismo error, pero ya encontrare la forma de solucionarlo.

pero el ejemplo que esta allí funciona bien solo intenta esta divertido lo de la calculadora.

si la termino esta semana la pondré para que tengas el código sin errores y puedas hacerte una para tus aplicaciones.

atte: sergio - hostinglobal.net

Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +

última edición por ivanovichenco el Domingo, 14 Noviembre 2010, 05:13; editado 1 vez
Perfil MP  
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Uuuppss!!
Es que me he liado con otro proyectos que tengo entre manos, y demas he empezado las clases...asi que va a tardar bastante en que me ponga con lo de la calcu...

Saluud!

Perfil MP  
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Compañeros del foro, hace días sigo este foro y lo que he visto me ha despertado el deseo de programar nuevamente. Soy programador y desarrollé en principio con Basic, luego me relacione con DBase, cambié a Clipper. Cuando llegó el boom de los lenguajes visuales, estuve intentando con Visual Basic, pero luego llegó Visual Foxpro y me quedé con este. Comencé a trabajar en una empresa que como plataforma utilizaba Linux, desde allí tuve el deseo de encontrar un lenguaje visual que me permitiera programar para esa plataforma. Con Kylix intenté, pero la verdad es que Pascal no se me da. Pero con gambas es diferente, llevo una semana aprendiendo y la calculadora es mi primer programa, he aquí el código para que sea analizado y se le realicen los respectivos ajustes. Gracias y Exitos.

' gambas class file
PRIVATE pnNum1 AS Float
PRIVATE pnNum2 AS Float
PRIVATE pnResultado AS Float
PRIVATE pnOperacion AS Integer

PUBLIC SUB _new()

ME.Center

END

PUBLIC SUB Form_Open()

pnNum1 = 0
pnNum2 = 0
pnResultado = 0
pnOperacion = 0
txtResultado.Text = 0

END

PUBLIC SUB btnBorrar_Click()

txtResultado.Text = "0"
pnNum1 = 0
pnNum2 = 0
pnResultado = 0
pnOperacion = 0

END


PUBLIC SUB btnSuma_Click()

operando("+", 1)

END

PUBLIC SUB btnResta_Click()

operando("-", 2)
END

PUBLIC SUB btnMulti_Click()

operando("X", 3)

END

PUBLIC SUB btndivision_Click()

operando("/", 4)

END

PUBLIC SUB btnigual_Click()

SELECT CASE pnOperacion
CASE 1 'SUMA
pnResultado = pnNum2 + pnNum1
CASE 2 'RESTA
pnResultado = pnNum2 - pnNum1
CASE 3 'MULTIPLICACION
pnResultado = pnNum2 * pnNum1
CASE 4 'DIVISION
pnResultado = pnNum2 / pnNum1
CASE ELSE
RETURN
END SELECT

txtResultado.Text = pnResultado

END

PRIVATE FUNCTION armanum(lnNum AS Integer) AS Single
DIM lnResultado AS Single

veriresultado()
IF Len(Str(pnNum1)) >= 8 THEN
lnResultado = pnNum1
ELSE
lnResultado = pnNum1 * 10 + lnNum
pnNum1 = lnResultado
ENDIF

RETURN lnResultado

END

PRIVATE SUB veriresultado()

IF pnResultado <> 0
ME.btnBorrar_Click()
ENDIF

END

PRIVATE SUB operando(cSigno AS String, lnOperacion AS Integer)

IF pnOperacion <> 0 OR pnNum1 = 0 THEN RETURN
txtResultado.Text = cSigno
pnNum2 = pnNum1
pnNum1 = 0
pnOperacion = lnOperacion

END

PUBLIC SUB num_Click()
DIM lnResultado AS Float

veriresultado()
lnResultado = (pnNum1 * 10) + Val(LAST.tag)
txtResultado.Text = lnResultado
pnNum1 = lnResultado

END

Perfil MP  
Objetivo: Re: Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
el_patuleko
Hola, bien venido al gambas, .

Cuando dices:
Citar:

he aquí el código para que sea analizado y se le realicen los respectivos ajustes


¿que le pasa al código: te da algún problema?

Saludos

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.7553s (PHP: -79% SQL: 179%)
Consultas SQL: 47 - Debug off - GZIP Activado