33
Fundamentos de Programación Iteraciones

Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Embed Size (px)

Citation preview

Page 1: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Fundamentos de ProgramaciónIteraciones

Page 2: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo.

Los ciclos permiten que una o más sentencias de código se repitan hasta que una condición deje de cumplirse, es muy similar a lo que sucede con un conductor de la formula uno, el cual estará dando vueltas hasta que la cantidad de vueltas que ha dado deje de ser insuficientes para ganar la carrera, dicho en un lenguaje más informático si la cantidad de vueltas que debe dar el vehículo son diez, podremos expresarlo como mientras la cantidad de vueltas sea menor a 10, entonces debe seguir corriendo.

Page 3: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo.

Veamos un ejemplo de uno de los ciclos más utilizados, el cual recibe como nombre el ciclo “mientras” al que de ahora en adelante lo conoceremos por su traducción al inglés while.

While

int vuelta = 0;while(vuelta < 10) {

vuelta++; } tiempo++;

Page 4: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - While

Aquí la ejecución ocurrirá de la siguiente forma, lo primero que hará while será evaluar si el valor de la variable vuelta es o no menor a 10, si el valor fuese por ejemplo 11, la condición no se cumplirá y para este caso se comportará muy similar al if dejando de ejecutar todo lo que se encuentre entre el inicio y cierre de bloques, de manera que la variable vuelta no se incremente, sin embargo si el valor es 8, la condición será verdadera lo que provocará que si se ejecute todo lo que esta dentro de los bloques haciendo entonces el incremento de la variable.

Page 5: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - While

Cuando haya finalizado el incremento el while, a diferencia del if, no pasará directo a incrementar el tiempo, dado que cuando alcance el cierre de bloque volverá a preguntar por el valor de vuelta, el cual será 9 y dado que 9 aún es menor que 10 entonces while volverá a ejecutarse, incrementando el valor de vuelta en uno, al llegar al final de bloque nuevamente se va a evaluar si vuelta es menor a 10, esta vez la condición no se cumple y es entonces cuando el ciclo termina para dar paso al incremento del tiempo.

Page 6: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo

For Existen varias estructuras que permiten iterar una o más líneas de código, el ciclo for es uno de ellos, pero antes de continuar, es importante aclarar que si bien entre ellos existen diferencias todos tienen el mismo objetivo, por ende no existirá nunca una limitante para uno u otro, pudiendo utilizar cualquiera de ellos cuando se necesite iterar, sin embargo cada uno tiene una estructura y sintaxis diferente, el criterio de selección estará dado principalmente por el que te acomode más y de las necesidades que tengas.

Page 7: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

Volvamos al ejemplo de las vueltas en una pista de carreras. En aquel ejemplo el while tiene por misión cerciorarse de que la variable vuelta llegue a 10, pero dentro de su estructura no se preocupa del valor inicial de la variable por lo que se debe poner como instrucción adicional antes del while.

int vuelta=0; while(vuelta<10) {

vuelta++; } tiempo++;

Page 8: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

El ciclo while cumple a la perfección con nuestro propósito, sin embargo en el algoritmo hay 3 elementos a considerar: primero hay una inicialización se variable, la cual hemos agregado recientemente al solicitar que vuelta siempre comience en cero, luego tenemos una condición y un incremento, para este tipo de casos el for es principalmente provechoso dado que permite escribir de forma muy cómoda estos tres elementos. Veamos como luce este while convertido en un cliclo for.

Page 9: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

for(int vuelta=0; vuelta<10;vuelta++) {

} tiempo++;

Como se puede ver este ciclo contiene los tres elementos como parte de la declaración del ciclo, por ende el cuerpo de este ha quedado vacío, ya que hemos cambiado la lógica de incremento de la variable a otro lugar.

Page 10: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

La forma de ejecutarse no es igual que en while, para que lo entendamos mejor vamos a decir que el for está dividido en partes:• La primera es una declaración, en la cual declaramos e

inicializamos el valor de la variable vuelta.• La segunda es la condición en la que decimos que vuelta no

debe ser mayor a 10 y finalmente, • La tercera, una sección donde incrementamos el valor de la

variable vuelta en uno.

Page 11: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

En resumen, la forma en la que el ciclo for funciona es la siguiente: • Lo primero que ocurre es la declaración e inicialización, con

esto se asegura de que la variable exista y tenga un valor inicial. Esta sección sólo se ejecuta una vez.

• El siguiente paso es verificar si luego de la inicialización de la variable la condición se cumple, de cumplirse ejecutará todo lo que este entre los inicios y cierre de bloques, el cual tenemos vacío por ahora.

Page 12: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

• Al igual que el while el for intentará hacer una iteración, pero sólo a partir de la segunda vuelta y hasta que termine lo que hará es primero ejecutar la sección de incremento, haciendo que vuelta pase de cero a uno para luego verificar si la condición aún se cumple. De cumplirse volverá a ejecutar todo lo que se encuentre entre el inicio y cierre de bloques, al finalizar nuevamente hará el incremento y luego evaluará la condición. Este proceso se repetirá hasta que la condición ya no se cumpla.

