Programación 1: estructuras de control

53
Programación 1 Estructuras de control Angel Vázquez-Patiño [email protected] Departamento de Ciencias de la Computación Universidad de Cuenca 21 de marzo de 2017

Transcript of Programación 1: estructuras de control

Programación 1

Estructuras de control

Angel Vázquez-Patiñ[email protected]

Departamento de Ciencias de la ComputaciónUniversidad de Cuenca

21 de marzo de 2017

21/03/17 Angel Vázquez-Patiño 2/53

Contenido

SecuencialDecisión (If)Operadores lógicosSelección (Case)Bucles (For, While, Repeat)

21/03/17 Angel Vázquez-Patiño 3/53

Estructuras de control

SecuencialDecisión (If)

Operadores lógicosSelección (Case)

Bucles (For, While, Repeat)

21/03/17 Angel Vázquez-Patiño 4/53

Secuencia

● La estructura de control más simple● Sucesión de operaciones en la que el orden de

ejecución coincide con el orden de aparición de las instrucciones

Acción 1 Acción 2 Acción n-1 Acción nInicio Fin

21/03/17 Angel Vázquez-Patiño 5/53

Secuencia

21/03/17 Angel Vázquez-Patiño 6/53

Secuencia

21/03/17 Angel Vázquez-Patiño 7/53

Estructuras de control

SecuencialDecisión (If)

Operadores lógicosSelección (Case)

Bucles (For, While, Repeat)

21/03/17 Angel Vázquez-Patiño 8/53

Decisión (If)

● Usar instrucciones únicamente de manera secuencial es casi imposible en la vida real

● Es necesario bifurcar el flujo del programa de acuerdo a los datos

● El flujo cambia de acuerdo a una condición

CondiciónNo Sí

21/03/17 Angel Vázquez-Patiño 9/53

Decisión (If)

Estructura if-thenEstructura if-then-else

Estructura anidada

21/03/17 Angel Vázquez-Patiño 10/53

Decisión (If)

Estructura if-thenEstructura if-then-else

Estructura anidada

21/03/17 Angel Vázquez-Patiño 11/53

Estructura if-then

21/03/17 Angel Vázquez-Patiño 12/53

Estructura if-then

● Si la condición se cumple se ejecuta(n) la(s) instrucción(es).

21/03/17 Angel Vázquez-Patiño 13/53

Estructura if-then

● Si la condición se cumple se ejecuta(n) la(s) instrucción(es).

21/03/17 Angel Vázquez-Patiño 14/53

Estructura if-then

21/03/17 Angel Vázquez-Patiño 15/53

Estructura if-then

Algoritmo mayorDeEdad

Leer edad;

Si edad >= 18 Entonces

Escribir "Usted es mayor de edad."

Fin Si

FinAlgoritmo

21/03/17 Angel Vázquez-Patiño 16/53

Decisión (If)

Estructura if-thenEstructura if-then-else

Estructura anidada

21/03/17 Angel Vázquez-Patiño 17/53

Estructua if-then-else

● Para elegir entre dos instrucciones

21/03/17 Angel Vázquez-Patiño 18/53

Estructua if-then-else

● Para elegir entre dos instrucciones

Algoritmo mayorMenorDeEdadLeer edad;Si edad >= 18 Entonces

Escribir "Usted es mayor de edad.";Sino

Escribir "Usted es menor de edad.";

Fin SiFinAlgoritmo

21/03/17 Angel Vázquez-Patiño 19/53

Estructua if-then-else

21/03/17 Angel Vázquez-Patiño 20/53

Estructua if-then-else

Algoritmo positivoNegativo

Leer num;

Si num > 0 Entonces

Escribir "Positivo.";

Sino

Escribir "Negativo.";

Fin Si

FinAlgoritmo

21/03/17 Angel Vázquez-Patiño 21/53

Decisión (If)

Estructura if-thenEstructura if-then-elseEstructura anidada

21/03/17 Angel Vázquez-Patiño 22/53

Estructura anidada

● La condición distingue entre tres o más casos● Se ejecuta una y sólo una de las instrucciones

21/03/17 Angel Vázquez-Patiño 23/53

Estructura anidada

Algoritmo positivoNegativoNulo

Leer num;

Si num > 0 Entonces

Escribir "Positivo.";

Sino

Si num < 0 Entonces

Escribir "Negativo.";

Sino

Escribir "Nulo.";

Fin Si

Fin Si

FinAlgoritmo

21/03/17 Angel Vázquez-Patiño 24/53

Estructura anidada

21/03/17 Angel Vázquez-Patiño 25/53

Estructura anidada

21/03/17 Angel Vázquez-Patiño 26/53

Estructuras de control

SecuencialDecisión (If)

Operadores lógicos y relacionalesSelección (Switch)

Bucles (For, While, Repeat)

21/03/17 Angel Vázquez-Patiño 27/53

Operadores lógicos y relacionales

Operadores lógicos:● Y (AND)● O (OR)● NO (NOT)

Operadores relacionales● =, es igual que● ! =, es distinto de● <, es menor que● <=, es menor o igual que● >, es mayor que● >=, es mayor o igual que

21/03/17 Angel Vázquez-Patiño 28/53

Operadores lógicos y relacionales

Análisis de un problema● Determine el menor valor de 3 números,

indicando además en qué orden fue ingresado (i.e., si fue el primero en ser ingresado, si fue el segundo o si fue el tercero). Considere que el menor valor no puede repetirse. Por ejemplo, si los números ingresados fueran: 14, 19, 14. El resultado debe ser: “El menor valor ingresado fue 14 y corresponde al 3° número ingresado”.

21/03/17 Angel Vázquez-Patiño 29/53

Operadores lógicos y relacionales

21/03/17 Angel Vázquez-Patiño 30/53

Operadores lógicos y relacionales

21/03/17 Angel Vázquez-Patiño 32/53

Estructuras de control

SecuencialDecisión (If)

Operadores lógicos y relacionalesSelección (Switch)

Bucles (For, While, Repeat)

21/03/17 Angel Vázquez-Patiño 33/53

Selección (Switch)

● Se utiliza cuando las alternativas en una estructura básica de decisión son más de dos

● Las condiciones serán valores preestablecidos (no rangos)

21/03/17 Angel Vázquez-Patiño 34/53

Selección (Switch)

21/03/17 Angel Vázquez-Patiño 35/53

Selección (Switch)

21/03/17 Angel Vázquez-Patiño 36/53

Selección (Switch)

21/03/17 Angel Vázquez-Patiño 37/53

Selección (Switch)Algoritmo diaSemana

Leer dia;Segun dia Hacer

1:Escribir “Lunes”;

2:Escribir “Martes”;

3:Escribir “Miércoles”;

4:Escribir “Jueves”;

De Otro Modo:Escribir “Viernes”;

FinSegunFinAlgoritmo

21/03/17 Angel Vázquez-Patiño 38/53

Ejercicio 1

Desarrolle un algoritmo que pida al usuario un número entero y muestre un mensaje en función su valor:● Si 0<=n<5: “Mayor o igual que cero y menor

que cinco”● Si 5<=n<10: “Mayor o igual que cinco y menor

que diez” ● Si n<0: “Menor que cero”● Si no es ninguno de los anteriores: “Número

incorrecto”

21/03/17 Angel Vázquez-Patiño 39/53

Ejercicio 2

Desarrolle un algoritmo que pida un número entero entre 1 y 12 (inclusivo) y muestre un mensaje con el nombre del mes en función del número:● 1 = Enero● 2 = Febrero● 3 = Marzo● …● 12 = Diciembre

21/03/17 Angel Vázquez-Patiño 40/53

Estructuras de control

SecuencialDecisión (If)

Operadores lógicos y relacionalesSelección (Case)

Bucles (While, Repeat, For)

21/03/17 Angel Vázquez-Patiño 41/53

Bucles (lazos)

● Los bucles son estructuras que permiten ejecutar partes del código de forma repetida mientras se cumpla una condición.

● La instrucción o el bloque de instrucciones que se repiten en el bucle se denominan cuerpo del bucle.

● Cada repetición completa de un bucle se denomina iteración.

21/03/17 Angel Vázquez-Patiño 42/53

Bucles (lazos)

WhileRepeat

For

21/03/17 Angel Vázquez-Patiño 43/53

While (Mientras)

● Ejecuta continuamente las instrucciones dentro del cuerpo del bucle mientras se cumpla una condición

21/03/17 Angel Vázquez-Patiño 44/53

While (Mientras)

21/03/17 Angel Vázquez-Patiño 45/53

Bucles (lazos)

WhileRepeat

For

21/03/17 Angel Vázquez-Patiño 46/53

Repeat

● La condición se evalúa luego de ejecutar las instrucciones del cuerpo del bucle

● Por lo tanto, la(s) instrucción(es) se ejecuta(n) por lo menos una vez

21/03/17 Angel Vázquez-Patiño 47/53

Repeat

21/03/17 Angel Vázquez-Patiño 48/53

Ejercicios

● Realizar un algoritmo que calcule el factorial de un número

● Realizar un algoritmo que muestre la tabla de multiplicar de un número entero n

En ambos casos hacer una versión utilizando While y otra utilizando Repeat

21/03/17 Angel Vázquez-Patiño 49/53

Bucles (lazos)

WhileRepeat

For

21/03/17 Angel Vázquez-Patiño 50/53

For

● Permite ejecutar un conjunto de sentencias cierto número de veces

Para variable_numérica<-valor_inicial Hasta valor_final Con Paso paso Hacersecuencia_de_acciones

Fin Para

21/03/17 Angel Vázquez-Patiño 51/53

For

21/03/17 Angel Vázquez-Patiño 52/53

For

21/03/17 Angel Vázquez-Patiño 53/53

Lecturas adicionalesSe recomienda leer la sección 2.1 Estructuras de Control del libro de De Giusti (2001) y el documento https://goo.gl/OMZYqA

EjerciciosSe recomienda realizar los ejercicios del capítulo 4 Sentencias de Control: Parte I del libro de Deitel y Deitel (2012).

Referencias● De Giusti, A., 2001. Algoritmos, datos y programas con

aplicaciones en Pascal, Delphi y Visual Da Vinci, 1st ed. Pearson Educación, Buenos Aires, Argentina.

● Deitel, P.J., Deitel, H.M., 2012. Java: How to Program, 9th ed. Prentice Hall, Upper Saddle River, N.J.

21/03/17 Angel Vázquez-Patiño 54/53

Preguntas