Sei sulla pagina 1di 16

Estructuras Repetitivas y Esquemas Algortmicos

Fundamentos de Programacin Ingeniera Informtica en Sistemas de Informacin


Alicia Troncoso
1

Contenido
Estructura repetitivas: Bucles l Esquemas algortmicos: Recorrido y Bsqueda l Sentencia while l Sentencia for l Sentencia do-while l Comparacin
l

Estructuras repetitivas: Bucles


Los bucles permiten a un programa repetir la ejecucin de una sentencia un cierto nmero de veces. l Permiten codificar instrucciones del tipo:
l
l

l l

Mientras queden juguetes en el suelo, coge un juguete y gurdalo. Copia 100 veces No hablar en clase. Echa un tronco a la chimenea y mientras el leero tenga troncos contina echando.
3

Estructuras repetitivas: Bucles


Los bucles habitualmente trabajan con secuencias finitas:
l l l

Existe un primer elemento y una forma de acceder a l Existe una forma de pasar de un elemento al siguiente Existe una manera de identificar si un elemento es el ltimo

Esquemas algortmicos: recorrido y bsqueda


Existen dos esquemas fundamentales de bucles que trabajan con una secuencia:
l

Recorrido: Pasa por todos los elementos de la secuencia. Sabemos el nmero de iteraciones con antelacin Bsqueda: Pasa por los elementos de la secuencia hasta que encuentra alguno que satisface una determinada condicin.
5

Sentencia while
while (condicin) { sentencia_1; sentencia_n; }

Cuerpo

1. Evala la condicin 2. Si la condicin es verdadera ejecuta el bloque de sentencias y vuelve a paso 1. 3. En caso contrario pasa a ejecutar la sentencia que se encuentra despus del cuerpo.
6

Ejemplo
Programa que muestra 123 veces Hola mundo.

Esquema de recorrido
inicializar_secuencia; while (!final_de_secuencia) { procesar_elemento; pasar_a_siguiente; }

Ejemplo
Programa que pregunta un entero n y muestra el valor de la suma de los enteros desde el 1 hasta el n.

Esquema de bsqueda
inicializar_secuencia; int encontrado = 0; while (!encontrado && !final_de_secuencia) { if (cumple_condicion_busqueda) encontrado = 1; pasar_a_siguiente; } if (encontrado) tratar_exito; else tratar_fracaso;

10

Ejemplo
Programa que pregunta un nmero y nos muestra si es primo o no

11

Sentencia for
for (inicializacin ; condicion_iteracin ; incremento){ sentencias } La sentencia for es equivalente al siguiente cdigo: inicializacin; while (condicin_iteracin) { sentencias; incremento; }

Por lo tanto es muy adecuada para implementar recorridos.


12

Ejemplo 1
Programa que muestra 123 veces Hola mundo.

13

Ejemplo 2
Programa que pregunta un entero n y muestra el valor de la suma de los enteros desde el 1 hasta el n. PARA PENSAR: Cmo harais con un for el programa que pregunta un nmero y nos muestra si es primo o no? Es sencillo? Por qu?

14

Sentencia do-while
do { sentencias } while (condicin) La sentencia while es equivalente al siguiente cdigo: while (expresin) { sentencias } Diferencia: El cuerpo se ejecuta siempre al menos una vez.
15

Comparacin de bucles
while
- Adecuada para bsquedas - El cuerpo puede no ser ejecutado - La verificacin de la condicin precede a la ejecucin del cuerpo - Adecuado para recorridos - La verificacin de la condicin precede a la ejecucin del cuerpo - Adecuado en el caso de que debamos garantizar que el cuerpo del bucle se ejecuta por lo menos en una ocasin.
16

for

dowhile

Potrebbero piacerti anche