43
ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Embed Size (px)

Citation preview

Page 1: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

ESTRUCTURAS REPETITIVAS CICLOS O BUCLES

EL MIENTRAS Y EL PARA

Page 2: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

AGENDA DEL DIA

• Repaso condicionales.• Concepto de ciclos.• Estructura mientras.• Estructura para.• Variables(Contador-Acumulador).• Ejemplos• Esquemas de solución(Cualitativo-Cuantitativo)

Page 3: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

CONDICIONALES

DIAGRAMA DE FLUJO PSEUDOCODIGO

Page 4: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

CONDICIONALES - ESCENARIOS

Alabado sea Chuck

Norris.

Page 5: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

CONCEPTO DE CICLO

•¿Que es un ciclo?Se llaman problemas repetitivos o cíclicos a aquellos en

cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se clasifican en:

MIENTRAS, PARA Y REPITA

Page 6: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

¿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 7: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

¿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 8: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

¿QUE ES UN CICLO?

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

10000 números. EL PROBLEMA SERIA PEOR PARA CONTAR ESTA CANTIDAD!????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 9: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

¿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) PARA suma = suma + i FIN_MIENTRASFINFin(suma_numeros_ciclos)

Page 10: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

EL MIENTRASEsta es una estructura que repetira un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:

CUERPO DEL

CICLO

CONDICION

SI

NO

Hacer mientras <condición>

Accion1

Accion2 .

.

AccionNFin-mientras

Page 11: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN MIENTRAS (3)

DIAGRAMA DE FLUJO PSEUDOCODIGO

Page 14: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN MIENTRAS (6)Ejemplo1.dfd

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

Page 16: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN MIENTRAS (7)

Ejemplo2.dfd

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

Page 17: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

total_boletos total_recolectado

VIP: $7000

Normal: $5000

Page 18: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 19: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 20: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 21: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

EJEMPLOS

EJEMPLO:

Hacer un algoritmo que lea 5 números y determine la suma entre ellos.

INICIOENTERO: N, i, SUMAi=1SUMA=0MIESTRAS(i <=5) HAGAMOSTRAR( 'DIGITE UN NUMERO')LEER (N)SUMA= SUMA+Ni= i+1FIN MIENTRASMOSTRAR ('LA SUMA ES:', SUMA)FIN

Como vemos en la condición al principio se cumple, pero como i se va incrementando, al llegar hacer mayor que 5 se sale del mientras y termina la ejecución.

Page 22: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

EJEMPLOSEl algoritmo anterior modificado para que obtenga el promedio de los 5 números.

INICIOENTERO: N,i, SUMAREAL: PROMEDIOi=1SUMA=0MIENTRAS (i <=5) HAGAMOSTRAR ('DIGITE UN NUMERO')LEER (N)SUMA=SUMA+Ni=i+1PROMEDIO=SUMA/5FIN MIENTRAS.MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)FIN

Page 23: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Realizar un algoritmo para sumar consecutivamente y cuando la suma sea superior a 100 deje de pedir números y muestre el total.

INICIOENTERO: N SUMASUMA=0MIENTRAS(SUMA<=100)MOSTRAR ('DIGITE UN NUMERO')LEER(N)SUMA=SUMA+NFIN MIENTRASMOSTRAR ('LA SUMA ES:', SUMA)FIN

EJEMPLOS

Page 24: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Algoritmo que permita obtener el promedio de la cantidad de números que el usuario desee digitar, preguntando ademas si desea continuar o no.

INICIOENTERO: SUMA, CONTADOR, NCADENA: DECISIÓNDECISIÓN = 'SI'SUMA= 0CONTADOR=0MIENTRAS(DECISIÓN = 'SI') HAGAMOSTRAR('DIGITE UN NUMERO')LEER(N)SUMA= SUMA+NCONTADOR=CONTADOR+1MOSTRAR('DESEA CONTINUAR')LEER(DECISIÓN)FIN MIENTRASPROMEDIO=SUMA/CONTADORMOSTRAR('EL PROMEDIO ES:', PROMEDIO)FIN

EJEMPLOS

Page 25: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Realizar un algoritmo que pida al usuario digitar un color y lo muestre, pero cuando el usuario digita el color rojo se termine y lo indica.

INICIOCADENA: COLORCOLOR= ''MIENTRAS( COLOR <> 'ROJO') HAGAMOSTRAR('DIGITE COLOR')LEER(COLOR)MOSTRAR('EL COLOR ES:', COLOR)FIN MIENTRASMOSTRAR('HA FINALIZADO')FIN

EJEMPLOS

Page 26: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Estos son algunos ejemplos y ejercicios del ciclo mientras.Todo esto nos sirve en la vida cotidiana para encontrar varias formas de encontrarle la solución a un problema y en un futuro para hacer buenos programas con las condiciones y requisitos que nos lo pida el usuario.

Page 27: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

