Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Caculadora Funciona Pero Me Sale Error Al Apretar 2 Veces El +
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
 



 
hostinglobal - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Lunes, 30 Agosto 2010, 10:43; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
hostinglobal - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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....
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
hostinglobal - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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!
 



 
AnSnarkista - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 

 



 
el_patuleko - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Icono Que No Sale En La Aplicacion fedefunes General 3 Jueves, 12 May 2016, 01:12 Ver último mensaje
fedefunes
No hay nuevos mensajes ThunderBird. Filtros Que No Funciona A Veces Shell Mundo Linux 3 Jueves, 22 Septiembre 2016, 12:12 Ver último mensaje
shordi
No hay nuevos mensajes Repetir Un Caracter N Veces tincho Aplicaciones/Fragmentos de Código 2 Domingo, 11 Diciembre 2016, 13:06 Ver último mensaje
tincho
No hay nuevos mensajes Arch Y Derivadas - Error Gambas No Funcion... tincho Mundo Linux 4 Martes, 11 Septiembre 2018, 15:50 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron