Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Simple Calculadora En Una Aplicación De Línea De Comandos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Simple Calculadora En Una Aplicación De Línea De Comandos 
 
El código siguiente es una aplicación de línea de comandos para hacer sencillos cálculos de dos enteros.
La expresión del cálculo (por ejemplo: 10+15) debe ser escrita sin espacios en el área debajo de la console, o en el Terminal. Luego pulsar la tecla [Enter].

Public Sub Main()

  Print "\n'i' y [Enter] para obtener informaciones\n"

End


Public Sub Application_Read()
    
  Dim s As String
  Dim ss As String[]

    Input s

  If s = "i" Then
      Print "Cómo se usa:\n- 'i' y [Enter] para obtener estas informaciones;"
      Print "- entero*entero  y [Enter] para multiplicar los dos enteros (ejemplo: 4*2 );"
      Print "- entero+entero  y [Enter] para la adición (ejemplo: 4+2 );"
      Print "- entero/entero  y [Enter] para la división (ejemplo: 4/2 );"
      Print "- entero-entero  y [Enter] para la sustracción (ejemplo: 4-2 );"
      Print "- 'quit' y [Enter] para cerrar el programa."
    Else

    If InStr(s, "*") Then
      ss = Split(s, "*")
      Print CLong(Val(ss[0]) * Val(ss[1]))
    Endif
    If InStr(s, "+") Then
      ss = Split(s, "+")
      Print CLong(Val(ss[0]) + Val(ss[1]))
    Endif
    If InStr(s, "/") Then
      ss = Split(s, "/")
      Print CLong(Val(ss[0]) \ Val(ss[1]))
    Endif
    If InStr(s, "-") Then
      ss = Split(s, "-")
      Print CLong(Val(ss[0]) - Val(ss[1]))
    Endif
    
    If s = "quit" Then
      Print "\e[1;31mCierre en \e[1;33m2\e[1;31m segundos !"
      Sleep 2
      Quit
    Endif
    
  Endif

End

 



 
última edición por vuott el Jueves, 28 Abril 2016, 13:36; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Muy graciosa, sí señor.
 
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
...es posible abreviar el código. Pero en este caso es necesario poner dos espacios en la expresión (por ejemplo: 5 + 4):

Public Sub Main()

  Print "\n'i' y [Enter] para obtener informaciones\n"

End


Public Sub Application_Read()
    
  Dim s As String
  Dim ss As String[]
  Dim cont As New Collection

    Line Input s

  Select Case s
    Case "i"
      Print "Cómo se usa:\n- 'i' y [Enter] para obtener estas informaciones;"
      Print "- entero * entero  y [Enter] para multiplicar los dos enteros (ejemplo: 4 * 2);"
      Print "- entero + entero  y [Enter] para la adición (ejemplo: 4 + 2);"
      Print "- entero / entero  y [Enter] para la división (ejemplo: 4 / 2);"
      Print "- entero - entero  y [Enter] para la sustracción (ejemplo: 4 - 2);"
      Print "- 'q' y [Enter] para cerrar el programa."
    Case "q"
      Quit
    Case Else
      ss = Scan(s, "* * *")
      If ss.Count <> 3 Then
        Print ("Error al escribir la expresión de calculo !")
        Return
      Endif
      cont["A"] = ss[0]
      cont["B"] = ss[2]
      Print ss[0], ss[1], ss[2], "=", Eval("A" & ss[1] & "B", cont)
  End Select
End

 



 
última edición por vuott el Viernes, 29 Abril 2016, 01:56; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Vuott:

No sé, no sé..
Y si alguien intenta producir un error intencionadamente. ¿ Cómo responderá la aplicación ?.  

Hemos de suponer que el usuario hace todo lo que le decimos para que se comporte correctamente
con la aplicación o debemos controlar que hace el usuario, para que no se sobrepase con ella
y devolverlo al buen camino y que la aplicación no se vaya al traste.

Creo que debemos añadir lo de.."te estoy vigilando!".

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Consul Shell,

el mi código es solo y simplemente una curiosidad.    
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Tengo curiosidad porque usaste Read. Lo tengo que probar a la vuelta del paseo.

Supongo que una aplicación que hace algo tan habitual como ejercicio de programación se te ocurrió por algún motivo,
para hacerla de alguna manera distinta a la habitual.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Shell escribió: [Ver mensaje]
Tengo curiosidad porque usaste Read.


El evento Application_Read() te permite interaccionar con un programa de línea de comandos.


Codex ad explicandum:

Private bo As Boolean


Public Sub Main()

  Dim i As Integer

  While bo = False
    Inc i
    Print i
' Es necesario poner un 'Wait':
    Wait 0.3
  Wend

End


Public Sub Application_Read()
  
  Dim s As String

' Intercepta lo que fue enviado por el espacio debajo de la console:
    Input s
    If s = "verum" Then bo = True
  
End

 



 
última edición por vuott el Sabado, 30 Abril 2016, 14:37; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Podías haber usado el componente gb.args y para las expresiones gb.eval

Claro que hay momentos que el programador prefiere crearse su función o procedimiento y no cargar todo un componente ni importar una librería.
Por el espacio que puede ocupar o por que quizás no merezca la pena para una "única" función.

Read, yo lo había "encasillado" más en el uso con procesos. Cosa que no solemos ver mucho.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Simple Calculadora En Una Aplicación De Línea De Comandos 
 
Con el evento Application_Read() puedes comunicar con el tu programa siempre y en runtime.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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