Interactuar Con Usuario En Consola


Ir a la página 1, 2  Siguiente

Objetivo: 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

Perfil MP  
Objetivo: 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?

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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.

Objetivo: 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?

Objetivo: 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

Perfil MP  
Objetivo: 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.

Objetivo: 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

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4086s (PHP: -75% SQL: 175%)
Consultas SQL: 46 - Debug off - GZIP Activado