La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ESTRUCTURAS REPETITIVAS El que entendió entendió.

Presentaciones similares


Presentación del tema: "ESTRUCTURAS REPETITIVAS El que entendió entendió."— Transcripción de la presentación:

1 ESTRUCTURAS REPETITIVAS El que entendió entendió

2 MENU DEL DIA Recorderis clase anterior Ciclos

3 RECORDERIS CLASE ANTERIOR Condicionales condición Instrucciones falso Instrucciones verdadero SI (condición) Instrucciones_verdadero DE_LO_CONTRARIO Instrucciones_falso FIN_SI

4 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 Solución: – Codificación a mano: ejemplo_repaso1.txt – Codificación en pseint: ejemplo_repaso1 Nota: En estas diapositivas se muestra la codificación del ejemplo a mano levemente modificado (Solamente en los mensajes de escriba) para que cupiera

5 EJEMPLO REPASO 1 algoritmo (ejemplo1) variables: entero: respuesta INICIO ESCRIBA(' ') ESCRIBA('QUIEN QUIERE SER MILLOSNARIO') ESCRIBA(' ') ESCRIBA('Hola, les habla Pablo Laserna Philips') ESCRIBA('A las siguientes preguntas digite 1 si la respues es si o 0 si es no') ESCRIBA('1. Simon Bolivar liberto a Colombia?') LEA(respuesta) SI(respuesta == 1) ENTONCES ESCRIBA('2. Camilo Torres fue un guerrillero?') LEA(respuesta) SI(respuesta == 1) ENTONCES ESCRIBA('3. El binomio de oro es un grupo de musica vallenata?') LEA(respuesta) SI(respuesta == 1) ENTONCES ESCRIBA('Felicitaciones, gano una lechona') SI_NO ESCRIBA('Hay que lastima, solo gana un pase para ver alumbrados en chiva') FIN_SI SI_NO ESCRIBA('Hay que lastima,tome un pase para que vaya a pollos Mario') FIN_SI SI_NO ESCRIBA('Lamentablemente ha sido eliminado, tome una porción de natilla') FIN_SI FIN_INICIO fin(ejemplo1)

6 EJEMPLO REPASO 1

7 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 -20% % % 11 en adelante20% Solución: -Codificación en pseint: ejemplo_repaso2

8 EJEMPLO REPASO 2 Si ((numApples>=0) & (numApples<=2)) Entonces descuento<-0; Sino Si numApples<=5 Entonces descuento<-0.1; Sino Si numApples<=10 Entonces descuento<-0.15; Sino descuento<-0.2; FinSi total<-total - descuento*total;

9 EJEMPLO REPASO 2

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

11 ¿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).

12 ¿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 = 0 INICIO suma = ESCRIBA(La suma de los primeros 10 numeros es,suma) FIN Fin(suma_numeros)

13 ¿QUE ES UN CICLO? Siguiendo mi solución anterior Y si el problema cambia a los primeros números. No puede ser, nooooo!!! Algoritmo(suma_numeros) variables: entera: suma = 0 INICIO suma = ESCRIBA(La suma de los primeros 10 numeros es,suma) FIN Fin(suma_numeros)

14 ¿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 = 0 INICIO MIENTRAS (i < numeroFinal) HAGA suma = suma + i i = i + 1 FIN_MIENTRAS FIN Fin(suma_numeros_ciclos)

15 INSTRUCCIÓN MIENTRAS (1) Esta condición repite el cogido (secuencia) contenido adentro siempre que la condición (expresión) sea verdadera.

16 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

17 INSTRUCCIÓN MIENTRAS (3) DIAGRAMA DE FLUJOPSEUDOCODIGO

18 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.

19 INSTRUCCIÓN MIENTRAS (6) Archivos: Dfd: ejemplo1.dfd. Pseint: ejemplo1 Algoritmo(ejemplo1) variables: entera: b = 2, a = 4 INICIO MIENTRAS (a < 10) HAGA a = a + 1 b = (-2)*b FIN_MIENTRAS FIN Fin(ejemplo1)

20 INSTRUCCIÓN MIENTRAS (7) Algoritmo(ejemplo2) variables: entera: b = 2, a = 4 INICIO MIENTRAS (a < 10) HAGA a = a + 2 b = (-2)*b FIN_MIENTRAS FIN Fin(ejemplo2) Archivos: Dfd: ejemplo2.dfd Pseint: ejemplo2

21 INSTRUCCIÓN MIENTRAS (8) Algoritmo(ejemplo3) variables: entera: b = 2, a = 4 INICIO MIENTRAS (a >= -10) HAGA a = a - 3 b = (-2)*b FIN_MIENTRAS FIN Fin(ejemplo3) Archivos: Dfd: ejemplo3.dfd. Pseint: ejemplo3

22 INSTRUCCIÓN MIENTRAS (9) Algoritmo(ejemplo4) variables: entera: b = 2, a = 4 INICIO MIENTRAS (a < 10) HAGA b = (-2)*b FIN_MIENTRAS FIN Fin(ejemplo4) Archivos: Dfd: ejemplo4.dfd. Pseint: ejemplo4

23 CONTADORES Ejemplo: Hacer un algoritmo que vaya incrementando una variable que empieza en cero 0 y termina en 9, debe mostrar cada incremento (ejemplo5). CONTADOR Un contador es una variable que se incrementa o disminuye en un valor constante. Un contador tiene la siguiente forma: contador = contador + Algunos ejemplos: j = j + 2 i = i – 1 carros = carros + 1

