elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  NVMND
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: NVMND  (Leído 2,866 veces)
yan.exe

Desconectado Desconectado

Mensajes: 2


Ver Perfil
NVMND
« en: 11 Junio 2017, 06:22 am »

NVMND


« Última modificación: 12 Junio 2017, 04:13 am por yan.exe » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: Visual CLR/C++ Acceder a objetos de un form desde otro form
« Respuesta #1 en: 11 Junio 2017, 15:39 pm »

Para resolver esos asuntos, se adjunta información que se actualiza cuando cambia.

Así sería útil por ejemplo disponer de un a enumeración sociada con cada operación.

Código:
Enumeracion Operaciones
  Ninguno = -2 // ningún operador ha sido seleccionado aún.
  Borrar = -1  //para borrar todo, incluído los operandos.
  Resultado = 0
  Suma =1
  Resta = 2
  Multiplica = 3
  Divide = 4
  ...
Fin enumeracion
// Ovbiamente los nombres y valores asigna los que sean de tu preferencia,
 o según el código permita simplificarlo...

Se debe tener una variable donde guardar la operación ...
Código:
 Variable Op de tipo Operaciones

Ahora cuando se pulse el botón correspondiente (o la opción, según sea el caso), simplemente actualizas el dato de la variable Op con el operador que le corresponde:

Si tienes un botón y cada uno con su código....
 
Código:
 BotonSuma_Pulsado(parametros...)
     Op = Suma
 Fin BotonPulsado
 
 BotonResultado_Pulsado(parametros...)
     Op = Resultado
 Fin BotonPulsado

Si tienes opciones (o botones), pero todos derivan el evento al mismo manejador...
Código:
 OpcionSuma_Seleccionado, OpcionResta_Seleccionado, OpcionResultado_Seleccionado, .... (parametros...)
    Seleccionar Opcion.name <---- diferenciamos en este caso el operador, según el nombre del control seleccionado.
        caso "OpcionSuma"
            Op = Suma
       caso "OpcionResta"
            Op = Resta    
       Caso "OpcionResultado"
           Op = resultado          
       Caso ....
           ...
    Fin Seleccion
Fin OpcionSeleccionado  

Finalmente haces los cálculos:
Código:
 Funcion Calcular(Var1, Var2, Op) 
     Seleccionar Op
            caso Suma
                 Var1 = Var1 + Var2
            Caso Resta
                 Var1 = Var1 - Var2
            ....
               ....
             Caso Resultado
                  Mostrar Var1
      Fin Seleccion
      Devolver Var1
Fin funcion

Naturalmente este modo exige tener disponibles los operandos antes de calcular. Y en cambio no impone nada respecto del orden en que se obtienen...

...Cuando sería más acorde que se siga el orden natural en que se hacen las operaciones:
 1º introducir un operando, luego el operador, luego el 2º operando, Tras esto se mandaría a calcular...
 Y entonces luego como el resultado de operar con ambos operandos se reúnen en el primero, tras aplicar un operador, vuelves a tener disponible poder introducir otro operador y otro operando.
 
Solo si se pulsa el "=", entonces muestras el resultado que se almacena en Var1...
Y si se pulsa el de 'Borrar', dejas desierto ambos operandos y el operador.

Puede ser distinto y más o menos eficiente, pero como no has dado apenas detalles, no es conveniente extenderse ni más ni de otro modo.

-------------------------------------------------------------------
p.d.: Me explico mejor, que si no puede quedar confuso:
- Si se introducen en orden: operando1 + operador + operando2 , se hace necesario que el cáclulo se ejecute tras pulsar un nuevo operador, sea cual sea, pero antes de almacenar éste. Y entonces es preciso cambiarel código (pongo por ejemplo el de un botón) así:

Código:
 BotonSuma_Pulsado(parametros...)
     Si Op es mayor o igual a 0
        Var1 =  Calcular(Var1, Var2, Op)
    Fin si

    Op = Suma
 Fin BotonPulsado
Así puede seguirse añadiendo más operandos y más operadores.

- Pero si no se introducen en orden, será preciso que cuando se pulsa un operador el operador se actualiza, y solo cuando el operador sea "=", es cuando se procede a realizar el cálculo, incluso aunque no se hayan introducido uno o los dos operandos, pues se enteinde en ese caso que vale/n 0. y el código sería más bien:::

  
Código:
 OpcionSuma_Seleccionado, OpcionResta_Seleccionado, OpcionResultado_Seleccionado, .... (parametros...)
    Seleccionar Opcion.name <---- diferenciamos en este caso el operador, según el nombre del control seleccionado.
        caso "OpcionSuma"
            Op = Suma
       caso "OpcionResta"
            Op = Resta                      
       Caso ....
           Op = ...
       Caso "OpcionResultado"
           Var1 = Calcular(Var1, Var2, Op) <----- Aquí el cambio sustancial...
    Fin Seleccion
Fin OpcionSeleccionado  


« Última modificación: 11 Junio 2017, 18:01 pm por NEBIRE » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: NVMND
« Respuesta #2 en: 12 Junio 2017, 07:48 am »

La pregunta, ahora borrada era como se podía conocer desde un form el estado de unos radio buttons ubicados en otro.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: NVMND
« Respuesta #3 en: 12 Junio 2017, 17:12 pm »

No exactamente Mafus... ese era solo el título del hilo...
 
...pero luego en las explicaciones simplemente trataba de hacer una especie de calculadora y por tanto debía resolver primero la lógica de la misma...

Probablemente después de haber resuelto la lógica del problema, hubiera sido preciso ver su código, para resolver la 2ª cuestión (que sería lo que señalaba el título).

En fin es común poner un título que dice una cosa y luego lo que se reclama es otra.

Supongo que el borrado podría obedecer o cubrir huellas, si resulta que es un trabajo de la escuela y temen que el profe busque y encuentre...

Sin embargo es de maleducados, no solo no responder, si no peor borrar el propio mensaje y el título.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: NVMND
« Respuesta #4 en: 12 Junio 2017, 19:13 pm »

Gracias por aclarar.
Por eso mismo había intentado recuperar el mensaje inicial, para que no quedara esto en un sin sentido.
En verdad esta gente que cuándo han solucionado su historia, o no, borran toda huella dejando el hilo cojo me dan coraje.
En línea

Becerra

Desconectado Desconectado

Mensajes: 97


Siempre aprendiendo


Ver Perfil
Re: NVMND
« Respuesta #5 en: 13 Junio 2017, 11:22 am »

Hola

En verdad esta gente que cuándo han solucionado su historia, o no, borran toda huella dejando el hilo cojo me dan coraje.

La verdad que es una muy mala práctica y da coraje, sí. Conozco otro foro, hecho con vBulletin, en el que una vez un mensaje tiene respuesta ya no se puede modificar ni borrar. No sé si sería posible implementarlo con SMF.

Un saludo
En línea

Buenas preguntas obtienen mejores respuestas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines