36
ESTRUCTURAS REPETITIVAS El que entendió entendió

ESTRUCTURAS REPETITIVAS El que entendió entendió

Embed Size (px)

Citation preview

Page 1: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESTRUCTURAS REPETITIVAS

El que entendió entendió

Page 2: ESTRUCTURAS REPETITIVAS El que entendió entendió

MENU DEL DIA

• Recorderis clase anterior• Ciclos

Page 3: ESTRUCTURAS REPETITIVAS El que entendió entendió

RECORDERIS CLASE ANTERIOR

• Condicionales condición

Instrucciones falso

Instrucciones verdadero

SI (condición) Instrucciones_verdaderoDE_LO_CONTRARIO Instrucciones_falsoFIN_SI

Page 4: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJEMPLO REPASO 1

• En un juego de preguntas que se responde SI o NO, gana quien responda correctamente las tres preguntas. Se responde mal cualquiera de ellas, ya no se pregunta la siguiente y termina el juego. Las preguntas son:1. ¿Simon Bolivar liberto a Colombia?2. ¿Camilo Torres fue un Guerrillero?3. ¿El binomio de oro es un grupo de musica vallenata?Diseñe el registro de entrada

Page 5: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJEMPLO REPASO 2• Una frutería ofrece las manzanas con descuento según la siguiente

tabla:

Determinar cuanto pagará una persona que compre manzanas en esa frutería

# de manzanas compradas % de descuento

0 -2 0%

3 - 5 10%

6 -10 15%

11 en adelante 20%

Page 6: ESTRUCTURAS REPETITIVAS El que entendió entendió

CICLOS

• ¿Que es un ciclo?• Instrucción MIENTRAS• Contadores• Acumuladores• Contadores y acumuladores• Instrucción PARA.• Ejercicios de repaso.

Page 7: ESTRUCTURAS REPETITIVAS El que entendió entendió

¿QUE ES UN CICLO?

• Palabra clave: Repetición• Conjunto de sentencias que se repiten

siempre que una condición dada sea cierta.• Ejemplo: Realizar un algoritmo que sume los

