Menú Principal

Mecagoenvisualbasic...

Iniciado por Neo, Enero 18, 2007, 08:20:12 PM

Tema anterior - Siguiente tema

EstoyBuenaYloSe

Es pecado no entender nada de lo que estais poniendo???xDDDD

Neo

La idea que tengo, como aun no se como asignarle valores a cualquier variable para que me sirva de banco de memoria y después poder operar con estos datos almacenados, es crear 2 cajas de texto que no se vean y asignarles el valor a dichas cajas, a una primero y cuando presione el botón relacionado a algúna operación, pasar a la otra.

El valor asignado a la primera caja (que no será visible) deberá aparecer en ésta y en la caja que si será visible, luego, al presionar el operador, pasar a asignar los números siguientes a la 2da caja no visible y a la que si se ve sustituyendo los valores iniciales

Al presionar el botón de = o de cualquier otra operación, deberá arrojar el resultado solamente en la caja visible.

Se entiende mi idea?

What do I know about knowing stuff?

EstoyBuenaYloSe

Me estais hundiendo en la miseria...voy a ponerme a estudiar...me siento un poco sofia mazagatos :-\

Neo

Cita de: EstoyBuenaYloSe en Enero 24, 2007, 02:10:26 AM
Es pecado no entender nada de lo que estais poniendo???xDDDD

No es pecado, es lo lógico xD
What do I know about knowing stuff?

EstoyBuenaYloSe

Justo a tiempo tu respuesta...estaba con el tinte a punto de hacerme mechas rubias para sentirme integrada en mi nuevo grupo de amigas xD

45rpm

eso podrí­a funcionar, pero también vas a tener que memorizar el operador en algún sitio. Puedes usar otra caja de texto no visible.

Trabajar con variables es menos tosco, pero para hacer pruebas es mejor que tengas los números y operadores memorizados en cajas de texto o labels en principio visibles, así­ mientras vas programando ves lo que va fallando. Cuando todo funcione los ocultas.

Neo

#21
Puede ser eso lo que me falta (lo del operador en otra caja de texto), porque me ha dado error cada vez que intento.

También puede ser que esté planteando mal el código, pero me ha funcionado para cambiarle de colores a la perfección.

Voy a intentar una media hora más, si no puedo, vuelvo mañana con las pilas recargadas y con más ánimos :P.

Haciendo todo esto me viene a la mente una pregunta clave ¿Cómo le digo al programa qué datos enviar a qué caja de textos?






What do I know about knowing stuff?

45rpm

#22
puedes hacer algo mas simple, solo con botones y una caja texto llamada txtResultado donde escribirás los números y también verás el resultado.

al principo del formulario declaras las variables comunes para todos los eventos y procedimientos:

Private num() as double        ' es un vector
Private signo as string
Private Cambio as boolean

Al cargar el formulario inicializamos las variables:

Private Sub Form_load()
     Iniciar
End sub

Private Sub Iniciar()
   signo=""
   Redim num(1)
   txtResultado.text=Cstr(num(0))
   Cambio=False
End Sub

Aquí­ has creado dos variables con valor 0. En num(0) guardarás el primer número de la operación y luego el resultado, en num(1) solamente el segundo número. Se ha iniciado con 0  la caja de texto. La variable Cambio sirve para que cuando pulses el operador, el primer número se mantenga visible en la caja de texto, pero al pulsar la primera cifra del segundo número, el primer número se borre en lugar de agregarle cifras a la derecha.

Ahora los eventos del vector de botones cmdTecla(), donde están los números y la coma:

Private Sub cmdTecla_Click (Index as integer)
    if Cambio = True then
         txtResultado.text=""
         Cambio = False
    end if
    if txtResultado.text=0 then txtResultado.text=""
    txtResultado.text =  txtResultado.text & cmdTecla(Index).Caption
End sub

La lí­nea 6 de este procedimiento quita el cero inicial, o impide acumular ceros a la izquierda. La lí­nea 7 agrega la cifra pulsada por la derecha.
Para la operación de suma :

Private Sub cmdSuma_Click()
    signo="+"
    num(0)=Cdbl(CajaTexto.Text)  ' guardas la cadena como tipo double
    Cambio = True
End sub

Lo mismo que lo anterior para resta, producto y división pero usando "-", "*", o "/" (o cualquier otro sí­mbolo, ya verás que es indiferente si luego respetas el código en el procedimiento de cálculo). Para el boton del igual haces:

Private Sub cmdIgual_Click()
    num(1)=Cdbl(CajaTexto.Text) 
    Calcular       'llamada a la función de cálculo del resultado
End sub


Para el botón de elevado al cuadrado haces:

Private Sub cmdCuadrado_click()
    signo="SQR"
    num(0)=Cdbl(CajaTexto.Text)
    Calcular     ' aquí­ calcularemos sin precisar num(1)
End Sub

Algo similar para raí­ces.
Ahora vamos a por al procedimiento de cálculo:

Private Sub Calcular()
    if signo="" then exit sub
    Select case signo
        case "+"
            num(0)=num(0) + num(1)
        case "*"
            num(0)=num(0) * num(1)
        case "SQR"
            num(0)=num(0) ^ 2
        case .....   
           'otras operaciones
     
   End select 
   txtResultado.text = Cstr(num(0))
   signo=""
   Redim num(1)
   Cambio=False
End Sub

Con cada ejecución del cálculo, se escribe el resultado en la caja de texto y se reinician las variables a 0, y el signo a cadena vací­a. Si no hay signo la primera lí­nea evita la ejecución del cálculo. Si una vez efectuado el cálculo el usuario aprieta un operador, el resultado escrito se guardará en num(0) y se pueden encadenar otros cálculos.

Falta poner un evento para el boton de borrar que llame al procedimiento Iniciar.

No lo he probado, seguró que dará algún error. Pero sobre esa base puedes corregir.

Neo

#23
Señores, adjunto está mi trabajo, no la que le planteé a akelarre, sino la petición previa de la profesora.

Evalúen y destruyan si les da la gana.

Ah, también pueden hacer su aportación, diciéndome cómo limito a números las posibles entradas a las diferentes cajas de texto.
What do I know about knowing stuff?

Neo

Mierda.. me voy dando cuenta de que la que habí­a puesto no era la terminada :P

Ahí­ tienen, a los que les interese.

Saludos.
What do I know about knowing stuff?

Neo

Retomé el proyecto señores. Y ahora tengo esto:

http://download.yousendit.com/362F22C07AFBD1B8

No conozco de eventos ni de cómo asignar variables, y ahí­ está la clave para eliminar los textbox.

Ahora tengo que convertirla en una calculadora cientí­fica.

What do I know about knowing stuff?

MiTH

¿Y sin eventos cómo haces para programar una calculadora cientí­fica?

Carlo

Como no ponga formularios en lugar de capturar pulsaciones de teclas o clicks.
Si no te contesto, no pienses que me caes mal... es que te tengo ignorado.

MiTH

Aún así­. Tendrá que tener algún evento para lanzar el cálculo. ¿O cuándo sabe el programa que ha terminado de meter numeritos?

Carlo

Cuando pulsas intro. Me referí­a a insertar la fórmula en una cadena para después interpretarla... porque si no, no me explico cómo puede hacerlo sin eventos.

O dejando el último dato vací­o... o con palabra clave.
Si no te contesto, no pienses que me caes mal... es que te tengo ignorado.