ESTRUCTURA PARA

DIAGRAMA DE FLUJO PSEUDOCODIGO

Donde:V.C Variable de control del cicloL.I Limite inferirL.S Limite superior

Page 28: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN PARA

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

Page 29: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN PARA (2)Condicion: A diferencia del caso MIENTRAS, en el PARA 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 30: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

INSTRUCCIÓN PARA (2)

Page 31: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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

Page 32: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Un algoritmo que lea 5 numeros dados por un usuario y luego muestra el resultado de la suma.

INICIOENTERO: N, i, SUMASUMA=0PARA(i= 1 HASTA ,5 , 1)MOSTRAR ('DIGITE UN NUMERO')LEER (N)SUMA= SUMA+NFIN PARAMOSTRAR ('LA SUMA ES:', SUMA)FIN

Donde 5 son las veces que quiero que se repita la pregunta y 1 de cuanto en cuanto se incrementa, en este casa de 1 en 1.

EJEMPLOS

Page 33: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Un algoritmo que muestre los pares que hay entre 1 y N.

 INICIOENTERO: N, iMOSTRAR ('DIGITE NUMERO')LEER (N)PARA( i= 2 HASTA N, 2)MOSTRAR (LOS NUMERO PARES SON:', i)FIN PARAFIN.

EJEMPLOS

Page 34: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Un algoritmo que reciba un dato y lo calcule y muestre el factorial.

INICIOENTERO: N,i, FACTORIALMOSTRAR ('DIGITE UN NUMERO')LEER(N)FACTORIAL=1PARA( i= 1, HASTA , N, 1)FACTORIAL= FACTORIAL* iFIN PARAMOSTRAR ('EL FACTORIAL ES:', FACTORIAL)FIN

EJEMPLOS

Page 35: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

EJEMPLOSUn algoritmo que permita mostrar los números primos existentes entre 1 y N.

INICIOENTEROS:N,i,PRIMO,jMOSTRAR('DIGITE HASTA Q NUMERO DESEA VER NUMEROS PRIMOS')LEER:(N)PARA(i=1, N,1)PRIMO:1SI ((i=1)OR(i=2)OR(i=3))MOSTRAR(i,' ES NUMERO PRIMO')SINOPARA(j=2,i-1,1)SI((i MOD j)!=0)PRIMO=PRIMO+1SI(PRIMO=i-1)MOSTRAR(i,' ES NUMERO PRIMO')FIN SIFIN SIFIN PARAFIN PARAFIN

Page 36: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

Un algoritmo que permita ingresar N datos correspondientesal genero de N, numero de personas y determine el porcentaje de hombres y mujeres que hay.INICIOENTEROS:N,i,SEXOREALES:M,FMOSTRAR:('DIGITE N° DE PERSONAS')LEER:(N)M=0F=0PARA(i,1,N,1)MOSTRAR:('DIGITE SEXO 1 MASCULINO, 2 PARA FEMENINO')LEER:(SEXO)SI (SEXO=1)M=M+1SINOF=F+1FIN PARAF=(F*100)/NM=(M*100)/NMOSTRAR:('EL PORCENTAJE DE MUJERES ES: ',F)MOSTRAR:('EL PORCENTAJE DE HOMBRES ES: ',M)FIN

EJEMPLOS

Page 37: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 38: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

ESCRIBA(‘Digite el ...’)LEA(N)PARA (i=1:N:1) PARA ...FIN_PARA

ESCRIBA(‘Digite el dato...’)LEA(d)MIENTRAS (d != -1) PARA ... ESCRIBA(‘Digite el dato...’) LEA(d)FIN_PARA

ESCRIBA(‘Digite 1 si...’)LEA(ban)MIENTRAS (ban == 1) PARA ... ESCRIBA(‘Digite 1 si...’) LEA(ban)FIN_PARA

Page 39: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 40: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 41: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 42: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

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 43: ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA

ACTIVIDAD

•REPRESENTAR LOS EJEMPLOS DE LOS ALGORITMOS DE LAS GUIA SENA DE ALGORITMOS CORRESPONDIENTES A LAS PAGINAS 45, 46, 47 USANDO PARA ESTO EL CICLO MIENTRAS EN PSEUDOCODIGO Y DIAGRAMA DE FLUJO•RESOLVER

•RESOLVER DE LA GUIA SENA DE ALGORITMOS LOS EJERCICIOS

PROPUESTOS DE LA PAGINA 48. USANDO PARA ESTO EL CICLO PARA EN PSEUDOCODIGO Y DIAGRAMA DE FLUJO.

•RESOLVER DE LA GUIA SENA DE ALGORITMOS LOS EJERCICIOS PROPUESTOS DE LA PAGINA 49 Y 50. USANDO PARA ESTO EL CICLO MIENTRAS EN PSEUDOCODIGO Y DIAGRAMA DE FLUJO