Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] calculadora simple en visual c#

Estas en el tema de calculadora simple en visual c# en el foro de .NET en Foros del Web. Muy buenas. ANTES DE NADA MUCHAS GRACIAS A TODOS Tengo una duda que quizá sea una tontería pero no he visto en google nada similar. ...
  #1 (permalink)  
Antiguo 18/04/2013, 07:48
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
calculadora simple en visual c#

Muy buenas.
ANTES DE NADA MUCHAS GRACIAS A TODOS

Tengo una duda que quizá sea una tontería pero no he visto en google nada similar.

en C#, quiero hacer una calculadora, creo los buttons y etc y los inicializo en click en la ventana de eventos.

lo que quiero hacer, o me gustaría hacer pero no me está siendo posible es por ejemplo, implementar el método que se abre al inicilizar el método sumar.

para ello quiero meter un vector de longitud variable llamado num, donde irémos guardando todo los números que deseemos sumar, que pueden ser 2 o n, y que me sume cada elemento del vector con el siguientey asñi sucesivamente y, almacenar la suma en una variable, y luego, en el método asociado al boton asociado el button "igual" imprimir esa variable.

Código c#:
Ver original
  1. private int   bplus_Click(object sender, EventArgs e, int [] num)
  2.         {
  3.             pantalla.Text = ""
  4.             this.operacion = 1;
  5.  for  ( int j = 0 ; j < this.num.Length ; j++)
  6.             {
  7.                 sum = sum + num[j];
  8.                
  9.             }
  10. return sum;
  11.            
  12.              }

esto me hace la suma y me retorna la suma, ahora en el igual:

Código c#:
Ver original
  1. private void bigual_Click(object sender, EventArgs e)
  2.         {
  3.             if (operacion == 1)
  4.             {
  5.                 pantalla.Text = sum.ToString();
  6.             }
  7.  
  8.            if (operacion == 2)
  9.             {
  10.                 pantalla.Text = res.ToString();
}...
....etc

¿problemas? pues varios, pero el principal es:

1) que no sé si a un método creado al inicializar el click de un button se le pueden meter parámetros extra de los que ya trae por defecto, y además, como quiero que me retorne algo, usar return implica que se cambie void por el tipo de dato a retornar, me gustaría que me explixarais esto un poco y me dijerais si se puede hacer o no.

Sé que la duda es tonta y que el ejercicio estará echo 1000 veces en google pero quiero hacerlo yo sin mirar nada, o al menos intentarlo.

Muchas Gracias
  #2 (permalink)  
Antiguo 18/04/2013, 07:57
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: calculadora simple en visual c#

Las funciones que te ha agregado el Visual Studio para implementar el "onClick" no se le pueden añadir parámetros porque no te los "rellenará". Tampoco le puedes cambiar el tipo de la función de void a int.

Sobre lo que quieres hacer, mi consejo es que uses listas de enteros. En tu caso se declaría así:

Código:
List<int> numeros;
Cada vez que pulses un número de la calculadora puedes añadir un número a la lista.

Otra opción es usar una única variable que mantenga el "resultado acumulado" de las operaciones anteriores.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 18/04/2013, 08:16
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: calculadora simple en visual c#

ah! que pena, porque estaba acostumbrado a programar en consola y voy a tener que cambiar algunos habitos.

muchas gracias por la info! me informaré a ver cómo realizar el problema.
  #4 (permalink)  
Antiguo 18/04/2013, 08:56
Avatar de PanKrdo  
Fecha de Ingreso: julio-2007
Ubicación: Veracruz
Mensajes: 46
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: calculadora simple en visual c#

Puedes declarar una funcion y llamarla desde el evento Click del boton que desees

Código:
void bplus_Click(object sender, EventArgs e)
{
     pantalla.Text = suma().ToString();
}

private int suma(int[] num)
{
      for  ( int j = 0 ; j < this.num.Length ; j++)
      {
             sum = sum + num[j];      
      }
      return sum;
}
  #5 (permalink)  
Antiguo 18/04/2013, 09:09
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: calculadora simple en visual c#

Pankrdo me gusta mucho tu idea, osea, dices que puedo declarar funciones en el interior de los métodos inicializados en onlclick?
voy a probarlo
  #6 (permalink)  
Antiguo 18/04/2013, 09:18
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: calculadora simple en visual c#

Yo tengo dudas sobre la utilización de esa calculadora. Es decir, si pulsas:

7 8 9 1

Y luego un "+" te pondrá como resultado 25. A donde quiero ir és que no puedes hacer sumas de números de más de una cifra, no? Y tampoco la funcionalidad de una calculadora normal, como las de escritorio donde puedes "concatenar" operaciones:

10 + 10 = 20

En una calculadora convencional podriamos a continuación hacer

- 5 = 15

Esto entiendo que en la tuya no estará permitido. Es así?
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 18/04/2013, 09:31
Avatar de PanKrdo  
Fecha de Ingreso: julio-2007
Ubicación: Veracruz
Mensajes: 46
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: calculadora simple en visual c#

Cita:
Iniciado por jcd Ver Mensaje
Pankrdo me gusta mucho tu idea, osea, dices que puedo declarar funciones en el interior de los métodos inicializados en onlclick?
voy a probarlo
en realidad las funciones se declaran al mismo nivel de los eventos y los metodos.
A lo que me refería es que dentro de un evento (en este caso el onClick) puedes mandar a llamar a cualquier función o método que tengas declarado, asignando el valor obtenido a una variable o en tu caso directamente en la pantalla

Solo las funciones te devuelven un valor
  #8 (permalink)  
Antiguo 18/04/2013, 09:31
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: calculadora simple en visual c#

si , si que esta permitido.
lo que no sé es , por ejemplo:

yo hago esto:

Código c#:
Ver original
  1. [HIGHLIGHT="C++"]private void bplus_Click(object sender, EventArgs e)
  2.         {
  3.             pantalla.Text = ""; // con esto hago que me borre de la pantalla el número anterior para poder imprimir el nuevo
  4.             this.operacion = 1;
  5.         }
  6.  
  7.            
  8.            
  9.          private int sumar(int [] num)
  10.                 {
  11.                    
  12.                     sum = 0;
  13.  
  14.             for  ( int j = 0 ; j < this.num.Length ; j++)
  15.             {
  16.  
  17.                 sum = sum + num[j];
  18.                
  19.                
  20.             }
  21.             return sum;
[/HIGHLIGHT]

y luego :

Código c#:
Ver original
  1. private void bigual_Click(object sender, EventArgs e)
  2.         {
  3.             if (operacion == 1)
  4.             {
  5.                 pantalla.Text = sum.ToString();
  6.             }
  7. }
¿esto funcionaría? es decir, puedo poner un método "concatenado" con el método que se crea inmediatamente al inicializar onclick en la entana de eventos de un botón, de forma tal que cuando pulso ese botón se ejecutan las rutinas no sólo del método onclick sino también el que le sigue??
  #9 (permalink)  
Antiguo 18/04/2013, 09:36
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: calculadora simple en visual c#

Yo a tu código le encuentro un fallo de lógica.

Prueba a hacer esto en tú programa:

1 + 1 + 1 - 1 + 1 =

Que resultado te dá?
__________________
Aviso: No se resuelven dudas por MP!
  #10 (permalink)  
Antiguo 18/04/2013, 09:37
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: calculadora simple en visual c#

ah ok! pankrdo
no te había leído bien
ya entiendo, gracias

Etiquetas: c#, calculadora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:09.