Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo De If Anidados Y Simplificación De Este
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejemplo De If Anidados Y Simplificación De Este 
 
Hola!.

Este es un ejemplo de Python convertido a Gambas3. Me explico en el mismo código.

Vaya, la tabla no ha quedado muy bien. Hago una captura.

 tabla_1408650448_378403

'Este ejemplo es una conversion a Gambas3 de un ejemplo que pertenece al libro:
 'Practical Programming. An Introduction to Computer Science using Python 3. Second Edition
 'Autores: '
 'Paul Cries
 'Jennifer Campbell
 'Jason Montojo
 '
 'Editado por: '
 'Lyn Beighley
 '
 'Editoral: '
 'The Pragmatic Programmers
 
'
' En este ejemplo vamos a recordar en una variable la evaluación de una expresión booleana
' Vamos a ver tambien el uso de unas sentencias if anidadas

' Vamos a traducir las condiciones de una tabla a un ejemplo de gambas. Es algo habitual.

' En nuestro ejemplo queremos calcular el riesgo de enfermedad del corazon siguiendo
' reglas basadas en la edad y el indice de masa corporal (IMC)

' Esta es nuestra tabla de decisiones. Tenemos que convertirla a un grupo de sentencias condicionales.
' Vamos a ver distintas posibilidades.
'
'
'Vamos a definir dos variables globales. Es simplemente por comodidad.
Private edad As Integer
Private imc As Single

Public Sub Main()
  'Debemos asignar un valor a cada variable global y llamar al ejemplo concreto, del 1 al 3.
  'Podemos cambiar el valor para ver un resultado distinto y comprobar el funcionamiento correcto de la tabla
  'Descomentar solo un Ejemplo
  
  edad = 33
  imc = 17.0
  
  Ejemplo1
  'Ejemplo2
  'Ejemplo3
  
End


Public Sub Ejemplo1()
  ' Una posible manera, sería usando un grupo de sentencias if anidadas
  'Dim edad As Integer
  'Dim imc As Single
  Dim riesgo As String
  
  If edad < 45 Then
    If imc < 22.0 Then
      riesgo = "Bajo"
    Else
      riesgo = "Medio"
    Endif
  Else
    If imc < 22.0 Then
      riesgo = "Medio"
    Else
      riesgo = "Alto"
    Endif
  Endif
  Print "El riesgo es: " & riesgo
    
End

Public Sub Ejemplo2()
  'La expresión imc < 22.0 es usada multiples veces. Para simplificar el codigo nosotros
  'podemos evaluar cada una de las expresiones booleanas y crear variables que se referieren
  'a los valores producidos por estas expresiones y usar estas variables multiples veces.
  
  Dim joven As Boolean
  Dim delgado As Boolean
  'Dim edad As Integer
  'Dim imc As Single
  Dim riesgo As String
  
  ' En esta dos variables vamos a recordar la evaluación de la expresión booleana
  joven = edad < 45
  delgado = imc < 22.0
  
  If joven Then
    If delgado Then
      riesgo = "Bajo"
    Else
      riesgo = "Medio"
    Endif
  Else
    If delgado Then
      riesgo = "Medio"
    Else
      riesgo = "Alto"    
    Endif
  Endif
  Print "El riesgo es: " & riesgo
    
End

Public Sub Ejemplo3()
  
  'Ahora vamos a hacer lo mismo sin un grupo de sentencias if anidadas
  '
  Dim joven As Boolean
  Dim delgado As Boolean
  'Dim edad As Integer
  'Dim imc As Single
  Dim riesgo As String
  
 ' En esta dos variables vamos a recordar la evaluación de la expresión booleana
  joven = edad < 45
  delgado = imc < 22.0
  
  If joven And delgado Then
    riesgo = "Bajo"
  Else If joven And Not delgado Then
    riesgo = "Medio"
  Else If Not joven And delgado Then
    riesgo = "Medio"
  Else If Not joven And Not delgado Then
    riesgo = "Alto"
  Endif  
  Print "El riesgo es: " & riesgo
    
End
 


Os subo el ejemplo.

De todos los sitios podemos aprender algo nuevo, solo hay que buscar y si no es para gambas, convertirlo.

Saludos

EjemlposConIfAnidados.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemlposConIfAnidados.tar.gz
Tamaño: 6.37 KB
Descargado: 25 veces
EjemlposConIfAnidados.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemlposConIfAnidados.tar.gz
Tamaño: 6.37 KB
Descargado: 25 veces
EjemlposConIfAnidados.tar.gz
Descripción:  
Descargar
Nombre del archivo: EjemlposConIfAnidados.tar.gz
Tamaño: 6.37 KB
Descargado: 25 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 22 Agosto 2014, 08:44; editado 5 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo De If Anidados Y Simplificación De Este 
 
Shell:

Me gusta mucho el 3º ejemplo, queda mucho más claro el código.

Nota:
Te falta añadirle
' En esta dos variables vamos a recordar la evaluación de la expresion booleana
joven = edad < 45
delgado = imc < 22.0

 




===================
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: Ejemplo De If Anidados Y Simplificación De Este 
 
Gracias Julio por la corrección.

La verdad es que si. Con el uso de las dos variables ha quedado bastante simplificado y muy fácil de entender.
A  veces no nos fijamos en estos detalles. Y es algo que nos agradecerá el programador que lea el código.

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: Ejemplo De If Anidados Y Simplificación De Este 
 
Visto está que el curso de phyton aportó mucho, un ejemplo similar al que muestra el amigo Shell, usando operadores lógicos para evaluar màs de una condición a la vez, para realizar la versiòn gambas del piedra ,papel,tijera,lagarto,Spock que realizamos en el curso.
Os muestro parte del código:
If jugador = compu Then
label1.text = “No hay ganador”
Else If
jugador = “Spock” And (compu = “tijera” Or compu = “piedra”) Then
label1.text = “jugador gana”
puntaje_jugador = puntaje_jugador + 1
Else If
jugador = “lagarto” And (compu = “papel” Or compu = “Spock”) Then
label1.text = “jugador gana”
puntaje_jugador = puntaje_jugador + 1
Else If
jugador = “tijera” And (compu = “papel” Or compu = “lagarto”) Then
label1.text = “jugador gana”
puntaje_jugador = puntaje_jugador + 1
Else If
jugador = “piedra” And (compu = “tijera” Or compu = “lagarto”) Then
label1.text = “jugador gana”
puntaje_jugador = puntaje_jugador + 1
Else If
jugador = “papel” And (compu = “piedra” Or compu = “Spock”) Then
label1.text = “jugador gana”
 

Por si a alguno le interesa aquí les dejo el código fuente, que por supuesto es muy mejorable.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
última edición por Dani26 el Lunes, 25 Agosto 2014, 01:11; editado 1 vez 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Encuentra Los Problemas En Este Código fabianfv General 6 Domingo, 28 Noviembre 2010, 03:50 Ver último mensaje
fabianfv
No hay nuevos mensajes Ayuda Con Este Programa angelware General 1 Martes, 15 Noviembre 2011, 09:13 Ver último mensaje
jsbsan
No hay nuevos mensajes Este Shell Script Me Ha Salvado El Culo... shordi General 7 Martes, 09 May 2017, 13:41 Ver último mensaje
Shell
No hay nuevos mensajes ¿ Se Acuerdan De Este Basic ?. Shell Off-topic 0 Lunes, 25 May 2020, 15:14 Ver último mensaje
Shell
 

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