Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Interactuar Con Usuario En Consola
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Interactuar Con Usuario En Consola 
 
Hola
soy nuevo en esto de gambas y en programación en Basic por lo que desconozco todavía mucho de este tema. Estoy interesado en utiilizar gambas para realizar problemas con aplicaciones matemáticas y me gustaría que al ejecutar el programa en consola el usuario pudiera interactuar.
Por ejemplo, hacer una aplicación que dada una lista de n numeros (quiero que el usuario defina cuantos n numeros son y posteriormente con un bucle FOR que el usuario vaya introduciendo dichos números en un vector/matriz) y que finalmente los sume todos por ejemplo. Me gustaría conocer el comando por el cual se pide al usuario que introduzca un número y que el programa lo incluya dentro de la base de datos. Quizas es muy sencillo, pero estoy atascado y de momento no se como hacerlo. Gracias de antemano
 



 
Pappusth - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
Sin entrar a responder (yo no uso la consola para nada), y sólo por curiosidad: si lo que quieres es interactuar con el usuario...¿qué tiene de malo un viejo y agradable formulario con sus casillitas, botoncitos, etiquetitas y demás?
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
Hola, para que el usuario pueda ingresar un valor tienes que poner algo asi, puede ser un integer,  string, un boolean, etc



Llendo al ejemplo que planteas una forma de hacerlo seria

PUBLIC SUB Main()
  DIM iVeces AS Integer
  DIM iTotal AS Integer
  DIM iNumero AS Integer
  DIM a AS Integer
  
  PRINT "Cuantos numeros deseas ingresar?: ";
  INPUT iVeces

  
  FOR a = 1 TO iVeces
    PRINT a & ": ";
    INPUT iNumero
    iTotal += iNumero
  NEXT
  
  PRINT "La suma de los numeros es: " & iTotal
  
END
 


O si quieres algo mas avanzado con validacion:


PUBLIC SUB Main()
  DIM iIngresado AS Integer
  DIM iColNumeros AS NEW Integer[]
  DIM a AS Integer
  
  PRINT "Cuantos numeros deseas ingresar?: ";
  iIngresado = ValidarNum(TRUE)
  
  FOR a = 1 TO iIngresado
    PRINT a & ": ";
    iColNumeros.Add(ValidarNum(FALSE))
  NEXT
  
  SumarNums(iColNumeros)
  
END

PRIVATE FUNCTION ValidarNum(bValidarCero AS Boolean) AS Integer
  DIM iUsuario AS Integer
  WHILE TRUE
    TRY INPUT iUsuario
    IF ERROR THEN
      PRINT "No has ingresado un numero valido, intentalo de nuevo: ";
    ELSE IF bValidarCero AND iUsuario <= 0 THEN
      PRINT "Ingresa un numero mayor a 0: ";
    ELSE
      RETURN iUsuario
    ENDIF
  WEND
END

PRIVATE FUNCTION SumarNums(iColeccion AS Integer[])
  
  DIM a AS Integer
  DIM iTotal AS Integer
  FOR EACH a IN iColeccion
    iTotal += a
  NEXT
  
  PRINT "La suma es " & iTotal
  
END

 


Espero te sirva
 



 
última edición por Enchufadoo el Domingo, 15 Abril 2012, 00:33; editado 1 vez 
Enchufadoo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
Perfecto esto era lo que necesitaba.
Muy bueno lo de la validación enchufadoo. Me estaba liando con la orden input y por eso no conseguía hacer el programa.
Gracias Enchufadoo me viene perfecto
 



 
Pappusth - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
De nada, me olvide de decirte que tambien puedes realizar la validacion con un String, en caso que quieras que el usuario pueda salir del programa escribriendo "salir" o algo asi, en tal caso puedes convertir el String a un Integer, Float, etc utilizando las funciones CInt(), CFloat().

DIM sIngreso as String
DIM iConv
INPUT sIngreso
IF sIngreso = "salir" THEN
    RETURN
ELSE
    TRY iConv = CInt(sIngreso)
ENDIF
...
 


Se complica mas, pero es util si tienes que ingresar 20 numero e hiciste algo mal jeje. Saludos.
 



 
Enchufadoo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
Shordi:

Quizás para ejemplos sencillos no se necesita un formulario.Hago mas de un ejemplo en consola y cuando tengo lo principal
lo paso a formulario. Si es que no tuviera una idea antes de como distribuir el formulario.

