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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  guardar un numero y mostrarlo de nuevo programa calculadora
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: guardar un numero y mostrarlo de nuevo programa calculadora  (Leído 3,292 veces)
creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
guardar un numero y mostrarlo de nuevo programa calculadora
« en: 24 Agosto 2016, 20:45 pm »

el problema es el siguiente debo hacer uan calculadora cientifica en visual basic
ya tengo casi todas las funciones pero no logro hacer bien las siguientes si alguien me ayude o explique

MS, M-, M+ MR

un ejemplo seria asi
supongamos ingreso  el numero 9. le doy el boton C. se borra el contenido e la pantalla, y al pulsar MR deberia volver a mostrar el 9
Código
  1.  
  2. Public Class Form1
  3.    Dim b As Integer
  4.    Dim c As Integer
  5.    Dim num1 As Double
  6.    Dim num2 As Double
  7.    Dim resul As Integer
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles B1.Click
  17.  
  18.        Tpantalla.Text = Tpantalla.Text & "1"
  19.  
  20.    End Sub
  21.  
  22.    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Bsuma.Click
  23.  
  24.  
  25.        b = 1
  26.        num1 = Tpantalla.Text
  27.        Tpantalla.Text = ""
  28.  
  29.    End Sub
  30.  
  31.    Private Sub B0_Click(sender As Object, e As EventArgs) Handles B0.Click
  32.  
  33.        Tpantalla.Text = Tpantalla.Text & "0"
  34.    End Sub
  35.  
  36.    Private Sub B2_Click(sender As Object, e As EventArgs) Handles B2.Click
  37.  
  38.        Tpantalla.Text = Tpantalla.Text & "2"
  39.    End Sub
  40.  
  41.    Private Sub B3_Click(sender As Object, e As EventArgs) Handles B3.Click
  42.  
  43.        Tpantalla.Text = Tpantalla.Text & "3"
  44.    End Sub
  45.  
  46.    Private Sub B4_Click(sender As Object, e As EventArgs) Handles B4.Click
  47.        Tpantalla.Text = Tpantalla.Text & "4"
  48.    End Sub
  49.  
  50.    Private Sub B5_Click(sender As Object, e As EventArgs) Handles B5.Click
  51.  
  52.        Tpantalla.Text = Tpantalla.Text & "5"
  53.    End Sub
  54.  
  55.    Private Sub B6_Click(sender As Object, e As EventArgs) Handles B6.Click
  56.  
  57.        Tpantalla.Text = Tpantalla.Text & "6"
  58.    End Sub
  59.  
  60.    Private Sub B7_Click(sender As Object, e As EventArgs) Handles B7.Click
  61.  
  62.        Tpantalla.Text = Tpantalla.Text & "7"
  63.    End Sub
  64.  
  65.    Private Sub B8_Click(sender As Object, e As EventArgs) Handles B8.Click
  66.  
  67.        Tpantalla.Text = Tpantalla.Text & "8"
  68.    End Sub
  69.  
  70.    Private Sub B9_Click(sender As Object, e As EventArgs) Handles B9.Click
  71.  
  72.        Tpantalla.Text = Tpantalla.Text & "9"
  73.    End Sub
  74.  
  75.    Private Sub Bigual_Click(sender As Object, e As EventArgs) Handles Bigual.Click
  76.        num2 = Tpantalla.Text
  77.        If b = 1 Then
  78.            Tpantalla.Text = num1 + num2
  79.  
  80.        End If
  81.        If b = 2 Then
  82.            Tpantalla.Text = num1 - num2
  83.  
  84.        End If
  85.        If b = 3 Then
  86.            Tpantalla.Text = num1 * num2
  87.  
  88.        End If
  89.        If b = 4 Then
  90.            If num2 <> 0 Then
  91.                Tpantalla.Text = num1 / num2
  92.            Else
  93.                Tpantalla.Text = "No divisible"
  94.  
  95.            End If
  96.  
  97.  
  98.  
  99.  
  100.        End If
  101.        If b = 5 Then
  102.            Tpantalla.Text = num1 ^ num2
  103.  
  104.        End If
  105.  
  106.  
  107.    End Sub
  108.  
  109.    Private Sub Bresta_Click(sender As Object, e As EventArgs) Handles Bresta.Click
  110.        b = 2
  111.        Bcoma.Enabled = True
  112.        num1 = Tpantalla.Text
  113.        Tpantalla.Text = ""
  114.    End Sub
  115.  
  116.    Private Sub Bmulti_Click(sender As Object, e As EventArgs) Handles Bmulti.Click
  117.        b = 3
  118.        Bcoma.Enabled = True
  119.        num1 = Tpantalla.Text
  120.        Tpantalla.Text = ""
  121.    End Sub
  122.  
  123.    Private Sub Bdivi_Click(sender As Object, e As EventArgs) Handles Bdivi.Click
  124.        b = 4
  125.        Bcoma.Enabled = True
  126.        num1 = Tpantalla.Text
  127.        Tpantalla.Text = ""
  128.    End Sub
  129.  
  130.    Private Sub Blim_Click(sender As Object, e As EventArgs) Handles Blim.Click
  131.        Tpantalla.Text = ""
  132.        Bcoma.Enabled = True
  133.    End Sub
  134.  
  135.    Private Sub Bcoma_Click(sender As Object, e As EventArgs) Handles Bcoma.Click
  136.  
  137.  
  138.        Tpantalla.Text = Tpantalla.Text & ","
  139.        Bcoma.Enabled = False
  140.  
  141.  
  142.    End Sub
  143.  
  144.    Private Sub Tpantalla_TextChanged(sender As Object, e As EventArgs) Handles Tpantalla.TextChanged
  145.  
  146.    End Sub
  147.  
  148.    Private Sub Buno_Click(sender As Object, e As EventArgs) Handles Buno.Click
  149.  
  150.        Try
  151.  
  152.            Dim lar As Integer
  153.            If Tpantalla.Text <> "" Then
  154.                lar = Tpantalla.Text.Length
  155.                Tpantalla.Text = Mid(Tpantalla.Text, 1, lar - 1)
  156.            End If
  157.        Catch ex As Exception
  158.  
  159.  
  160.  
  161.        End Try
  162.    End Sub
  163.  
  164.    Private Sub Bx_Click(sender As Object, e As EventArgs) Handles Bx.Click
  165.  
  166.        b = 5
  167.        num1 = Tpantalla.Text
  168.        Tpantalla.Text = ""
  169.  
  170.        If b = 5 Then
  171.            Tpantalla.Text = num1 ^ 2
  172.  
  173.        End If
  174.  
  175.  
  176.    End Sub
  177.  
  178.    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  179.        b = 5
  180.        num1 = Tpantalla.Text
  181.        Tpantalla.Text = ""
  182.  
  183.  
  184.    End Sub
  185.  
  186.    Private Sub Braiz_Click(sender As Object, e As EventArgs) Handles Braiz.Click
  187.        b = 7
  188.        num1 = Tpantalla.Text
  189.        Tpantalla.Text = ""
  190.  
  191.        If b = 7 Then
  192.            Tpantalla.Text = Math.Sqrt(num1)
  193.  
  194.        End If
  195.    End Sub
  196.  
  197.    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  198.        b = 8
  199.        num2 = Tpantalla.Text
  200.        Tpantalla.Text = ""
  201.  
  202.        If b = 8 Then
  203.            Tpantalla.Text = 1 / num2
  204.  
  205.        End If
  206.    End Sub
  207.  
  208.    Private Sub Bmm_Click(sender As Object, e As EventArgs) Handles Bmm.Click
  209.        b = 9
  210.        num1 = Tpantalla.Text
  211.        Tpantalla.Text = ""
  212.  
  213.        If b = 9 Then
  214.            Tpantalla.Text = num1 * (-1)
  215.  
  216.        End If
  217.  
  218.    End Sub
  219.  
  220.    Private Sub Bfac_Click(sender As Object, e As EventArgs) Handles Bfac.Click
  221.        Dim a, b, c As Integer
  222.  
  223.        a = (Tpantalla.Text)
  224.        b = 1
  225.        For c = 1 To a
  226.            b = b * c
  227.            Tpantalla.Text = (b)
  228.        Next
  229.    End Sub
  230.  
  231.    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs)
  232.  
  233.    End Sub
  234.  
  235.    Private Sub Bsen_Click(sender As Object, e As EventArgs) Handles Bsen.Click
  236.  
  237.  
  238.        b = 10
  239.        num1 = Tpantalla.Text
  240.        Tpantalla.Text = ""
  241.  
  242.        If b = 10 Then
  243.            Tpantalla.Text = Math.Sin(Val(num1) * Math.PI / 180)
  244.        End If
  245.    End Sub
  246.  
  247.    Private Sub Bcos_Click(sender As Object, e As EventArgs) Handles Bcos.Click
  248.        b = 11
  249.        num1 = Tpantalla.Text
  250.        Tpantalla.Text = ""
  251.  
  252.        If b = 11 Then
  253.            Tpantalla.Text = Math.Cos(Val(num1) * Math.PI / 180)
  254.        End If
  255.    End Sub
  256.  
  257.    Private Sub Btan_Click(sender As Object, e As EventArgs) Handles Btan.Click
  258.        b = 12
  259.        num1 = Tpantalla.Text
  260.        Tpantalla.Text = ""
  261.  
  262.        If b = 12 Then
  263.            Tpantalla.Text = Math.Tan(Val(num1) * Math.PI / 180)
  264.        End If
  265.    End Sub
  266.  
  267.    Private Sub Bmem_Click(sender As Object, e As EventArgs) Handles Bmem.Click
  268.  
  269.    End Sub
  270. End Class
  271.  
  272.  
  273.  


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: guardar un numero y mostrarlo de nuevo programa calculadora
« Respuesta #1 en: 25 Agosto 2016, 18:49 pm »

