|
Página 1 de 1
|
Autor |
Mensaje |
Radietor
Alejandro Moya Moya
Usuario
Registrado: Octobre 2010
Mensajes: 37
Edad: 28 Ubicación: España
|
Comenzar a programar
Haber vuelvo otra vez a la carga, ahora me estoy leyendo el libro de gambas, que es bastante explicativo, pero tengo una duda con un ejemplo que dan, porque yo a la vez que me lo voy leyendo voy haciendo los ejemplos y modificandolos según vea oportuno y ahora os quiero mostrar un ejemplo que modifique porque creo que esta mal hecho por que da muchas incoherencias. He aquí el ejemplo (Pag 61)
Pero yo al probar el código me daba cuenta de que al poner una edad mayor de 20 años la consola me repetía el nombre Adulto, por lo tanto hice estas modificaciones, haber que piensan ustedes, y haber que moficarían ustedes.
' gambas module file
' Este código no corresponde con el ejemplo de la Pag.61 , este ejemplo ha sido modificado por Alejandro Moya Moya debido a las grandes
' incoherencias vistas en el libro, a su vez se ha añadido el campo Edad para poder probar el programa.
Public Sub Main()
Dim Edad As Integer
' Modifique la edad como usted quiera
Edad = 12
If Edad >= 18 Then
Print "Adulto"
Endif
If Edad < 2 And Edad >= 0 Then
Print "Bebe"
Else If Edad < 12 Then
Print "Niño"
Else If Edad < 18 Then
Print "Joven"
Endif
End
|
#1 Viernes, 19 Julio 2013, 11:24 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemas Para Publicar Mi Programa En "El Centro De Software De Ubuntu"
Radietor:
Citar: al probar el código me daba cuenta de que al poner una edad mayor de 20 años la consola me repetía el nombre Adulto
Te ocurre porque el codigo tiene dos veces la misma comprobación de la edad
Fijate que en las lineas 1 y 4 , se hace la misma comprobación, y si la edad es mayor que 20, entonces va a escribir 2 veces "Adulto"
Sobre tu modificación es correcta, pero cuando pones en el comentario:
....a su vez se ha añadido el campo Edad para...
Es incorrecto lo que dices, no un campo, es una variable, y si lo quieres poner mejor puede añadir que es una variable del tipo integer
Con este ejemplo , añadiendole la orden "input", puedes usarlo para que te pida el valor de la edad, y asi ver como funciona con distintos valores.
Otra cosa que te va a ayudar mucho es usar el "Depurador", con el cual puedes poner un punto de interrupción y ver como se ejecuta el programa paso a paso, viendo los valores que va tomando las distintas variables. Es muy interesante.
Mirate este video tutorial: http://foro.gambas-es.org/viewtopic.php?f=10&t=1348
Nota:
Consejo: Crea un nuevo hilo para comentar otros problemas que ya no tengan que ver con el tema principal Problemas Para Publicar Mi Programa En "El Centro De Software De Ubuntu", para que sea más fácil ayudarte y que sea util para otros.
|
#2 Sabado, 20 Julio 2013, 11:18 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Comenzar A Programar
Por eso no vi el tema.Creía que se estaba hablando de otra cosa.
Bueno, la próxima vez hay que afinar la puntería.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Sabado, 20 Julio 2013, 20:55 |
|
|
Radietor
Alejandro Moya Moya
Usuario
Registrado: Octobre 2010
Mensajes: 37
Edad: 28 Ubicación: España
|
Re: Comenzar A Programar
Radietor:
Citar: al probar el código me daba cuenta de que al poner una edad mayor de 20 años la consola me repetía el nombre Adulto
Te ocurre porque el codigo tiene dos veces la misma comprobación de la edad
Fijate que en las lineas 1 y 4 , se hace la misma comprobación, y si la edad es mayor que 20, entonces va a escribir 2 veces "Adulto"
Sobre tu modificación es correcta, pero cuando pones en el comentario:
....a su vez se ha añadido el campo Edad para...
Es incorrecto lo que dices, no un campo, es una variable, y si lo quieres poner mejor puede añadir que es una variable del tipo integer
Con este ejemplo , añadiendole la orden "input", puedes usarlo para que te pida el valor de la edad, y asi ver como funciona con distintos valores.
Otra cosa que te va a ayudar mucho es usar el "Depurador", con el cual puedes poner un punto de interrupción y ver como se ejecuta el programa paso a paso, viendo los valores que va tomando las distintas variables. Es muy interesante.
Mirate este video tutorial: http://foro.gambas-es.org/viewtopic.php?f=10&t=1348
Nota:
Consejo: Crea un nuevo hilo para comentar otros problemas que ya no tengan que ver con el tema principal Problemas Para Publicar Mi Programa En "El Centro De Software De Ubuntu", para que sea más fácil ayudarte y que sea util para otros.
Muchas gracias por tu explicación y tus consejos. Y gracias por haber movido el mensaje a un nuevo hilo, es que no sabia donde colocar esta objeción.
Sobre la orden Input lo pense luego cuando no tenía el ordenador delante
Un saludo
última edición por Radietor el Domingo, 21 Julio 2013, 13:53; editado 1 vez
|
#4 Domingo, 21 Julio 2013, 13:51 |
|
|
Radietor
Alejandro Moya Moya
Usuario
Registrado: Octobre 2010
Mensajes: 37
Edad: 28 Ubicación: España
|
Re: Comenzar A Programar
Haber acabo de hacer dos programas, uno es modificando un ejemplo que da el libro y otro es una idea que me vino a la cabeza, pero dicho programa tiene un pequeño error, haber si lo localizáis y me podéis decir como solucionarlo.
El ejemplo modificado, Programa que te da la tabla de multiplicar de un numero que elijas.
Y este es el programa que cree por mi cuenta.
' gambas module file
' Programa creado por Alejandro Moya Moya
Public Sub Main()
Dim Ax2 As Integer
Dim Bx As Integer
Dim C As Integer
Dim comprobador As Integer
Print "Resolucion de Ecuaciones de Segundo Grado"
Print "Esquema general de una ecuacion de Segundo Grado: Ax² + Bx + C = 0"
Print "Introduzca A"
Input Ax2
If Ax2 = 0 Then
Print "Error: ¡¡En una ecuacion de Segundo Grado el termino Ax², A no debe ser igual a 0!!"
Input Ax2
Endif
Print "Introduzca B"
Input Bx
Print "Introduzca C"
Input C
' A continuacion indicaremos las reglas para hacer una ecuacion de segundo grado
comprobador = Bx * Bx - 4 * Ax2 * C
If comprobador = 0 Then
Print "Hay una solucion:"
Print (- Bx) / (2 * Ax2)
Endif
If comprobador < 0 Then
Print "Error: la raiz es menor que cero, la raiz da " & comprobador
Endif
If comprobador > 0 Then
Print "Hay dos soluciones:"
Print ((- Bx) + comprobador ^ (1 / 2)) / (2 * Ax2)
Print ((- Bx) - comprobador ^ (1 / 2)) / (2 * Ax2)
Endif
End
Haber que mejoras creéis que se puede hacer a cada programa?.
Un saludo,
Alejandro Moya Moya
|
#5 Lunes, 22 Julio 2013, 11:42 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Comenzar A Programar
Hola Radietor.
Uno de los problemas que te vas a encontrar es que el usuario entre un letra y no un número que es el
tipo de dato que esperas. Busca una solución a eso.
Otra cosa es que uses la función SQR para hallar la raíz cuadrada.
La tabla de multiplicar la hiciste de mas a menos, creo.
Las mejoras que también podemos añadir es hacer conversiones de textos a números y a lo mejor al revés,
en determinados momentos.
He complicado un poco mas el ejemplo de la raíz cuadrada y la hice de esta manera:
A lo mejor hay que modificar un poco los nombres de las variables.
Otra idea buena, es que te acostumbres a usar funciones para las operaciones, que llamaras desde un bucle si necesitas
repetir la operación.
Ah, puedes probar ejercicios de ecuación de segundo grados resueltos en:
http://www.vitutor.com/ecuaciones/2/2_e.html
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Lunes, 22 Julio 2013, 13:06; editado 1 vez
|
#6 Lunes, 22 Julio 2013, 13:05 |
|
|
Radietor
Alejandro Moya Moya
Usuario
Registrado: Octobre 2010
Mensajes: 37
Edad: 28 Ubicación: España
|
Re: Comenzar A Programar
Hola Radietor.
Uno de los problemas que te vas a encontrar es que el usuario entre un letra y no un número que es el
tipo de dato que esperas. Busca una solución a eso.
Otra cosa es que uses la función SQR para hallar la raíz cuadrada.
La tabla de multiplicar la hiciste de mas a menos, creo.
Las mejoras que también podemos añadir es hacer conversiones de textos a números y a lo mejor al revés,
en determinados momentos.
He complicado un poco mas el ejemplo de la raíz cuadrada y la hice de esta manera:
A lo mejor hay que modificar un poco los nombres de las variables.
Otra idea buena, es que te acostumbres a usar funciones para las operaciones, que llamaras desde un bucle si necesitas
repetir la operación.
Ah, puedes probar ejercicios de ecuación de segundo grados resueltos en:
http://www.vitutor.com/ecuaciones/2/2_e.html
Saludos
Muchas gracias por tu ayuda, lo siento por no haber podido contestar antes. Con respecto al codigo que me has ofrecido hay partes que no entiendo muy bien el porque, sobre todo la parte de la función
|
#7 Viernes, 02 Agosto 2013, 10:37 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Comenzar A Programar
Radietor:
No siempre podemos contestar rápidamente.
La función, te cuento:
A mi me paso lo mismo cuando vi el True con While la primera vez, Shordi me ayudo con el problema.
Y luego estudiando un poco de Python lo entendí mejor.
Es un bucle que se ejecuta siempre hasta que haya algo que lo rompa o salga de el. Con Return salimos de el.
Cada vez que valor entrado no este dentro de los valores del 1 al 9 y también el símbolo - (para los negativos),
el bucle se ejecutara otra vez. Con Left y el valor 1 nos aseguramos, que va leer solo un valor por el lado izquierdo.
Y con Instr, busca un valor dentro de unos valores que tu le des. Ejemplo del 1 al 9. Es muy util.
Si no usamos el IF, podía habernos devuelto la posición, pero solo nos interesa saber, si existe esa subcadena ("1")
dentro de un cadena.("123456..") que nos devolvería verdadero.
http://gambasdoc.org/help/lang/instr?es
Si tienes dudas pregunta.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#8 Viernes, 02 Agosto 2013, 10:52 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|