Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

domingo, 19 de agosto de 2012

Estructuras de control: Condiciones IF...Then


Estructuras de control
  • Las estructuras de control controlan el flujo de un programa o función.
  • Permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida.
Estatuto if
  • EnGambas , la estructura de control de selección principal es un estatuto if.
  • El estatuto if tiene el siguiente formato:

IF Expression [ { AND IF | OR IF } Expression ... ] [ THEN ]   ... [ ELSE IF Expression [ { AND IF | OR IF } Expression ... ] [ THEN ]   ... ] [ ELSE   ... ] ENDIF

 
IF Expression [ { AND IF | OR IF } Expression ... ] THEN ...


Traducido sería como sigue 
Si....expresion.... Y Si | O Si ....expresion... Entonces   .... Sino Si ....expresion... Y Si | O Si ... expresion Entonces .... Sino ... FinSi

Si ...expresion... Y Si |  O Si ... expresion....  Entonces ..... 

Forma en que se ejecuta:
 La orden se ejecuta de la siguiente manera:
 Cuando se alcanza la estructura IF dentro de un programa, se evalúa la condición (o codiciones). Si la condición es verdadera, se ejecuta las ordenes que sigan al THEN, en caso de que no se cumpla, se ejecutaran las ordenes que sigan al ELSE,y si no las hay no se ejecuta nada.
Uso: If..then..endif
Dim num As Integer
Print "Introduce un numero para comprobar que sea divisible entre 3:"
Input num
If (num % 3) = 0 Then

Print "Es divisible entre 3"

Endif


Uso: If ... then ... else ... endif

Dim nota As Float

Print "Introduce la nota del alumno:"
Input nota

If nota >= 5 Then
Print " Aprobado"
Else
Print "Suspenso"
Endif



Condiciones Anidadas
  • Las ordenes if implementan decisiones que implican una o dos alternativas, una orden  if es anidada cuando la sentencia de la rama verdadera o la rama falsa es a su vez una sentencia if.
  • Una orden if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas



Ejemplo de uso:
Este programa, pide 2 números al usuario, y te dice cual es mayor. En caso de que sean iguales, también te lo dice.


' Gambas module file

Public Sub Main()

Dim a, b As Integer ' Definimos las variables locales, que vamos a usar

Print "Programa para mostrar el uso del If...Then..."
Print "Este programa compara dos numeros introducidos por el usuario, y te dice cual es el mayor"
Print "Introduce el 1º numero:"
Input a
Print "Introduce el 2º numero:"
Input b
If (a > b) Then
Print "El mayor es: "; a
Else
If a = b Then
Print "Son iguales"
Else
Print "El mayor es: "; b
Endif
Endif
Print "Fin del programa"

End

Otro ejemplo de uso:
Pedir 3 numeros, y ordenarlos de mayor a menor:

Dim a, b, c As Float

Print "Dame los 3 numeros "
Input a
Input b
Input c
If (a > b) Then
If (b > c) Then
Print a; " "; b; " "; c
Else
Print a; " "; c; " "; b
Endif
Else
If (a > c) Then
Print b; " "; a; " "; c
Else If (b > c) Then
Print b; " "; c; " "; a
Else
Print c; " "; b; " "; a
Endif
Endif
 
Nota:
No es bueno abusar de este tipo de anidamientos, (por ejemplo hacer este mismo problema pero con 5 numeros), ya que nos podemos perder con tanto anidamiento, y es muy díficil de encontrar errores... 
Para estos casos es mejor usar la orden Select...Case o Choose, o algoritmos específicos, que la veremos en los próximo post.
 
Enlace de descarga de codigos fuentes de ejemplos usados: Enlace


Para más información visite la pagina de documentación de gambas: 
http://gambaswiki.org/wiki/lang/if?l=es

No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad