Your SlideShare is downloading. ×
Estructura decision
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Estructura decision

2,597
views

Published on

Material de apoyo para la asignatura bptpr01 Programación para Ingeniería de la Universidad Metropolitana.

Material de apoyo para la asignatura bptpr01 Programación para Ingeniería de la Universidad Metropolitana.

Published in: Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,597
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Estructuras de DecisiónDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 2. Decisión Generalmente cuando se nos plantea un problema nos vemos ante la necesidad de tomar una o más decisiones. A veces hay que escoger entre una o mas alternativas posibles Los problemas que resolvemos con el computador no se escapan de esta situaciónDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 3. Que son Estructuras de Decisión Son estructuras de selección que permiten tomar distintos cursos de acción de acuerdo a una condición. Esta condición viene dada por una expresión lógica Si (condición) entonces acción 1 sino acción 2Departamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 4. Tipos de Estructuras de Decisión If-Then-Else (3 formas) If-Then If-Then Else If Anidados CaseDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 5. Decisión simple Se ejecuta un grupo de instrucciones en caso de cumplirse una sola condición (valor booleano verdadero) Sintaxis: If condición Then Instrucciones End if Son palabras claves Cierra el bloque a ejecutar si la condición es VerdaderaDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 6. Decisión simple se ejecutan si la condición es If condición Then Verdadera Instrucciones En caso contrario (si la condición es End if Falsa) continúa el flujo del Instrucciones programa con la instrucción inmediatamente después del End IfDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 7. Ejemplo de decisión simple Por ejemplo: Leer los datos de una persona e decir el nombre si y solo si es del sexo masculino. Option Explicit Dim Nombre As String, Sexo As String Sub Principal( ) Nombre = InputBox ("Cuál es tú nombre?", "Nombre") Sexo = InputBox ("Escriba M (Masculino) o F (femenino)", "Sexo") If Sexo = "M" Then Sheets(“Salida”).Cells(2, 1) = Nombre End If End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 8. Decisión compuesta Se ejecuta un grupo de instrucciones en caso de cumplirse una condición y otro en caso contrario. Sintaxis: If condición Then Instrucciones1 Else Instrucciones2 End if Son palabras reservadasDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 9. Decisión compuesta If condición Then Se ejecutan si la condición es Instrucciones1 Verdadera Else Instrucciones2 Se ejecutan en caso contrario, es decir, si la condición es Falsa End ifDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 10. Ejemplo de decisión compuesta Option Explicit Dim Nombre As String Sub principal ( ) Nombre = InputBox(“Cuál es tú nombre?”, “Nombre") If Nombre = “Pepe” Then MsgBox (“El nombre real es José”) Else MsgBox (“Tiene otro nombre”) End If End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 11. Decisión anidada Muchas veces tenemos situaciones donde hay más de una condición a tomar en cuenta. Una forma de expresarlo es con una Decisión Anidada. Sintaxis: If condición1 Then If condición2 Then Recuerda usar el tabulador Instrucciones1 (sangría) para darle Else mayor visualización a Instrucciones2 este estructura End If Else Instrucciones3 End IfDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 12. Decisión anidada Si la condición es Verdadera, pregunta por la siguiente condición If condición1 Then Se ejecutan si la If condición2 Then condición1 y la condición2 son Instrucciones1 Verdaderas Else Instrucciones2 Se ejecutan si la condición1 es End If Verdadera y la condición2 es Else Falsa Instrucciones3 Se ejecutan si la condición1 es End If FalsaDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 13. Ejemplo de decisión anidada Option Explicit Dim Edad As String Sub principal( ) Edad = InputBox("Cuál es tu edad?", “Edad") Importante! Estos If anidados son Call VerificarEdad equivalentes a los siguientes If anidados: If Edad < 18 Then If Edad < 18 and Edad > 12 Then If Edad > 12 Then MsgBox (“Eres un adolescente”) MsgBox (“Eres un adolescente”) Else If Edad <= 12 Then Else MsgBox (“Eres un niño”) MsgBox (“Eres un niño”) Else End If MsgBox (“Eres mayor de edad”) Else End If MsgBox (“Eres mayor de edad”) End If End If End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 14. Decisión anidada Otra forma de decisión anidada es la siguiente: If condición1 Then If condición2 Then La estructura de Instrucciones1 Estos If anidados son equivalentes a los siguientes: la decisión anidada Else If condición1 And condición2 Then dependerá del Instrucciones2 Instrucciones1 buen análisis End If que se realice End If del problema. If condición1 And Not(condición2) Then Else Instrucciones2 If condición3 Then End If Instrucciones3 If Not(condición1) and condición3 Then Instrucciones3 Else End If Instrucciones4 If Not(condición1) and Not(condición3) Then End If Instrucciones4 End IfDepartamento de Programación y End IfTecnología Educativa mrodriguez@unimet.edu.ve
  • 15. Decisión Case En esta estructura de decisión, se consideran una serie de valores alternativos para una misma expresión. La condición se evalúa en diferentes valores hasta encontrar el que coincide. Para cada valor se realizan instrucciones diferentes. Importante! Este Case es Select Case expresión equivalente a los siguientes If anidados: Case valor1 Instrucciones1 If expresión = valor1 Then Case valor2 Instrucciones1 Else son palabras Instrucciones2 If Expresión = valor2 Then reservadas Case valor3 Instrucciones2 Else Instrucciones3 If expresión = valor3 Then End Select Instrucciones3 End If End If End IfDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 16. Ejemplo de decisión Case (Variable tipo String) „ En este ejemplo se evalúa el estado civil de la persona Option Explicit Dim EdoCiv As String Dim Solteros as Integer Importante! Este Case es equivalente a los siguientes If anidados: Dim Casados as Integer Dim Otros as Integer If EdoCiv = “s” or EdoCiv = “S” Then Solteros = Solteros + 1 Sub principal( ) Else EdoCiv = InputBox(“Cuál es tu estado civil?”, “Estado Civil”) If EdoCiv = “c” or EdoCiv = “C” Then Casados = Casados + 1 Call VerficaEdoCivil Else Select Case EdoCiv If EdoCiv = “d” or EdoCiv = “D” or Case “s” , “S” EdoCiv = “o” or EdoCiv = “O” Then Solteros = Solteros + 1 Otros = Otros + 1 Case “c”, “C” Else Casados = Casados + 1 MsgBox (“Error”) Case “d” , “o” , “D”, “O” Entra por esta opción End If Otros = Otros + 1 solamente si no End If Case Else se cumplen End If MsgBox (“Error”) ninguna de las End Select anteriores End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 17. Ejemplo de decisión Case (Variable tipo Integer) „En este ejemplo se envía un mensaje indicando a que grupo de „edad pertenece la persona. Importante: Cuando el valor viene dado por Option Explicit una condición (<,>,=, etc.) automáticamente Dim Edad As Integer se coloca la palabra clave “Is” Sub principal( ) Edad = InputBox(“Cuál es tu edad?”, “Edad”) Call VerificarEdad Select Case Edad Es importante considerar que Case Is >=65 siempre entra por la primera MsgBox(“Usted es de la Tercera edad”) opción verdadera: Case Is >=18 MsgBox(“Usted es mayor de edad”) Si Edad es 70 entrará por la primera Case Is >12 opción y termina MsgBox(“Usted es adolescente”) Case Else Si Edad es 40 entrará por la MsgBox (“Usted es un niño”) segunda opción y termina End Select End Sub Si Edad es 15 entrará por la tercera opción y terminaDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 18. Uso de decisión Case Ventajas: Utiliza menos instrucciones que las instrucciones equivalentes en un If anidado Se evitan errores al no tener que hacer coincidir los If con los Else y End If. Más fácil de visualizar Desventajas: Solamente se puede utilizar cuando la expresión del condicional se refiere a la misma variable. Solamente entra por una opciónDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 19. Comentarios sobre los valores en el decisión Case 1. Se pueden utilizar expresiones múltiples o intervalos en cada cláusula Case. Por ejemplo, cualquiera de las siguientes líneas son válidas: Case 1 To 4, 7 To 9 Case 1 To 4, 11, 13 Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber 2. También puede especificar intervalos y expresiones múltiples para cadenas de caracteres. En el siguiente ejemplo, Case coincide con las cadenas que son exactamente “iguales a todo”, cadenas que están entre “nueces” y “sopa” en orden alfabético y el valor actual de ElemPrueba: Case "iguales a todo", "nueces" To "sopa", ElemPruebaDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 20. Otros ejemplos de decisión Case (Comentario 1) Nuevamente el ejemplo que envía un mensaje indicando a que grupo de „edad pertenece la persona, pero con otros intervalos de valores: Option Explicit Const Anciano = 65 Dim Edad As Integer Sub principal( ) Edad = InputBox(“Cuál es tu edad?”, “Edad”) Call VerificarEdad Select Case Edad Case Is >=Anciano MsgBox(“Usted es de la Tercera edad”) Observe los Case Is >=18 diferentes MsgBox(“Usted es mayor de edad”) intervalos Case 13, 14, 15, 16, 17 MsgBox(“Usted es adolescente”) de valores Case 0 to 4 MsgBox (“Usted es un niño”) End Select End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve
  • 21. Otros ejemplos de decisión Case (Comentario 2) Nuevamente el ejemplo que evalúa el estado civil de la persona, pero considerando posibles errores de trascripción: Option Explicit Const Divo =“Divorciado” Observe los Dim EdoCiv As String diferentes Dim Solteros as Integer intervalos Dim Casados as Integer Dim Otros as Integer de valores Sub principal( ) EdoCiv = InputBox(“Cuál es tu estado civil?”, “Estado Civil”) Select Case EdoCiv Case “s” to “so” , “S” to “SO” Solteros = Solteros + 1 Case “c”, “Casada” to “Casado”, “csaada” to “csaado”, “C” Casados = Casados + 1 Case “d” to “di” , “D” to “DI”, “o” , “O”, “Divo” Otros = Otros + 1 Case Else MsgBox (“Error”) End Select End SubDepartamento de Programación yTecnología Educativa mrodriguez@unimet.edu.ve