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
Interactuar Con Usuario En Consola
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?
Objetivo: Re: Interactuar Con Usuario En Consola
última edición por Enchufadoo el Domingo, 15 Abril 2012, 00:33; editado 1 vez
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
O si quieres algo mas avanzado con validacion:
Espero te sirva
Llendo al ejemplo que planteas una forma de hacerlo seria
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
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
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
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
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().
Se complica mas, pero es util si tienes que ingresar 20 numero e hiciste algo mal jeje. Saludos.
Se complica mas, pero es util si tienes que ingresar 20 numero e hiciste algo mal jeje. Saludos.
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:
En fin, que ya ira creciendo la idea del formulario.
Saludos.
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:
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?
¿se puede ejecutar gambas en un servidor que no tenga entorno grafico instalado?
Objetivo: Re: Interactuar Con Usuario En Consola
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
jsbsan escribió: [Ver mensaje]
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
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.
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.
Saludos
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.
Saludos
Página 1 de 2
No puede crear mensajesNo 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.558s (PHP: -63% SQL: 163%)
Consultas SQL: 46 - Debug off - GZIP Activado