10 primeros números (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

Page 8: ESTRUCTURAS REPETITIVAS El que entendió entendió

¿QUE ES UN CICLO?

• Solución sin ciclos

• Que sucede para el caso en el cual se cambie el enunciado del problema y ya se quieran sumar los mil primeros números.

Algoritmo(suma_numeros)variables: entera: suma = 0INICIO suma = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 ESCRIBA(“La suma de los primeros 10 numeros es”,suma)FINFin(suma_numeros)

Page 9: ESTRUCTURAS REPETITIVAS El que entendió entendió

¿QUE ES UN CICLO?

• Siguiendo mi solución anterior• Y si el problema cambia a los

primeros 10000 números. No puede ser, nooooo!!!Algoritmo(suma_numeros)variables: entera: suma = 0INICIO suma = 0 + 1 + . . . + 997 + 998 + 999 ESCRIBA(“La suma de los primeros 10 numeros es”,suma)FINFin(suma_numeros)

Page 10: ESTRUCTURAS REPETITIVAS El que entendió entendió

¿QUE ES UN CICLO?

• La solución a todo esto esta en la implementación de ciclos.

Algoritmo(suma_numeros_ciclos)variables: entera: suma = 0, numeroFinal = 10, i = 0INICIO MIENTRAS (i < numeroFinal) HAGA suma = suma + i FIN_MIENTRASFINFin(suma_numeros_ciclos)

Page 11: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (1)

• Esta condición repite el cogido (secuencia) contenido adentro siempre que la condición (expresión) sea verdadera.

Page 12: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (2)Condicion: Expresión que puede tomar el valor de falso o verdadero, ejemplo:• a > 10• b <= -5• c == 3• (a < -4)&(m == 2)

Instrucciones: Conjunto de sentencias que se encuentran dentro del bloque del ciclo, ejemplo:• x1 = (-b + (b^2-4*a*c)^(1/2))/2 • x2 = (-b - (b^2-4*a*c)^(1/2))/2• m = ((a + b)^2)/(a-b*(c+f^2))• a = 3• z = z + 1.• Estructuras de control (condicionales, ciclos)

Bloque del ciclo

Page 13: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (3)

DIAGRAMA DE FLUJO PSEUDOCODIGO

Page 14: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (6)PARA HACER (Ejemplo1.dfd):• Hacer la prueba de escritorio del diagrama de flujo.• Realizar la codificación en Pseudocódigo (En la forma vista en clase).• Realizar la codificación en Pseudocódigo usando PSeInt.• Mostrar el ejemplo en DFD.

Page 15: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (6)Ejemplo1.dfd

Algoritmo(ejemplo1)variables: entera: b = 2, a = 4INICIO MIENTRAS (a < 10) HAGA a = a + 1 b = (-2)*b FIN_MIENTRASFINFin(ejemplo1)

Page 16: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (7)

Ejemplo2.dfd

Algoritmo(ejemplo2)variables: entera: b = 2, a = 4INICIO MIENTRAS (a < 10) HAGA a = a + 2 b = (-2)*b FIN_MIENTRASFINFin(ejemplo2)

Page 17: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (7)

Ejemplo3.dfd

Algoritmo(ejemplo3)variables: entera: b = 2, a = 4INICIO MIENTRAS (a >= -10) HAGA a = a - 3 b = (-2)*b FIN_MIENTRASFINFin(ejemplo3)

Page 18: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN MIENTRAS (7)Ejemplo4.dfd

Algoritmo(ejemplo4)variables: entera: b = 2, a = 4INICIO MIENTRAS (a < 10) HAGA b = (-2)*b FIN_MIENTRASFINFin(ejemplo4)

Page 19: ESTRUCTURAS REPETITIVAS El que entendió entendió

CONTADORES

Ejemplo:• Hacer un algoritmo que vaya incrementando una

variable que empieza en cero 0 y termina en 9, debe mostrar cada incremento (ejemplo5).

CONTADORUn contador es una variable que se incrementa o disminuye en un valor constante. Un contador tiene la siguiente forma:

contador = contador + <valor constante>

Algunos ejemplos:j = j + 2i = i – 1carros = carros + 1

Page 20: ESTRUCTURAS REPETITIVAS El que entendió entendió

ACUMULADORES

Ejemplo:• Modifique el ejemplo anterior de tal manera que realice

la suma de los 10 primeros números (ejemplo 6).

ACUMULADORUn acumulador o totalizador es una variable cuya misión es el almacenamiento de cantidades variables de procesos sucesivos. La diferencia con el contador radica en que el incremento o disminución del acumulador es variable, la forma general de un acumulador es la siguiente:

acumulador = acumulador + <valor constante>

Algunos ejemplos:acum = acum + isuma= suma + algoresta = resta + algo cerveza = cerveza + tragos

Page 21: ESTRUCTURAS REPETITIVAS El que entendió entendió

CONTADORES Y ACUMULADORESNota:• Antes de ser usados, tanto los contadores como los

acumuladores deben ser inicializados a un valor conocido (generalmente 0).

dinero_Homero dinero_Moe barriles_cervezat_cerveza_vendida

kw_hora_consumidosTotal_kw

Page 22: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESQUEMAS DE SOLUCION CON CICLOS• Existen dos esquemas de solución con ciclos, el esquema

cuantitativo y el esquema cualitativo.• El factor clave radica en si se tiene o no un conocimiento previo

de las iteraciones (repeticiones) que debe realizar el ciclo. • En si, lo que se tiene que tener bien en claro es como

proceder si se conoce o no el numero de iteraciones.

Page 23: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESQUEMA CUANTITATIVO

• Es utilizado cuando se conoce el numero de veces que debe repetirse un ciclo determinado.

Ejemplo: Realizar un algoritmo

que sume N números introducidos por teclado.

Page 24: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESQUEMA CUALITATIVO

• Esquema utilizado cuando no se conoce el numero de veces que debe repetirse la secuencia de determinado ciclo.

• La resolución de este tipo de problemas puede ser llevada a cabo de dos maneras:– Preguntando antes de cada

iteración.– Haciendo uso de un registro

centinela.

Page 25: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESQUEMA CUALITATIVO – PREGUNTANDO ANTES DE CADA ITERACION

• El control del bucle usando este método se realiza preguntando al usuario si existen mas datos.

Ejemplo: Mateo esta recaudando

impuestos para los romanos, al iniciar el día laboral abre caja en $0, a medida que van llegando usuarios va acumulando la cantidad hasta que finalizar el día. Realizar un programa que le ayude a Mateo a llevar esta tarea.

Page 26: ESTRUCTURAS REPETITIVAS El que entendió entendió

ESQUEMA CUALITATIVO – HACIENDO USO DE UN REGISTRO CENTINELA

• En este caso la terminación del bucle se hace por medio de un centinela. Un registro centinela es un valor especial usado para indicar el final de una lista de datos.

Ejemplo: Hacer un algoritmo que

encuentre la suma y el promedio de un grupo de datos positivos que entran de a uno por registro.

Page 27: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJEMPLOSEjemplo (ejemplo resuelto N°18 libro Efrain Oviedo - modificado):Para cada de los estudiantes de una universidad, donde cada uno cursa 4 materias se tienen los siguientes datos:• Código del estudiante.• Nota materia 1.• Nota materia 2.• Nota materia 3.• Nota materia 4.

Hacer un algoritmo que encuentre y despliegue para cada estudiante el promedio crédito.

Page 28: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJEMPLOSEjemplo 2 (ejemplo resuelto N°20 libro Efrain Oviedo):En un supermercado un ama de casa pone en su carrito los artículos que va tomando de los estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado; por lo cual cada vez que ella compra un articulo distinto le coloca un código numérico mayor que 0, anota la cantidad de artículos iguales y su precio y, determina cuanto dinero gastara en este articulo; a esto le suma lo que iría gastando en los demás artículos, hasta que decide que ya tomo lo que necesitaba. Hacer un algoritmo que le muestre a la señora el código del articulo, la cantidad de artículos de cada especie, el importe total por articulo y el importe total de la compra.

Page 29: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN HAGA

• La instrucción HAGA es como la instrucción MIENTRAS solo que a diferencia de esta maneja la inicialización y decremento de manera automática.

Page 30: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN HAGA (2)Condicion: A diferencia del caso MIENTRAS, en el HAGA la condición es manejada de manera automática de tal manera que cuando el valor de VC supera (o es menor en el caso contrario) al valor de LF se sale del ciclo:• VC: Variable de control del ciclo.• LI: Valor inicial de VC.• LF: Valor final de VC.• INC: Valor de incremento o disminución de la variable de control

Instrucciones: Conjunto de sentencias que se encuentran dentro del bloque del ciclo, ejemplo:• a = 3• z = z + 1

Bloque del ciclo

Page 31: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN HAGA (2)

Page 32: ESTRUCTURAS REPETITIVAS El que entendió entendió

INSTRUCCIÓN HAGA (3)PARA HACER:• Hace lo mismo que en el caso de la instrucción mientras.

Page 33: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJERCICIOS DE REPASO

Ejercicios:1. Hacer un algoritmo que se ejecute hasta que el

usuario introduzca una velocidad mayor que VMAX (asuma VMAX igual a 80). El algoritmo al final debe indicar que se excedió la velocidad y la cantidad en la cual la velocidad máxima fue excedida.

2. Hacer un algoritmo que cuente el numero de automóviles. El conteo se debe realizar por medio de una bandera.

Page 34: ESTRUCTURAS REPETITIVAS El que entendió entendió

EJERCICIOS DE REPASO

3. Dadas N notas de un estudiante del curso de Informática 1, calcular:– Cuantas notas tiene perdidas.– Cuantas notas tiene ganadas.– Cual es el promedio de notas.– Cual fue la menor nota.– Cual fue la mayor nota.

4. Elabore un algoritmo que lea un numero entero n y que imprima todos los múltiplos de 3 hasta n.

5. Elaborar un algoritmo que encuentre el mayor de un grupo de datos positivos.

Page 35: ESTRUCTURAS REPETITIVAS El que entendió entendió

MAS EJERCICIOS DE REPASO

6. Dados N valores, diseñe un algoritmo que haga el siguiente proceso:– Si el valor es menor que cero, calcular su cubo.– Si el valor esta entre 0 y 100, calcular su cuadrado.– Si el valor esta entre 101 y 1000 calcular su raiz

cuadrada.

Page 36: ESTRUCTURAS REPETITIVAS El que entendió entendió