Esto no es Visual Basic, es Visual Basic.NET, pro favor, publica correctamente las preguntas en el futuro.

no logro hacer bien las siguientes si alguien me ayude o explique

MS, M-, M+ MR

Se hace muy tedioso de leer el código que has publicado, y los nombres de muchos de los controles que has definido (los botones) no describen su función ni tampoco has dejado pistas, ni tampoco te has molestado en explicarnos al menos en lo que debemos fijarnos de tu código, así que disculpa pero en vez de ponerme a revisar y buscar un fallo en tu código directamente prefiero mostrarte un ejemplo (el cual te debería resultar muy sencillo adaptarlo) de como puedes implementar las funciones de memoria:

Código
  1. ' El formato del separador de decimales.
  2. Private ReadOnly numberFormat As NumberFormatInfo = CultureInfo.GetCultureInfo("en-US").NumberFormat
  3. Private memValue As Decimal
  4.  
  5. ' M+
  6. Private Sub Button_MemAdd_Click(ByVal sender As Object, ByVal e As EventArgs) _
  7. Handles Button_MemAdd.Click
  8.  
  9.    Me.memValue += Decimal.Parse(Me.TextBox_CalcDisplay.Text, Me.numberFormat)
  10.  
  11. End Sub
  12.  
  13. ' M-
  14. Private Sub Button_MemSubstract_Click(ByVal sender As Object, ByVal e As EventArgs) _
  15. Handles Button_MemSubstract.Click
  16.  
  17.    Me.memValue -= Decimal.Parse(Me.TextBox_CalcDisplay.Text, Me.numberFormat)
  18.  
  19. End Sub
  20.  
  21. ' MR
  22. Private Sub Button_MemRecall_Click(ByVal sender As Object, ByVal e As EventArgs) _
  23. Handles Button_MemRecall.Click
  24.  
  25.    Me.TextBox_Input.Text = Convert.ToString(If(Me.memValue = 0.0D, 0D, Me.memValue), Me.numberFormat)
  26.  
  27. End Sub
  28.  
  29. ' MC
  30. Private Sub Button_MemClear_Click(ByVal sender As Object, ByVal e As EventArgs) _
  31. Handles Button_MemClear.Click
  32.  
  33.    Me.memValue = 0D
  34.  
  35. End Sub