Page 13: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

Por ejemplo, contemos la cantidad de bencina que gasta por cada vuelta almacenándola en una variable llamada consumo.

int consumoPorVuelta = 0; for(int vuelta=0; vuelta<10; vuelta++) {

consumo += consumoPorVuelta; } tiempo++;

Page 14: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

El ciclo for se puede adaptar a varias situaciones gracias a que cualquiera de sus partes puede ser omitida, en el siguiente ejemplo la declaración e inicialización de la variable es quitada del for y declarada antes.

int vuelta=0; for( ; vuelta<10 ; vuelta++) {

}

Page 15: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

Así podemos entonces obtener un for cuyo comportamiento es idéntico al de un while.

int vuelta=0; for( ; vuelta<10; ) {

vuelta++; }

En este caso este for ha quedado exactamente como el ciclo while que vimos en un comienzo. Podrá parecer extraño pero incluso la condición puede ser omitida, sin embargo eso nos obliga a tener que agregar a nosotros una forma de quebrar el ciclo para que no este iterando de forma indefinida.

Page 16: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo - for

Sobre los quiebres de ciclos se hablará más adelante en la sección de break y continues, pero por ahora como demostración de que todas las partes son opcionales lo haremos analizando el siguiente ejemplo:

for(; ; ;) {

} En este extraño caso no hay ninguna de las partes, la ausencia de una condición da por defecto falso, así que luego de comprobar que no hay nada que inicializar, evaluará falso y omitirá la ejecución del ciclo for.

Page 17: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo

Do … While.

Si del ciclo do while traducimos la palabra do veremos que significa “hacer”, pues esta es la principal diferencia con el ciclo while que vimos en una primera oportunidad, la condición es evaluada al final, es decir que toda la lógica agregada entre los inicios y cierres de bloque se ejecutará siempre al menos una vez. Supongamos ahora que el vehículo de carreras debe dar 10 vueltas seguidas para hacer reconocimiento de la pista de forma obligatoria, pero si ya ha dado 10 entonces sólo se le permitirá dar una.

Page 18: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – do while

do { vuelta++;

} while(vuelta<10);

Como se puede ver, la condición se encuentra al final, por lo tanto lo primero que sucederá es incrementar el número de vueltas en uno, sin ninguna condición que pueda evitarlo.

Page 19: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – do while

Supongamos que el valor de la variable acaba de incrementarse a 8, por lo tanto el corredor debe de forma obligatoria completar sus 10 vueltas, dado que 8 es menor a 10 la condición se hace verdadera dando paso a una nueva ejecución del bloque incrementando el valor de la variable a 9, con este valor la condición vuelve a evaluarse siendo verdadera dado que aún es menor a 10, en su última iteración la variable se incrementa a 10 y la condición se vuelve falsa, saliendo así del ciclo.

Page 20: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – do while

Sin embargo, la diferencia está dada en que si se vuelve a ejecutar este ciclo con un valor de 10 o superior, con un while el vehículo no hubiese sido aceptado, sin embargo con este ciclo no se evalúa la cantidad de vueltas al comienzo, por lo que las sentencias de código se ejecutarán haciendo que vuelta sea 11, luego de la primera ejecución el ciclo evaluará si debe proseguir, como la condición es falsa, el vehículo no dará una segunda vuelta.

Page 21: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

1. Leer 10 números e imprimir solamente los números positivos.

Page 22: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

2. Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos son ceros.

Page 23: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

3. Leer 15 números negativos, convertirlos a positivos e imprimir dichos números.

Page 24: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

4. Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación más baja de todo el grupo.

Page 25: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

5. Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto.

Page 26: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

6. Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas.

Page 27: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

7. Una compañía de seguros tiene contratados a N vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base y un 10% extra por comisiones de sus ventas. El gerente de la compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas y cuanto le corresponderá tomando en cuenta su sueldo base y sus comisiones.

Page 28: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

8. Diseñe un algoritmo que determine cuantos hombres y cuantas mujeres se encuentran en un grupo de N personas. Suponga que los datos son extraídos persona por persona.

Page 29: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

9. Obtener el promedio de calificaciones de un grupo de n alumnos.

Page 30: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

10. Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés mensual. ¿Cuál será la cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es reinvertida?.

Page 31: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

11. Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

Page 32: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

12. Encontrar el menor y el mayor valor de un conjunto de n números dados.

Page 33: Fundamentos de Programación Iteraciones. Sentecias de ciclo iterativo. Los ciclos permiten que una o más sentencias de código se repitan hasta que una

Sentecias de ciclo iterativo – EJERCICIOS

13. Un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Categorías Edad Descuento Categoría 1 5 - 14 35 % Categoría 2 15 - 19 25 % Categoría 3 20 - 45 10 % Categoría 4 46 - 65 25 % Categoría 5 66 en adelante 35 %