BUCLES Realizan de forma rápida cálculos repetitivos *Las ...
LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n...
-
Upload
amparo-fonseca -
Category
Documents
-
view
110 -
download
0
Transcript of LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n...
![Page 1: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/1.jpg)
LSI 1
4: Control de flujo Condicionales y bucles
![Page 2: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/2.jpg)
LSI 2
Motivación
Secuencia de acciones Programas lineales Limitación en el tipo de programas que se
pueden desarrollar
¿Cómo se puede construir un programa que calcule el valor absoluto de un número entero?
![Page 3: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/3.jpg)
LSI 3
Motivación
En ocasiones, un programa necesita controlar las condiciones en las que se pueden ejecutar algunas instruccionesEjemplo:
resultado = numero / X‘ Si X es 0, error!!!!
Especificación:Si X es distinto de cero se calcula la división número / X
![Page 4: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/4.jpg)
LSI 4
Condicionales
¿ExpresiónLógica?
Cierto
Cierto
Falso
Expresión lógica: Devuelve verdadero o falso Determina las acciones a ejecutar en función del
resultado de una expresión lógica
![Page 5: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/5.jpg)
LSI 5
Diagrama de flujoInicio
Escribir: “introduce un número”Leer X
X<>0?
Escribir num/X
Fin
no
Escribir: “introduce un número”Leer num
si
![Page 6: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/6.jpg)
LSI 6
IF….THEN …. END IF
If condicion then
Lista_sentencias
end if
![Page 7: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/7.jpg)
LSI 7
Codigo en Visual Basic
Private sub Command1_click()Dim x as integerDim num as integerNum=Inputbox(“introduce un número”)x=Inputbox(“introduce otro número”)
If x<>0 thenmsgbox(“El resultado es” & num/x)
End ifEnd sub
![Page 8: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/8.jpg)
LSI 8
Diagrama de flujo
Escribir: “no se puede realizar la división”
Inicio
Escribir: “introduce un número”Leer X
X<> 0?
Escribir num/X
Fin
no
Escribir: “introduce un número”Leer num
si
![Page 9: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/9.jpg)
LSI 9
IF….THEN ….ELSE …. END IF
If condicion then
Lista_sentencias_1
else
Lista_sentencias_2
end if
![Page 10: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/10.jpg)
LSI 10
Código en Visual BasicPrivate sub Command1_click()
Dim x as integerDim num as integerNum=Inputbox(“introduce un número”)x=Inputbox(“introduce otro número”)If x<>0 then
msgbox(“El resultado es” & Num/X)Else
msgbox(“no se puede realizar la división”)End if
End sub
![Page 11: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/11.jpg)
LSI 11
Múltiples comprobaciones
Problema:Dado un número, mostrar en pantalla si el número es positivo, negativo o igual a cero
![Page 12: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/12.jpg)
LSI 12
Diagrama de flujoInicio
Escribir: “Introduceun número”
Leer num
Num > 0
Num < 0
Escribir: “El númeroes positivo”
Escribir: “El númeroes negativo”
Escribir: “El númeroes cero”
Inicio
No
NoSi
Si
![Page 13: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/13.jpg)
LSI 13
IF…. THEN …. ELSEIF …. ELSE…. END IF
IF Condicion_1 THENLista_sentencias_1
ELSEIF Condicion_2 THENLista_sentencias_2
…ELSE
Lista_Sentencias_nEND IF
![Page 14: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/14.jpg)
LSI 14
Codigo en Visual BasicPrivate sub Command1_click()
Dim Num as integerNum=Inputbox(“introduce un número”)
If Num > 0 thenmsgbox(“El número es positivo”)
Elseif Num < 0 thenmsgbox(“El número es negativo”)
Else msgbox(“El número es cero”)
End ifEnd sub
![Page 15: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/15.jpg)
LSI 15
Condiciones múltiples
¿Qué hacemos cuando hay muchas condiciones distintas para una única expresión?
Ejemplo:Dada la nota numérica de un alumno, escribir la calificación correspondiente
8 Notable
![Page 16: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/16.jpg)
LSI 16
Diagrama de flujoInicio
Escribir: “IntroduceLa nota”
Leer num
nota = 10
nota < 10and
nota >= 9
Escribir: “MH”
Escribir:“Sobresaliente
Inicio
nota < 9and
nota >= 7
nota < 7and
nota >= 5
Escribir: “Notable”
Escribir: “Aprobado”
Escribir: “Suspenso”
Si
Si
Si
Si
No
No
No
No
![Page 17: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/17.jpg)
LSI 17
Select case Select case Nombre_Variable case opción_1
Lista_Sentencias_1case opción_2
Lista_Sentencias_2 . . . .case opción_n
Lista_Sentencias_n case else
Lista_Sentencias_n+1End select
![Page 18: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/18.jpg)
LSI 18
Select Case
Opciones– Valor
Case 0
– IS expresiónCase is <0
– Lista de valoresCase 20,30,40
– Rango de valores (TO)Case 50 to 80
![Page 19: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/19.jpg)
LSI 19
Select Case
Comprobaciones sobre una única variable o expresión
Rangos disjuntos de valores Más sencillo y eficiente
![Page 20: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/20.jpg)
LSI 20
Codigo en Visual BasicPrivate sub Command1_click()
Dim nota as integernota=Inputbox(“introduce un número”)Select Case notaCase 10msgbox(“MH”)Case is >= 9msgbox(“Sobresaliente”)Case is >= 7msgbox(“Notable”) Case is >= 5msgbox(“Aprobado”) Case Else msgbox(“Suspenso”)
End SelectEnd sub
![Page 21: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/21.jpg)
LSI 21
EjemploSelect case Variable case is <10 ‘Expresion
result = 1+3case 20 ‘Valor
result = 20+4case 30,40,50 to 80 ‘Lista y rango de valores
result = 98/10 case else
result = 50End select
![Page 22: LSI1 4: Control de flujo Condicionales y bucles. LSI2 Motivación n Secuencia de acciones n Programas lineales n Limitación en el tipo de programas que.](https://reader035.fdocuments.es/reader035/viewer/2022062404/551cedcf550346447a8b51af/html5/thumbnails/22.jpg)
LSI 22
Select Case vs If…Then…Elseif…else
Select Case– Muchas posibilidades (rangos)– Una única variable o expresión
If … then … elseif … else– Pocas posibilidades– Comprobaciones sobre distintas variables o expresiones
If a < b thenMsgbox(a)
elseif c <> 0 then msgbox(c)else
msgbox(b)end if