Para la interacción es mas aconsejable un formulario, pero con un print y un input, es suficiente para empezar.

Muchos de los ejemplos que escribo lo hago con el formulario , pero luego no lo uso.

Creo que la diferencia se nota de la salida de aplicación hecha en consola:

-------------------------------
Base imponible de habitación individual en baja: 19,44€
Base imponible de habitación individual en alta: 21,3€
Base imponible de habitación doble en baja: 34,26€
Base imponible de habitación doble en alta: 37,96€
El total de habitaciones alquiladas en la semana fue de: 6
El total del porcentaje de habitaciones dobles ocupadas por trabajadores sobre el total es de:   %
El total del porcentaje de habitaciones individuales ocupadas por trabajadores sobre el total es de:   %
El total del porcentaje de habitaciones dobles ocupadas por particulares sobre el total es de:   %
El total del porcentaje de habitaciones individuales ocupadas por particulares sobre el total es de: 100%
---------------------------------

A un formulario:

 estadisticas_para_ine

En fin, que ya ira creciendo la idea del formulario.

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: Interactuar Con Usuario En Consola 
 
Supongo que gambas en modo consola consumira menos recursos,

¿se puede ejecutar gambas en un servidor que no tenga entorno grafico instalado?
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
jsbsan escribió: [Ver mensaje]
Supongo que gambas en modo consola consumira menos recursos,

¿se puede ejecutar gambas en un servidor que no tenga entorno grafico instalado?


Se pueden ejecutar programas que no requieran entorno gráfico instalando sólo las dependencias del runtime (más las que necesitemos, como las bases de datos, o xml, etc)  pero no se puede ejecutar el entorno de desarrollo -el IDE-, lógicamente.

Pero para crear aplicaciones de consola en una máquina sin entorno gráfico (o en cualquiera) basta con un editor de texto como "nano" y compilar en consola con gbc2 ó gbc3.

Respecto al uso de recursos parece evidente que al no usar el motor gráfico, pues esos recursos que ahorra la máquina. Esa es precisamente la razón por la que la mayoría de servidores no instalan un entorno gráfico.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Interactuar Con Usuario En Consola 
 
Es que es hasta mas rápido.De la otra manera tienes que estar diseñando el formulario.Retocándolo.
Y seguro que pierdes mas tiempo en el diseño que en el código.

A gusto del consumidor.Cuando realmente lo que te importa es el código sobre todo cuando quieres ver como funciona.
Y luego se junta como funciona el componente el formulario.Si por cada ejemplo que se ocurra te pones a diseñar
un formulario, si no es imprescindible, no necesitas el formulario.

Con formulario, te vas acostumbrado hacer mas cosas, el código, el diseño, te haces a una manera de diseñarlos.
Vas mejorando en el diseño de estos, conociendo componentes nuevos, sus propiedades.Pero para código pudiese
darte igual.

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: Interactuar Con Usuario En Consola - Ncurses 
 
Por cierto, actualmente hay un desarrollador que junto a Benoit están dando los últimos retoques a una nueva librería para Gambas3 que es nada menos que Ncurses.

Se podrán construir ventanas de terminal con todo lujo de paneles, subpaneles y toda la parafernalia colorística que provee originalmente esa librería, a partir de código gambas. Por ejemplo, se podrán imitar aquellos programas de consola hechos en Clipper y cosas similares. Un mundo de posibilidades sobre todo enfocado a servidores donde no hay un sistema gráfico. Espero con impaciencia que pronto llegue ese momento, mientras os iré informando de lo que sepa.

osctool3-ncurses-04


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Comprobar O Autentificar Usuario techm3 Bases de Datos 5 Miercoles, 29 Junio 2011, 18:40 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Controles De Usuario ljma Controles/Librerías/Componentes 0 Miercoles, 07 Marzo 2012, 14:04 Ver último mensaje
ljma
No hay nuevos mensajes Crear Usuario Y Contraseña JhoanM Bases de Datos 1 Martes, 05 Noviembre 2013, 08:43 Ver último mensaje
shordi
No hay nuevos mensajes El Reto Del Usuario Ceporro shordi Retos de programación 21 Lunes, 02 Febrero 2015, 14:14 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

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