24 CONTADORES Ejemplo: Hacer un algoritmo que vaya incrementando una variable que empieza en cero 0 y termina en 9, debe mostrar cada incremento (ejemplo5). algoritmo(ejemplo5) variables: entera: i = 0 INICIO MIENTRAS (i < 10) HAGA i = i + 1 ESCRIBA(i va en,i) FIN_MIENTRAS FIN Fin(ejemplo5)

25 ACUMULADORES Ejemplo: Modifique el ejemplo anterior de tal manera que realice la suma de los 10 primeros números (ejemplo 6). ACUMULADOR Un 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 + Algunos ejemplos: acum = acum + i suma= suma + algo resta = resta + algo cerveza = cerveza + tragos

26 ACUMULADORES Ejemplo: Modifique el ejemplo anterior de tal manera que realice la suma de los 10 primeros números (ejemplo 6). algoritmo(ejemplo6) variables: entera: i = 0,suma = 0 INICIO MIENTRAS (i < 10) HAGA suma = suma + i ESCRIBA(i va en :,i, y la suma en:,suma) i = i + 1 FIN_MIENTRAS FIN Fin(ejemplo5)

27 CONTADORES Y ACUMULADORES Nota: Antes de ser usados, tanto los contadores como los acumuladores deben ser inicializados a un valor conocido (generalmente 0). dinero_Homero dinero_Moe barriles_cerveza t_cerveza_vendida kw_hora_consumidos Total_kw

28 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. Problema Esquema cuantitativo Esquema cualitativo

29 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.

30 ESQUEMA CUANTITATIVO Ejemplo: Realizar un algoritmo que sume N números introducidos por teclado. algoritmo(ejemplo7) variables: entera: N, i = 0 real: suma = 0, num INICIO ESCRIBA(Digite la cantidad de números a leer: ) LEA(N) MIENTRAS (i < N) HAGA ESCRIBA(Digite el numero: ) LEA(num) suma = suma + num i = i + 1 FIN_MIENTRAS ESCRIBA(La suma de los numeros metidos da:,suma) FIN Fin(ejemplo7)

31 ESQUEMA CUANTITATIVO Ejemplo: Realizar un algoritmo que sume N números introducidos por teclado.

32 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.

33 ESQUEMA CUALITATIVO 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.

34 ESQUEMA CUALITATIVO – SOLUCION PREGUNTANDO ANTES DE CADA ITERACION algoritmo(impuestos1) variables: entera: total = 0, recaudo, ban INICIO ESCRIBA(Digite 1 si hay un judio a quien cobrarle u otra cosa si no: ) LEA(ban) MIENTRAS (ban == 1) HAGA ESCRIBA(Meta el recaudo: ) LEA(recaudo) total = total + recaudo ESCRIBA(Digite 1 si hay un judio a quien cobrarle u otra cosa si no: ) LEA(ban) FIN_MIENTRAS ESCRIBA(El total de impuestos recolectados fue de:,total) FIN Fin(impuestos1) El control del bucle usando este método se realiza preguntando al usuario si existen mas datos.

35 ESQUEMA CUALITATIVO – SOLUCION PREGUNTANDO ANTES DE CADA ITERACION El control del bucle usando este método se realiza preguntando al usuario si existen mas datos. (Archivo pseint: ejemplo8).

36 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. algoritmo(impuestos2) variables: entera: total = 0, recaudo INICIO ESCRIBA(Digite el valor del recaudo o -1 para terminar: ) LEA(recaudo) MIENTRAS (recaudo > -1) HAGA total = total + recaudo ESCRIBA(Digite el valor del recaudo o -1 para terminar: ) LEA(recaudo) FIN_MIENTRAS ESCRIBA(El total de impuestos recolectados fue de:,total) FIN Fin(impuestos2)

37 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. (Archivo pseint: ejemplo9).

38 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 enteros positivos que entran de a uno por registro.

39 ESQUEMA CUALITATIVO – HACIENDO USO DE UN REGISTRO CENTINELA Ejemplo: Hacer un algoritmo que encuentre la suma y el promedio de un grupo de datos enteros positivos que entran de a uno por registro. algoritmo(datos) variables: entera: suma = 0, dato, numdatos = 0 real: prom INICIO ESCRIBA(Digite el dato o -1 para terminar: ) LEA(dato) MIENTRAS (dato > -1) HAGA suma = suma + dato numdatos = numdatos + 1 ESCRIBA(Digite el dato o -1 para terminar: ) LEA(dato) FIN_MIENTRAS prom = suma/numdatos ESCRIBA(Suma:,suma) ESCRIBA(Promedio:,prom) FIN Fin(impuestos2)

40 ESQUEMA CUALITATIVO – HACIENDO USO DE UN REGISTRO CENTINELA Archivo pseint: ejemplo10

41 EJEMPLOS Ejemplo (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. Archivo pseint: ejemplo11

42 EJEMPLOS

43 Ejemplo 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. Archivo pseint: ejemplo12

44 EJEMPLOS

45 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.

46 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

47 INSTRUCCIÓN HAGA (2)

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

49 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.

50 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.

51 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.

52


Descargar ppt "ESTRUCTURAS REPETITIVAS El que entendió entendió."

Presentaciones similares


Anuncios Google