Académique Documents
Professionnel Documents
Culture Documents
2. Estructuras condicionales
Fundamentos de Informtica
Dpto. Lenguajes y Sistemas Informticos
Estructuras condicionales
1. 2. 3. 4. 5. 6. 7. 8.
Ej07: Cond. simple Ej08: Cond. doble Ej09: Cond. anidada Ej10: Cond. cascada Recomendaciones Resumen Operadores relacionales Operadores booleanos o lgicos
Condicionales
Conditionals
Ejemplo 07
Ttulo:
Condicional simple
Nombre
cmd07_Click
Descripcin
Leer una variable entera, calcular su valor absoluto (en la misma variable) y mostrar el resultado
Observaciones
Condicional simple
Escribe n Fin
Conditionals
Condicionales
Ej07: Codificacin VB
2. Ejemplo 08
Ttulo:
Condicional doble
no
n<0
s n-n
Nombre
cmd08_Click
Descripcin
Leer una variable entera, calcular su valor absoluto en otra variable, y mostrar el resultado
s = InputBox ("Introduce nmero") n = CInt (s) Escribe n If n < 0 Then n = -n End If Fin MsgBox "Valor absoluto: " & CStr (n) End Sub
Observaciones
Condicional doble
Condicionales
Condicionales
Ej08: Codificacin VB
cmd08_Click n, a: entero Sub cmd08_Click() Dim s As String Dim n As Integer Dim a As Integer n LeeEntero no n<0 s
Escribe n, a Fin
a-n an s = InputBox ("Nmero:") n = CInt (s) If n < 0 Then Escribe n, a a = -n Else a = n Fin End If MsgBox "Valor absoluto de " & CStr (n) & _ " es " & CStr (a) End Sub
Condicionales
Condicionales
3. Ejemplo 09
Ttulo:
Condicional anidada
Nombre
cmd09_Click
Descripcin
Leer tres variables enteras, calcular cul es la mayor de ellas y mostrar el resultado Condicional anidada
Condicional anidada
Observaciones
Condicional anidada (condicional dentro de una condicional)
10
Condicionales
Condicionales
n3 = CInt (S)
If n1 > n2 Then If n1 > n3 Then m = n1 Else m = n3 End If Else If n2 > n3 Then m = n2 Else m = n3 End If End If
MsgBox "El mayor de " & CStr (n1) & ", " & _
11
12
Condicionales
Condicionales
4. Ejemplo 10
Ttulo:
Condicional en cascada
Nombre
cmd10_Click
Observaciones
Condicional en cascada Tras la alternativa Else inmediatamente viene una nueva condicin, convirtiendose en ElseIf
14
Condicionales
Condicionales
n3 = CInt (S)
If n1 > n2 And n1 > n3 Then m = n1 Else If n2 > n3 Then m = n2 Else m = n3 End If Dos puntos de fin End If
MsgBox "El mayor de " & CStr (n1) & ", " & _
15
16
Condicionales
Condicionales
5. Recomendaciones
n3 = CInt (S)
5. Recomendaciones (I)
El cuerpo de las instrucciones condicionales normalmente ir sangrado dos espacios en cada anidamiento, a aadir al cuerpo del subprograma Es por legibilidad, ya que Visual Basic lo entender de igual manera Ejemplo:
Sub ejemplo () . . . If a > b Then t = a a = b b = t End If End Sub
17 18
If n1 > n2 And n1 > n3 Then m = n1 ElseIf n2 > n3 Then m = n2 Else nico punto de fin m = n3 End If
MsgBox "El mayor de " & CStr (n1) & ", " & _
Condicionales
5. Recomendaciones
Condicionales
5. Recomendaciones
5. Recomendaciones (II)
Para facilitar la programacin es conveniente identificar conjuntos disjuntos y la condicin que las distingue Es mejor no volver a verificar condiciones excluidas Ejemplo:
If nota < 5 Then cal = "suspenso" ElseIf nota < 7 Then cal = "aprobado" ElseIf nota < 9 Then cal = "notable" Else cal = "sobresaliente" End If No volvemos a mirar si es mayor o igual a 5
5. Recomendaciones (III)
Cuando hay dos condiciones a las que queremos asociar la misma accin se agruparn en una sola
s
c1
no s A1
c2
A1
no ...
s A1
c1 c2
no ...
19
20
Condicionales
5. Recomendaciones
Condicionales
6. Resumen
5. Recomendaciones (IV)
Cuando han de cumplirse dos condiciones simultaneas no pondremos dos instrucciones condicionales sino una sola con la conjuncin de las condiciones
no
c1
6. Resumen (I)
Condicional simple If condicin Then
...
no
condicin
s ... ...
condicin
no
End If s no
c2
s A1
no
c1 c2
s A1
Else
...
no
condicin
s ...
s
condicin
no ...
End If
...
...
21
22
Condicionales
6. Resumen
Condicionales
6. Resumen
6. Resumen (II)
Condicional anidada
If condicin Then
...
6. Resumen (III)
no no
condicin condicin
...
...
...
s
condicin
no ... ...
no
condicin
Else
. . .
Negar la condicin y OK
End If End If
Condicional en cascada
If condicin Then
. . .
no no
condicin condicin
s ...
Else
. . .
...
...
End If
no ...
23
24
Condicionales
7. Relacionales
Condicionales
7. Booleanas
7. Operadores relacionales
Comparan valores y tienen resultado lgico True False Los operadores relacionales son 6 DdF
> = <
VB
>
Descripcin
Mayor Mayor o igual Igual Distinto Menor Menor o igual
VB
Not And Or Xor
Descripcin
Negacin, no Conjuncin, y Disyuncin, o Disyuncin exclusiva, o exclusiva
>=
= <> < <=
Hay que tener cuidado porque no se pueden formar expresiones matemticas de acotamiento
25
26
Condicionales
7. Booleanas
Condicionales
7. Booleanas
Leyes de De Morgan (Augustus De Morgan 1806-1871) La negacin de la disyuncin es equivalente a la conjuncin de la negaciones (cambia por ) (a b) a b
Not (a Or b) Not a And Not b Ejemplo: DdF: (a > 0 b > 0) VB: Not (a>0 And b>0) a0b0 a<=0 Or b<=0
Disyuncin exclusiva
a
a Falso b Falso Cierto Cierto Falso Falso
ab
Falso Falso Falso Cierto
ab
Falso Cierto Cierto Cierto
ab
Falso Cierto Cierto Falso
27
Not (a And b) Not a Or Not b Ejemplo: DdF: (a 0 b > 0) a<0b0 VB: Not (a >= 0 And b > 0) a < 0 Or b <= 0
28