Aparte de eso, veo muchas partes del código cuyo algoritmo lo puedes simplificar a un par de lineas, es comprensible que todavía no te des cuenta puesto que estarás iniciándote en el lenguaje empezando por programar una calculadora, pero conviene que sepas desde ya sobre malas costumbres de programación que solo te complicarán la vida y hacer un esfuerzo por evitar escribir cosas como esta:

Código
  1. Private Sub B0_Click(sender As Object, e As EventArgs) Handles B0.Click
  2.  
  3.    Tpantalla.Text = Tpantalla.Text & "0"
  4. End Sub
  5.  
  6. Private Sub B2_Click(sender As Object, e As EventArgs) Handles B2.Click
  7.  
  8.    Tpantalla.Text = Tpantalla.Text & "2"
  9. End Sub
  10.  
  11. Private Sub B3_Click(sender As Object, e As EventArgs) Handles B3.Click
  12.  
  13.    Tpantalla.Text = Tpantalla.Text & "3"
  14. End Sub
  15.  
  16. Private Sub B4_Click(sender As Object, e As EventArgs) Handles B4.Click
  17.    Tpantalla.Text = Tpantalla.Text & "4"
  18. End Sub
  19.  
  20. Private Sub B5_Click(sender As Object, e As EventArgs) Handles B5.Click
  21.  
  22.    Tpantalla.Text = Tpantalla.Text & "5"
  23. End Sub
  24.  
  25. Private Sub B6_Click(sender As Object, e As EventArgs) Handles B6.Click
  26.  
  27.    Tpantalla.Text = Tpantalla.Text & "6"
  28. End Sub
  29.  
  30. Private Sub B7_Click(sender As Object, e As EventArgs) Handles B7.Click
  31.  
  32.    Tpantalla.Text = Tpantalla.Text & "7"
  33. End Sub
  34.  
  35. Private Sub B8_Click(sender As Object, e As EventArgs) Handles B8.Click
  36.  
  37.    Tpantalla.Text = Tpantalla.Text & "8"
  38. End Sub
  39.  
  40. Private Sub B9_Click(sender As Object, e As EventArgs) Handles B9.Click
  41.  
  42.    Tpantalla.Text = Tpantalla.Text & "9"
  43. End Sub

Piensa en lo siguiente: tienes 10 botones, esos 10 botones llevan por nombre un número (0...9), y los 10 cumplen una misma funcionalidad que es añadir su "nombre" o número correspondiente al textbox, entonces, ¿por que no unir todos los botones en el mismo controlador de eventos con la sentencia Handles?:

Código
  1. Private Sub MultiHandler_NumericButtons_Click(ByVal sender As Object, ByVal e As EventArgs) _
  2. Handles Button_Num1.Click, Button_Num2.Click, Button_Num3.Click,
  3.        Button_Num4.Click, Button_Num5.Click, Button_Num6.Click,
  4.        Button_Num7.Click, Button_Num8.Click, Button_Num9.Click,
  5.        Button_Num0.Click
  6.  
  7.    Me.TextBox_CalcDisplay.AppendText(DirectCast(sender, Button).Text)
  8.  
  9. End Sub

PD: En caso de que la propiedad TextBox.Text no sea un número (es de suponer que si, al tratarse de una calculadora), siempre puedes utilizar la propiedad TextBox.Tag

Saludos!


« Última modificación: 25 Agosto 2016, 19:35 pm por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Perl](Calculadora) Mi primer programa
Scripting
Niko^ 1 4,455 Último mensaje 13 Diciembre 2010, 08:18 am
por leogtz
[Duda] Guardar un string y mostrarlo en Console Application
Programación C/C++
Hurubnar 3 3,283 Último mensaje 3 Diciembre 2011, 22:31 pm
por Hurubnar
Guardar numero en array
Programación C/C++
lol_fallen 6 20,386 Último mensaje 1 Marzo 2012, 12:05 pm
por satu
Ingresar un numero y mostrarlo en string
Java
itzg3 1 1,379 Último mensaje 28 Abril 2015, 23:47 pm
por engel lex
MOVIDO: guardar un numero y mostrarlo de nuevo programa calculadora
Programación Visual Basic
Eleкtro 0 2,536 Último mensaje 25 Agosto 2016, 18:14 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines