SlideShare ist ein Scribd-Unternehmen logo
1 von 66
1
Capítulo 13
INSTRUCCIONES DE CONTROL REPETITIVAS
Presentación resumen del libro:
"EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Autor: Carlos Javier Pes Rivas (correo@carlospes.com)
2
OBJETIVOS
• Conocer las instrucciones de control repetitivas, y saber hacer
uso de ellas.
• Aprender a anidar instrucciones de control repetitivas.
– Ya se ha estudiado que las instrucciones de un algoritmo pueden
ejecutarse secuencialmente. Por otra parte, puede darse el caso de
que unas instrucciones se ejecuten y otras no, utilizando
instrucciones alternativas. Pero, ¿cómo se puede hacer que un
bloque de instrucciones se ejecute más de una vez?
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3
CONTENIDO
13.1 INTRODUCCIÓN
13.2 INSTRUCCIONES REPETITIVAS
13.3 ¿CUÁNDO USAR UN BUCLE U OTRO?
13.4 ANIDAMIENTO
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
4
13.1 INTRODUCCIÓN
• Las instrucciones que se utilizan para diseñar algoritmos se pueden
clasificar en:
– Primitivas
– De control
– Llamadas a subalgoritmos (llamadas a subprogramas)
• Las instrucciones de control se clasifican en:
– Alternativas (selectivas)
– Repetitivas (iterativas)
– De salto (de transferencia)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
5
13.2 INSTRUCCIONES REPETITIVAS (1/37)
• Una instrucción de control repetitiva permite ejecutar una o más
instrucciones varias veces. Existen tres tipos:
– Mientras
– Hacer...mientras
– Para
• A las instrucciones repetitivas también se las conoce como bucles,
ciclos o lazos.
• Sintaxis de una instrucción repetitiva mientras en pseudocódigo:
mientras ( <expresión_lógica> )
<bloque_de_instrucciones>
fin_mientras
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
6
13.2 INSTRUCCIONES REPETITIVAS (2/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Para que se ejecute el <bloque_de_instrucciones>, la condición tiene
que ser verdadera. Por el contrario, si la condición es falsa, el
<bloque_de_instrucciones> no se ejecuta.
• Cuando el bloque de instrucciones de un bucle se ejecuta, se dice que se ha
producido una iteración.
• El <bloque_de_instrucciones> de un bucle mientras puede
ejecutarse cero o más veces (iteraciones).
• Si el <bloque_de_instrucciones> se ejecuta al menos una vez, seguirá
ejecutándose repetidamente, mientras que, la condición sea verdadera.
Pero, hay que tener cuidado de que el bucle no sea infinito.
• Cuando la condición de un bucle mientras se evalúa siempre a verdadera,
se dice que se ha producido un bucle infinito, ya que, el algoritmo nunca
termina. Un bucle infinito es un error lógico.
• En resumen, una instrucción repetitiva mientras permite ejecutar,
repetidamente, (cero o más veces) un bloque de instrucciones, mientras que,
una determinada condición sea verdadera.
7
13.2 INSTRUCCIONES REPETITIVAS (3/37)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla los primeros diez números naturales:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en pseudocódigo:
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
contador  1 /* Inicialización del contador */
mientras ( contador <= 10 ) /* Condición */
escribir( contador ) /* Salida */
contador  contador + 1 /* Incremento */
fin_mientras
fin
8
13.2 INSTRUCCIONES REPETITIVAS (4/37)
• En el algoritmo se ha utilizado un contador.
• En programación, se llama contador a una variable cuyo valor se
incrementa o decrementa en un valor fijo (en cada iteración de un
bucle).
• Un contador suele utilizase para contar el número de veces que
itera un bucle. Pero, a veces, se utiliza para contar, solamente,
aquellas iteraciones de un bucle en las que se cumpla una
determinada condición.
• Además, en este caso, el valor de la variable contador se ha
visualizado en cada iteración.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
9
13.2 INSTRUCCIONES REPETITIVAS (5/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de una instrucción
repetitiva mientras en
ordinograma:
10
13.2 INSTRUCCIONES REPETITIVAS (6/37)
• Sintaxis de la instrucción while:
while ( <expresión_lógica> )
{
<bloque_de_instrucciones>
}
• Cuando el <bloque_de_instrucciones> sólo contiene una
instrucción, los caracteres abrir llave ({) y cerrar llave (}) son
opcionales.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
11
13.2 INSTRUCCIONES REPETITIVAS (7/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en C:
#include <stdio.h>
int main()
{
int contador;
printf( "n " );
contador = 1; /* Inicialización del contador */
while ( contador <= 10 ) /* Condición */
{
printf( "%d ", contador ); /* Salida */
contador++; /* Incremento */
}
return 0;
}
12
13.2 INSTRUCCIONES REPETITIVAS (8/37)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla los primeros diez números naturales, pero a la
inversa, es decir, del 10 al 1:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en pseudocódigo:
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador  10 /* Cambio 1 */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
contador  contador – 1 /* Cambio 3 */
fin_mientras
fin
13
13.2 INSTRUCCIONES REPETITIVAS (9/37)
• Para que el algoritmo realice la nueva tarea encomendada, ha
sido necesario realizar tres cambios en los aspectos más críticos
del bucle mientras:
1. La inicialización de la variable contador (cambio 1):
necesaria para que la condición pueda evaluarse
correctamente cuando el flujo del algoritmo llega al bucle
mientras.
2. La condición del bucle mientras (cambio 2): afecta al
número de iteraciones que va a efectuar el bucle. También se
la conoce como condición de salida del bucle.
3. La instrucción de asignación (cambio 3): hace variar el valor
de la variable contador dentro del bloque de instrucciones.
De no hacerse correctamente, el bucle podría ser infinito.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
14
13.2 INSTRUCCIONES REPETITIVAS (10/37)
• EJEMPLO. Un pequeño descuido, como por ejemplo, no escribir de
forma correcta la condición del bucle, puede producir un bucle
infinito:
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador  10 /* Cambio 1 */
mientras ( contador <= 10 ) /* Descuido */
escribir( contador )
contador  contador – 1 /* Cambio 3 */
fin_mientras
fin
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
15
13.2 INSTRUCCIONES REPETITIVAS (11/37)
• EJEMPLO. Otro error muy frecuente es inicializar mal la variable
que participa en la condición del bucle:
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador  1 /* Descuido */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
contador  contador – 1 /* Cambio 3 */
fin_mientras
fin
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
16
13.2 INSTRUCCIONES REPETITIVAS (12/37)
• EJEMPLO. También es un error muy típico olvidarse de escribir
alguna instrucción:
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador  10 /* Cambio 1 */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
/* Descuido */
fin_mientras
fin
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
17
13.2 INSTRUCCIONES REPETITIVAS (13/37)
• EJEMPLO. Un bucle mientras puede iterar cero o más veces.
Así, por ejemplo, en el algoritmo siguiente existe un error lógico que
provoca que el bucle no itere ninguna vez:
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
contador  0 /* Descuido */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
contador  contador – 1 /* Cambio 3 */
fin_mientras
fin
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
18
13.2 INSTRUCCIONES REPETITIVAS (14/37)
• En el ejemplo anterior, se ha producido un error lógico, ya que, para
que el bucle iterase diez veces, se debería haber asignado a la
variable contador el valor 10, en vez del 0.
• No obstante, bajo determinadas circunstancias, sí puede tener
sentido hacer uso de un bucle mientras, el cual pueda no iterar
ninguna vez. Por ejemplo, en el siguiente problema.
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
1º) Pida por teclado la nota (dato real) de una asignatura.
2º) En el caso de que la nota sea incorrecta, muestre por pantalla el
mensaje:
– "ERROR: Nota incorrecta, debe ser >= 0 y <= 10“.
3º) Repita los pasos 1º y 2º, mientras que, la nota introducida sea
incorrecta.
4º) Muestre por pantalla:
– "APROBADO", en el caso de que la nota sea mayor o igual que 5.
– "SUSPENDIDO", en el caso de que la nota sea menor que 5.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
19
13.2 INSTRUCCIONES REPETITIVAS (15/37)
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
20
13.2 INSTRUCCIONES REPETITIVAS (16/37)
• Solución:
algoritmo Calificacion_segun_nota
variables
real nota
inicio
escribir( "Introduzca nota (real): " )
leer( nota )
/* Si la primera nota introducida por el usuario
es correcta, el bucle no itera ninguna vez. */
mientras ( nota < 0 o nota > 10 )
escribir( "ERROR: Nota incorrecta, debe ser >= 0 y <= 10" )
escribir( "Introduzca nota (real): " )
leer( nota )
fin_mientras
/* Mientras que el usuario introduzca una nota
incorrecta, el bucle iterará. Y cuando introduzca
una nota correcta, el bucle finalizará. */
si ( nota >= 5 )
escribir( "APROBADO" )
sino
escribir( "SUSPENDIDO" )
fin_si
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
21
EJERCICIOS RECOMENDADOS
• Resueltos: 1, 2 y 3.
• Propuestos: 1, 2 y 3.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
22
13.2 INSTRUCCIONES REPETITIVAS (17/37)
• Sintaxis de una instrucción repetitiva hacer...mientras en
pseudocódigo:
hacer
<bloque_de_instrucciones>
mientras ( <expresión_lógica> )
• En un bucle hacer...mientras, primero se ejecuta el bloque de
instrucciones y, después, se evalúa la condición. En el caso de que
ésta sea verdadera, se vuelve a ejecutar el bloque de instrucciones. Y
así sucesivamente, hasta que, la condición sea falsa.
• El <bloque_de_instrucciones> de un bucle hacer...mientras
puede ejecutarse una o más veces (iteraciones). También hay que
prevenir que el bucle no sea infinito.
• En resumen, una instrucción repetitiva hacer...mientras permite
ejecutar repetidamente (una o más veces) un bloque de instrucciones,
mientras que, una determinada condición sea verdadera.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
23
13.2 INSTRUCCIONES REPETITIVAS (18/37)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla los primeros diez números naturales:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en pseudocódigo:
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
contador  1 /* Inicialización del contador */
hacer
escribir( contador ) /* Salida */
contador  contador + 1 /* Incremento */
mientras( contador <= 10 ) /* Condición */
fin
24
13.2 INSTRUCCIONES REPETITIVAS (19/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de una instrucción
repetitiva hacer...mientras
en ordinograma:
25
13.2 INSTRUCCIONES REPETITIVAS (20/37)
• Sintaxis de la instrucción do...while:
do
{
<bloque_de_instrucciones>
} while ( <expresión_lógica> );
• Cuando el <bloque_de_instrucciones> sólo contiene una
instrucción, los caracteres abrir llave ({) y cerrar llave (}) son
opcionales.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
26
13.2 INSTRUCCIONES REPETITIVAS (21/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en C:
#include <stdio.h>
int main()
{
int contador;
printf( "n " );
contador = 1; /* Inicialización del contador */
do
{
printf( "%d ", contador ); /* Salida */
contador++; /* Incremento */
} while ( contador <= 10 ); /* Condición */
return 0;
}
27
13.2 INSTRUCCIONES REPETITIVAS (22/37)
• Como ya se ha dicho, el bucle hacer...mientras puede iterar
una o más veces, por tanto, cuando un bloque de instrucciones
debe iterar al menos una vez, generalmente, es mejor utilizar un
bucle hacer...mientras que un bucle mientras, como por
ejemplo, en el siguiente problema.
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
1º) Pida por teclado un número (dato entero).
2º) Pregunte al usuario si desea introducir otro o no.
3º) Repita los pasos 1º y 2º, mientras que, el usuario no responda
'n' de (no).
4º) Muestre por pantalla la suma de los números introducidos por el
usuario.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
28
13.2 INSTRUCCIONES REPETITIVAS (23/37)
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
29
13.2 INSTRUCCIONES REPETITIVAS (24/37)
• Solución:
algoritmo Suma_de_numeros_introducidos_por_el_usuario
variables
caracter seguir
entero acumulador, numero
inicio
/* En acumulador se va a guardar la suma
de los números introducidos por el usuario. */
acumulador  0
hacer
escribir( "Introduzca un número entero: " )
leer( numero )
acumulador  acumulador + numero
escribir( "¿Desea introducir otro número (s/n)?: " )
leer( seguir )
mientras( seguir <> 'n' )
/* Mientras que el usuario desee introducir
más números, el bucle iterará. */
escribir( "La suma de los números introducidos es: ",
acumulador )
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
30
13.2 INSTRUCCIONES REPETITIVAS (25/37)
• En el algoritmo del ejemplo anterior se ha utilizado un acumulador.
• En programación, se llama acumulador a una variable cuyo valor se
incrementa o decrementa en un valor que no tiene por qué ser fijo (en
cada iteración de un bucle).
• Un acumulador suele utilizarse para acumular resultados producidos
en las iteraciones de un bucle.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
31
13.2 INSTRUCCIONES REPETITIVAS (26/37)
• Diferencias entre un bucle mientras y un bucle hacer...mientras:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
32
EJERCICIOS RECOMENDADOS
• Resueltos: 4, 5 y 6.
• Propuestos: 4, 5 y 6.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
33
13.2 INSTRUCCIONES REPETITIVAS (27/37)
• Sintaxis de una instrucción repetitiva para en pseudocódigo:
para <variable>  <valor_inicial> hasta <valor_final>
[ incremento <valor_incremento> ] hacer
<bloque_de_instrucciones>
fin_para
• En una instrucción repetitiva para, siempre se utiliza una <variable> a la
que se debe asignar un <valor_inicial>. En cada iteración del bucle, al
valor de la <variable> se le suma el <valor_incremento> y, cuando la
<variable> supera el <valor_final>, el bucle finaliza.
• Por tanto, una instrucción repetitiva para permite
ejecutar, repetidamente, un bloque de instrucciones, en base a un valor inicial
y a un valor final.
• El bucle para es ideal usarlo cuando, de antemano, ya se sabe el número de
veces (iteraciones) que tiene que ejecutarse un determinado bloque de
instrucciones.
• El bucle para es una variante del bucle mientras y, al igual que éste, puede
iterar cero o más veces. Sin embargo, el bucle para sólo se suele usar
cuando se conoce el número exacto de veces que tiene que iterar el bucle.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
34
13.2 INSTRUCCIONES REPETITIVAS (28/37)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla los primeros diez números naturales:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en pseudocódigo:
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
para contador  1 hasta 10 incremento 1 hacer
escribir( contador )
fin_para
fin
35
13.2 INSTRUCCIONES REPETITIVAS (29/37)
• EJEMPLO. Cuando el incremento es 1, se puede omitir la palabra
reservada incremento, y su valor.
algoritmo Numeros_del_1_al_10
variables
entero contador
inicio
/* Al no aparecer el valor del incremento,
se entiende que es 1. */
para contador  1 hasta 10 hacer
escribir( contador )
fin_para
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
36
13.2 INSTRUCCIONES REPETITIVAS (30/37)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla los primeros diez números naturales, pero a la
inversa, es decir, del 10 al 1:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Solución en pseudocódigo: (utilizando un incremento negativo)
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
para contador  10 hasta 1 incremento -1 hacer
escribir( contador )
fin_para
fin
37
13.2 INSTRUCCIONES REPETITIVAS (31/37)
• EJEMPLO. Por otra parte, también es posible omitir la palabra reservada
incremento y su valor, entendiéndose, en ese caso, que es -1, ya que,
el <valor_inicial> es mayor que el <valor_final> y, por tanto,
sólo es razonable un incremento negativo.
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
/* Al no aparecer el valor del incremento,
se entiende que es -1. */
para contador  10 hasta 1 hacer
escribir( contador )
fin_para
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
38
13.2 INSTRUCCIONES REPETITIVAS (32/37)
• Para los casos en que el incremento es negativo, también se puede
utilizar la sintaxis:
para <variable>  <valor_inicial> hasta <valor_final>
[ decremento <valor_decremento> ] hacer
<bloque_de_instrucciones>
fin_para
• EJEMPLO
algoritmo Numeros_del_10_al_1
variables
entero contador
inicio
para contador  10 hasta 1 decremento 1 hacer
escribir( contador )
fin_para
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
39
13.2 INSTRUCCIONES REPETITIVAS (33/37)
• Por consiguiente, la sintaxis completa de una instrucción
repetitiva para es:
para <variable>  <valor_inicial> hasta <valor_final>
[ incremento <valor_incremento> |
decremento <valor_decremento> ] hacer
<bloque_de_instrucciones>
fin_para
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
40
13.2 INSTRUCCIONES REPETITIVAS (34/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de una instrucción
repetitiva para en ordinograma:
41
13.2 INSTRUCCIONES REPETITIVAS (35/37)
• Sintaxis de la instrucción for:
for ( <expresión_1> ; <expresión_2> ; <expresión_3> )
{
<bloque_de_instrucciones>
}
• Cuando el <bloque_de_instrucciones> de una repetitiva para
sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar
llave (}) son opcionales.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
42
13.2 INSTRUCCIONES REPETITIVAS (36/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• EJEMPLO.
#include <stdio.h>
int main()
{
int contador;
printf( "n " );
for ( contador = 1 ; contador <= 10 ; contador++ )
printf( "%d ", contador );
return 0;
}
43
13.2 INSTRUCCIONES REPETITIVAS (37/37)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• En este caso, <expresión_1>, <expresión_2> y
<expresión_3>, se corresponden, respectivamente, con:
– la inicialización de la variable contador,
– la condición de salida del bucle y
– el incremento de la variable contador
de una instrucción repetitiva mientras.
44
13.3 ¿CUÁNDO USAR UN BUCLE U OTRO?
• A la hora de elegir un bucle u otro, debemos hacernos la siguiente
pregunta:
– ¿Se conoce, de antemano, el número de veces (iteraciones) que
tiene que ejecutarse un determinado bloque de instrucciones?
• Si la respuesta es afirmativa, habitualmente se usa un bucle para.
En caso contrario, nos plantearemos la siguiente pregunta:
– ¿El bloque de instrucciones debe ejecutarse al menos una vez?
• En este caso, si la respuesta es afirmativa, generalmente haremos
uso de un bucle hacer...mientras, y si la respuesta es
negativa, usaremos un bucle mientras.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
45
EJERCICIOS RECOMENDADOS
• Resueltos: 7, 8, 9, 10, 11 y 12.
• Propuestos: 7, 8, 9, 10, 11 y 12.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
46
13.4 ANIDAMIENTO (1/18)
• Al igual que las instrucciones alternativas, las instrucciones repetitivas
también se pueden anidar, permitiendo las siguientes combinaciones de
anidamiento:
– mientras en mientras.
– mientras en hacer...mientras.
– mientras en para.
– hacer...mientras en hacer...mientras.
– hacer...mientras en para.
– hacer...mientras en mientras.
– para en para.
– para en mientras.
– para en hacer...mientras.
• De ellas, vamos a estudiar, como ejemplo, las combinaciones:
– para en para.
– para en hacer...mientras.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
47
13.4 ANIDAMIENTO (2/18)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de bucle para en para:
para <variable_1>  <valor_inicial_1> hasta
<valor_final_1> [ incremento <valor_incremento_1> |
decremento <valor_decremento_1> ] hacer
/* Inicio del anidamiento */
para <variable_2>  <valor_inicial_2> hasta
<valor_final_2> [ incremento <valor_incremento_2> |
decremento <valor_decremento_2> ] hacer
<bloque_de_instrucciones>
fin_para
/* Fin del anidamiento */
fin_para
48
13.4 ANIDAMIENTO (3/18)
• EJEMPLO. Se quiere
diseñar el algoritmo de un
programa que muestre por
pantalla las tablas de
multiplicar del 1, 2 y 3:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
49
13.4 ANIDAMIENTO (4/18)
• Solución en pseudocódigo:
algoritmo Tablas_de_multiplicar_del_1_2_y_3
variables
entero i, j, r
inicio
para i  1 hasta 3 hacer /* Bucle 1 */
/* Inicio del anidamiento */
para j  1 hasta 10 hacer /* Bucle 2(anidado) */
r  i * j
escribir( i, " * ", j, " = ", r )
fin_para
/* Fin del anidamiento */
fin_para
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
50
13.4 ANIDAMIENTO (5/18)
• Solución en ordinograma:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
51
13.4 ANIDAMIENTO (6/18)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de bucle para en hacer...mientras:
hacer
/* Inicio del anidamiento */
para <variable>  <valor_inicial> hasta <valor_final>
[ incremento <valor_incremento> |
decremento <valor_decremento> ] hacer
<bloque_de_instrucciones>
fin_para
/* Fin del anidamiento */
mientras ( <expresión_lógica> )
52
13.4 ANIDAMIENTO (7/18)
• EJEMPLO. Se quiere
diseñar el algoritmo de un
programa que muestre por
pantalla la tabla de
multiplicar de un número
entero introducido por el
usuario. El proceso debe
repetirse mientras que el
usuario lo desee:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
53
13.4 ANIDAMIENTO (8/18)
• Solución en pseudocódigo:
algoritmo Tabla_de_multiplicar_de_un_numero
variables
caracter seguir
entero i, numero
inicio
hacer
escribir( "Introduzca un número entero: " )
leer( numero )
escribir( "La tabla de multiplicar del ", numero , " es: " )
/* Inicio del anidamiento */
para i  1 hasta 10 hacer
escribir( numero, " * ", i, " = ", i * numero )
fin_para
/* Fin del anidamiento */
escribir( "¿Desea ver otra tabla (s/n)?: " )
leer( seguir )
mientras ( seguir <> 'n' )
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
54
13.4 ANIDAMIENTO (9/18)
• Solución en ordinograma:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
55
13.4 ANIDAMIENTO (10/18)
• Las instrucciones alternativas y repetitivas también se pueden anidar entre
sí, permitiendo realizar 18 combinaciones más de anidamiento:
– mientras en doble.
– mientras en simple.
– mientras en múltiple.
– hacer...mientras en doble.
– hacer...mientras en simple.
– hacer...mientras en múltiple.
– ...
– Múltiple en mientras.
– Múltiple en hacer...mientras.
– Múltiple en para.
• De ellas, vamos a estudiar, como ejemplo, las combinaciones:
– Simple en para.
– Múltiple en hacer...mientras.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
56
13.4 ANIDAMIENTO (11/18)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Sintaxis de alternativa simple en bucle para:
para <variable>  <valor_inicial> hasta <valor_final>
[ incremento <valor_incremento> |
decremento <valor_decremento> ] hacer
/* Inicio del anidamiento */
si ( <expresión_lógica> )
<bloque_de_instrucciones>
fin_si
/* Fin del anidamiento */
fin_para
57
12.3 ANIDAMIENTO (12/18)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que
muestre por pantalla todos los números enteros del 1 al 100 (ambos
inclusive) que sean divisibles entre 17 ó 21:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
58
13.4 ANIDAMIENTO (13/18)
• Solución en pseudocódigo:
algoritmo Numeros_enteros_divisibles_entre_17_o_21
variables
entero numero
inicio
para numero  1 hasta 100 hacer
/* Inicio del anidamiento */
si ( numero mod 17 = 0 o numero mod 21 = 0 )
escribir( numero )
fin_si
/* Fin del anidamiento */
fin_para
fin
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
59
13.4 ANIDAMIENTO (14/18)
• Solución en ordinograma:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
60
EJERCICIOS RECOMENDADOS
• Resueltos: 13, 14, 15 y 16.
• Propuestos: 13, 14, 15, 16 y 17.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
61
13.4 ANIDAMIENTO (15/18)
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
• Alternativa múltiple en bucle hacer...mientras:
Anidar una alternativa múltiple en un bucle hacer...mientras,
es la solución idónea cuando se quiere realizar un menú.
Un menú ofrece al usuario la posibilidad de elegir qué acción(es)
realizar de entre una lista de opciones.
62
13.4 ANIDAMIENTO (16/18)
• EJEMPLO. Se quiere diseñar el algoritmo de un programa que:
1º) Muestre un menú con 4 opciones:
1. Calcular el doble de un número entero.
2. Calcular la mitad de un número entero.
3. Calcular el cuadrado de un número entero.
4. Salir.
2º) Pida por teclado la opción deseada (dato entero).
3º) Ejecute la opción del menú seleccionada.
4º) Repita los pasos 1º, 2º y 3º, mientras que, el usuario no seleccione
la opción 4 (Salir) del menú.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
63
13.4 ANIDAMIENTO (17/18)
• En pantalla:
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
64
13.4 ANIDAMIENTO (18/18)
• Solución en pseudocódigo:
algoritmo Menu_de_opciones
variables
caracter opcion
entero numero
inicio
hacer
escribir( "1. Calcular el doble de un número entero." )
escribir( "2. Calcular la mitad de un número entero." )
escribir( "3. Calcular el cuadrado de un número entero." )
escribir( "4. Salir." )
/* Filtramos la opción elegida por el usuario */
hacer
escribir( "Introduzca opción: " )
leer( opcion )
mientras( opcion < '1' o opcion '>' 4 )
/* La opción sólo puede ser '1', '2', '3' ó '4' */
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
segun_sea ( opcion )
'1' : escribir( "Introduzca un número entero:" )
leer( numero )
escribir( "El doble de ", numero, " es ",
numero * 2 )
'2' : escribir( "Introduzca un número entero:" )
leer( numero )
escribir( "La mitad de ", numero, " es ",
numero / 2 )
'3' : escribir( "Introduzca un número entero:" )
leer( numero )
escribir( "El cuadrado de ", numero, " es ",
numero * numero )
fin_segun_sea
mientras ( opcion <> '4' )
fin
65
EJERCICIOS RECOMENDADOS
• Resueltos: del 17 al 22.
• Propuestos: del 18 al 25.
Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS
Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
66
http://www.carlospes.com
GRACIAS POR SU ATENCIÓN
Para más información, puede visitar la web del autor:

Weitere ähnliche Inhalte

Was ist angesagt?

Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacionSERCOMPFAST
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En Cpainni
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
Estructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoEstructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoAbrirllave
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccionClariza
 
Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1Kathy Granizo
 
PROGRAMACION WEB INTRODUCCION
PROGRAMACION WEB INTRODUCCIONPROGRAMACION WEB INTRODUCCION
PROGRAMACION WEB INTRODUCCIONnatisrincon
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++David
 
Proposiciones y bloques de código
Proposiciones y bloques de códigoProposiciones y bloques de código
Proposiciones y bloques de códigoDenisse C
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte IIYelixa Araque Angulo
 
Tutorial sencillo manejo de pseint y free dfd
Tutorial sencillo manejo de pseint y free dfdTutorial sencillo manejo de pseint y free dfd
Tutorial sencillo manejo de pseint y free dfdLenin Dario Mendoza Mora
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 
Operaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje COperaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje CDenisse C
 

Was ist angesagt? (20)

Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacion
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En C
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
Clase 6
Clase 6Clase 6
Clase 6
 
Estructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigoEstructura de un algoritmo en pseudocódigo
Estructura de un algoritmo en pseudocódigo
 
Estructuras de Control Repetitivo
Estructuras de Control RepetitivoEstructuras de Control Repetitivo
Estructuras de Control Repetitivo
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccion
 
Estructuras iterativas1
Estructuras iterativas1Estructuras iterativas1
Estructuras iterativas1
 
Tecnologia jenny
Tecnologia jennyTecnologia jenny
Tecnologia jenny
 
PROGRAMACION WEB INTRODUCCION
PROGRAMACION WEB INTRODUCCIONPROGRAMACION WEB INTRODUCCION
PROGRAMACION WEB INTRODUCCION
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++
 
Proposiciones y bloques de código
Proposiciones y bloques de códigoProposiciones y bloques de código
Proposiciones y bloques de código
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte II
 
Tutorial sencillo manejo de pseint y free dfd
Tutorial sencillo manejo de pseint y free dfdTutorial sencillo manejo de pseint y free dfd
Tutorial sencillo manejo de pseint y free dfd
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Operaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje COperaciones entre cadenas y valores numéricos en lenguaje C
Operaciones entre cadenas y valores numéricos en lenguaje C
 
Apunte de diagrama de flujos
Apunte de diagrama de flujosApunte de diagrama de flujos
Apunte de diagrama de flujos
 

Ähnlich wie Control repetitivas C

Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion whileSNPP
 
Universidad politécnica amazónica ciclos
Universidad politécnica amazónica ciclosUniversidad politécnica amazónica ciclos
Universidad politécnica amazónica ciclosSuGely Gálvez
 
Estructuras De RepeticióN
Estructuras De RepeticióNEstructuras De RepeticióN
Estructuras De RepeticióNRegina Flores
 
Estructuras De RepeticióN
Estructuras De RepeticióNEstructuras De RepeticióN
Estructuras De RepeticióNRegina Flores
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdeviyaquelinpr
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasVictor Zapata
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 

Ähnlich wie Control repetitivas C (20)

Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion while
 
Universidad politécnica amazónica ciclos
Universidad politécnica amazónica ciclosUniversidad politécnica amazónica ciclos
Universidad politécnica amazónica ciclos
 
Unidad3.pptx
Unidad3.pptxUnidad3.pptx
Unidad3.pptx
 
Instruccion while bm
Instruccion while bmInstruccion while bm
Instruccion while bm
 
Estructuras De RepeticióN
Estructuras De RepeticióNEstructuras De RepeticióN
Estructuras De RepeticióN
 
Estructuras De RepeticióN
Estructuras De RepeticióNEstructuras De RepeticióN
Estructuras De RepeticióN
 
183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi183007957 estructuras repetitivas-estructurarepetitivadesdevi
183007957 estructuras repetitivas-estructurarepetitivadesdevi
 
Estructura repetitiva
Estructura repetitivaEstructura repetitiva
Estructura repetitiva
 
Guia4
Guia4Guia4
Guia4
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Grupo7
Grupo7Grupo7
Grupo7
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Bucle for
Bucle forBucle for
Bucle for
 
Bucle for.pdf
Bucle for.pdfBucle for.pdf
Bucle for.pdf
 
Bucle for
Bucle for Bucle for
Bucle for
 
Bucle for
Bucle forBucle for
Bucle for
 

Mehr von Carlos Pes

Fases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroFases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroCarlos Pes
 
EL CASO RENFE-FJD
EL CASO RENFE-FJDEL CASO RENFE-FJD
EL CASO RENFE-FJDCarlos Pes
 
35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultarCarlos Pes
 
Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Carlos Pes
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaCarlos Pes
 
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryAnalisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryCarlos Pes
 
16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEOCarlos Pes
 
Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Carlos Pes
 
Descubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresDescubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresCarlos Pes
 
Factores que influyen en el SEO
Factores que influyen en el SEOFactores que influyen en el SEO
Factores que influyen en el SEOCarlos Pes
 
1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seoCarlos Pes
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEOCarlos Pes
 
Aspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerAspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerCarlos Pes
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCarlos Pes
 
Ejemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOEjemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOCarlos Pes
 
Ejemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOEjemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOCarlos Pes
 
SEO Una profesión en auge
SEO Una profesión en augeSEO Una profesión en auge
SEO Una profesión en augeCarlos Pes
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un AlgoritmoCarlos Pes
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y EntradaCarlos Pes
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y ExpresionesCarlos Pes
 

Mehr von Carlos Pes (20)

Fases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libroFases para escribir publicar y dar a conocer un libro
Fases para escribir publicar y dar a conocer un libro
 
EL CASO RENFE-FJD
EL CASO RENFE-FJDEL CASO RENFE-FJD
EL CASO RENFE-FJD
 
35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar35 ESCALONES - Un libro que muchos tratan de ocultar
35 ESCALONES - Un libro que muchos tratan de ocultar
 
Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013Fundamentos del SEO en Congreso Web 2013
Fundamentos del SEO en Congreso Web 2013
 
Presentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en PamplonaPresentacion libro Fundamentos del SEO en Pamplona
Presentacion libro Fundamentos del SEO en Pamplona
 
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet CategoryAnalisis de la presentación del libro Fundamentos del SEO by Tweet Category
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
 
16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO16 Claves para tener éxito en SEO
16 Claves para tener éxito en SEO
 
Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013Apuntes Curso SEO Tudela - Febrero-2013
Apuntes Curso SEO Tudela - Febrero-2013
 
Descubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadoresDescubre cómo posicionar tu Web en los buscadores
Descubre cómo posicionar tu Web en los buscadores
 
Factores que influyen en el SEO
Factores que influyen en el SEOFactores que influyen en el SEO
Factores que influyen en el SEO
 
1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo1,2 billones de razones para hacer seo
1,2 billones de razones para hacer seo
 
Generalidades del SEO
Generalidades del SEOGeneralidades del SEO
Generalidades del SEO
 
Aspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community ManagerAspectos del SEO que debe conocer un Community Manager
Aspectos del SEO que debe conocer un Community Manager
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujo
 
Ejemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEOEjemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Seguimiento SEO
 
Ejemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEOEjemplo Propuesta Auditoría SEO
Ejemplo Propuesta Auditoría SEO
 
SEO Una profesión en auge
SEO Una profesión en augeSEO Una profesión en auge
SEO Una profesión en auge
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un Algoritmo
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y Expresiones
 

Kürzlich hochgeladen

Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfdeBelnRosales2
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 

Kürzlich hochgeladen (20)

Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde5º SOY LECTOR PART1- MD  EDUCATIVO.pdfde
5º SOY LECTOR PART1- MD EDUCATIVO.pdfde
 
Acuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptxAcuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptx
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 

Control repetitivas C

  • 1. 1 Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com)
  • 2. 2 OBJETIVOS • Conocer las instrucciones de control repetitivas, y saber hacer uso de ellas. • Aprender a anidar instrucciones de control repetitivas. – Ya se ha estudiado que las instrucciones de un algoritmo pueden ejecutarse secuencialmente. Por otra parte, puede darse el caso de que unas instrucciones se ejecuten y otras no, utilizando instrucciones alternativas. Pero, ¿cómo se puede hacer que un bloque de instrucciones se ejecute más de una vez? Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 3. 3 CONTENIDO 13.1 INTRODUCCIÓN 13.2 INSTRUCCIONES REPETITIVAS 13.3 ¿CUÁNDO USAR UN BUCLE U OTRO? 13.4 ANIDAMIENTO Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 4. 4 13.1 INTRODUCCIÓN • Las instrucciones que se utilizan para diseñar algoritmos se pueden clasificar en: – Primitivas – De control – Llamadas a subalgoritmos (llamadas a subprogramas) • Las instrucciones de control se clasifican en: – Alternativas (selectivas) – Repetitivas (iterativas) – De salto (de transferencia) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 5. 5 13.2 INSTRUCCIONES REPETITIVAS (1/37) • Una instrucción de control repetitiva permite ejecutar una o más instrucciones varias veces. Existen tres tipos: – Mientras – Hacer...mientras – Para • A las instrucciones repetitivas también se las conoce como bucles, ciclos o lazos. • Sintaxis de una instrucción repetitiva mientras en pseudocódigo: mientras ( <expresión_lógica> ) <bloque_de_instrucciones> fin_mientras Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 6. 6 13.2 INSTRUCCIONES REPETITIVAS (2/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Para que se ejecute el <bloque_de_instrucciones>, la condición tiene que ser verdadera. Por el contrario, si la condición es falsa, el <bloque_de_instrucciones> no se ejecuta. • Cuando el bloque de instrucciones de un bucle se ejecuta, se dice que se ha producido una iteración. • El <bloque_de_instrucciones> de un bucle mientras puede ejecutarse cero o más veces (iteraciones). • Si el <bloque_de_instrucciones> se ejecuta al menos una vez, seguirá ejecutándose repetidamente, mientras que, la condición sea verdadera. Pero, hay que tener cuidado de que el bucle no sea infinito. • Cuando la condición de un bucle mientras se evalúa siempre a verdadera, se dice que se ha producido un bucle infinito, ya que, el algoritmo nunca termina. Un bucle infinito es un error lógico. • En resumen, una instrucción repetitiva mientras permite ejecutar, repetidamente, (cero o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera.
  • 7. 7 13.2 INSTRUCCIONES REPETITIVAS (3/37) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en pseudocódigo: algoritmo Numeros_del_1_al_10 variables entero contador inicio contador  1 /* Inicialización del contador */ mientras ( contador <= 10 ) /* Condición */ escribir( contador ) /* Salida */ contador  contador + 1 /* Incremento */ fin_mientras fin
  • 8. 8 13.2 INSTRUCCIONES REPETITIVAS (4/37) • En el algoritmo se ha utilizado un contador. • En programación, se llama contador a una variable cuyo valor se incrementa o decrementa en un valor fijo (en cada iteración de un bucle). • Un contador suele utilizase para contar el número de veces que itera un bucle. Pero, a veces, se utiliza para contar, solamente, aquellas iteraciones de un bucle en las que se cumpla una determinada condición. • Además, en este caso, el valor de la variable contador se ha visualizado en cada iteración. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 9. 9 13.2 INSTRUCCIONES REPETITIVAS (5/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de una instrucción repetitiva mientras en ordinograma:
  • 10. 10 13.2 INSTRUCCIONES REPETITIVAS (6/37) • Sintaxis de la instrucción while: while ( <expresión_lógica> ) { <bloque_de_instrucciones> } • Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 11. 11 13.2 INSTRUCCIONES REPETITIVAS (7/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en C: #include <stdio.h> int main() { int contador; printf( "n " ); contador = 1; /* Inicialización del contador */ while ( contador <= 10 ) /* Condición */ { printf( "%d ", contador ); /* Salida */ contador++; /* Incremento */ } return 0; }
  • 12. 12 13.2 INSTRUCCIONES REPETITIVAS (8/37) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales, pero a la inversa, es decir, del 10 al 1: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en pseudocódigo: algoritmo Numeros_del_10_al_1 variables entero contador inicio contador  10 /* Cambio 1 */ mientras ( contador >= 1 ) /* Cambio 2 */ escribir( contador ) contador  contador – 1 /* Cambio 3 */ fin_mientras fin
  • 13. 13 13.2 INSTRUCCIONES REPETITIVAS (9/37) • Para que el algoritmo realice la nueva tarea encomendada, ha sido necesario realizar tres cambios en los aspectos más críticos del bucle mientras: 1. La inicialización de la variable contador (cambio 1): necesaria para que la condición pueda evaluarse correctamente cuando el flujo del algoritmo llega al bucle mientras. 2. La condición del bucle mientras (cambio 2): afecta al número de iteraciones que va a efectuar el bucle. También se la conoce como condición de salida del bucle. 3. La instrucción de asignación (cambio 3): hace variar el valor de la variable contador dentro del bloque de instrucciones. De no hacerse correctamente, el bucle podría ser infinito. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 14. 14 13.2 INSTRUCCIONES REPETITIVAS (10/37) • EJEMPLO. Un pequeño descuido, como por ejemplo, no escribir de forma correcta la condición del bucle, puede producir un bucle infinito: algoritmo Numeros_del_10_al_1 variables entero contador inicio contador  10 /* Cambio 1 */ mientras ( contador <= 10 ) /* Descuido */ escribir( contador ) contador  contador – 1 /* Cambio 3 */ fin_mientras fin • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 15. 15 13.2 INSTRUCCIONES REPETITIVAS (11/37) • EJEMPLO. Otro error muy frecuente es inicializar mal la variable que participa en la condición del bucle: algoritmo Numeros_del_10_al_1 variables entero contador inicio contador  1 /* Descuido */ mientras ( contador >= 1 ) /* Cambio 2 */ escribir( contador ) contador  contador – 1 /* Cambio 3 */ fin_mientras fin • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 16. 16 13.2 INSTRUCCIONES REPETITIVAS (12/37) • EJEMPLO. También es un error muy típico olvidarse de escribir alguna instrucción: algoritmo Numeros_del_10_al_1 variables entero contador inicio contador  10 /* Cambio 1 */ mientras ( contador >= 1 ) /* Cambio 2 */ escribir( contador ) /* Descuido */ fin_mientras fin • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 17. 17 13.2 INSTRUCCIONES REPETITIVAS (13/37) • EJEMPLO. Un bucle mientras puede iterar cero o más veces. Así, por ejemplo, en el algoritmo siguiente existe un error lógico que provoca que el bucle no itere ninguna vez: algoritmo Numeros_del_10_al_1 variables entero contador inicio contador  0 /* Descuido */ mientras ( contador >= 1 ) /* Cambio 2 */ escribir( contador ) contador  contador – 1 /* Cambio 3 */ fin_mientras fin • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 18. 18 13.2 INSTRUCCIONES REPETITIVAS (14/37) • En el ejemplo anterior, se ha producido un error lógico, ya que, para que el bucle iterase diez veces, se debería haber asignado a la variable contador el valor 10, en vez del 0. • No obstante, bajo determinadas circunstancias, sí puede tener sentido hacer uso de un bucle mientras, el cual pueda no iterar ninguna vez. Por ejemplo, en el siguiente problema. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una asignatura. 2º) En el caso de que la nota sea incorrecta, muestre por pantalla el mensaje: – "ERROR: Nota incorrecta, debe ser >= 0 y <= 10“. 3º) Repita los pasos 1º y 2º, mientras que, la nota introducida sea incorrecta. 4º) Muestre por pantalla: – "APROBADO", en el caso de que la nota sea mayor o igual que 5. – "SUSPENDIDO", en el caso de que la nota sea menor que 5. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 19. 19 13.2 INSTRUCCIONES REPETITIVAS (15/37) • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 20. 20 13.2 INSTRUCCIONES REPETITIVAS (16/37) • Solución: algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (real): " ) leer( nota ) /* Si la primera nota introducida por el usuario es correcta, el bucle no itera ninguna vez. */ mientras ( nota < 0 o nota > 10 ) escribir( "ERROR: Nota incorrecta, debe ser >= 0 y <= 10" ) escribir( "Introduzca nota (real): " ) leer( nota ) fin_mientras /* Mientras que el usuario introduzca una nota incorrecta, el bucle iterará. Y cuando introduzca una nota correcta, el bucle finalizará. */ si ( nota >= 5 ) escribir( "APROBADO" ) sino escribir( "SUSPENDIDO" ) fin_si fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 21. 21 EJERCICIOS RECOMENDADOS • Resueltos: 1, 2 y 3. • Propuestos: 1, 2 y 3. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 22. 22 13.2 INSTRUCCIONES REPETITIVAS (17/37) • Sintaxis de una instrucción repetitiva hacer...mientras en pseudocódigo: hacer <bloque_de_instrucciones> mientras ( <expresión_lógica> ) • En un bucle hacer...mientras, primero se ejecuta el bloque de instrucciones y, después, se evalúa la condición. En el caso de que ésta sea verdadera, se vuelve a ejecutar el bloque de instrucciones. Y así sucesivamente, hasta que, la condición sea falsa. • El <bloque_de_instrucciones> de un bucle hacer...mientras puede ejecutarse una o más veces (iteraciones). También hay que prevenir que el bucle no sea infinito. • En resumen, una instrucción repetitiva hacer...mientras permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 23. 23 13.2 INSTRUCCIONES REPETITIVAS (18/37) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en pseudocódigo: algoritmo Numeros_del_1_al_10 variables entero contador inicio contador  1 /* Inicialización del contador */ hacer escribir( contador ) /* Salida */ contador  contador + 1 /* Incremento */ mientras( contador <= 10 ) /* Condición */ fin
  • 24. 24 13.2 INSTRUCCIONES REPETITIVAS (19/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de una instrucción repetitiva hacer...mientras en ordinograma:
  • 25. 25 13.2 INSTRUCCIONES REPETITIVAS (20/37) • Sintaxis de la instrucción do...while: do { <bloque_de_instrucciones> } while ( <expresión_lógica> ); • Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 26. 26 13.2 INSTRUCCIONES REPETITIVAS (21/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en C: #include <stdio.h> int main() { int contador; printf( "n " ); contador = 1; /* Inicialización del contador */ do { printf( "%d ", contador ); /* Salida */ contador++; /* Incremento */ } while ( contador <= 10 ); /* Condición */ return 0; }
  • 27. 27 13.2 INSTRUCCIONES REPETITIVAS (22/37) • Como ya se ha dicho, el bucle hacer...mientras puede iterar una o más veces, por tanto, cuando un bloque de instrucciones debe iterar al menos una vez, generalmente, es mejor utilizar un bucle hacer...mientras que un bucle mientras, como por ejemplo, en el siguiente problema. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado un número (dato entero). 2º) Pregunte al usuario si desea introducir otro o no. 3º) Repita los pasos 1º y 2º, mientras que, el usuario no responda 'n' de (no). 4º) Muestre por pantalla la suma de los números introducidos por el usuario. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 28. 28 13.2 INSTRUCCIONES REPETITIVAS (23/37) • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 29. 29 13.2 INSTRUCCIONES REPETITIVAS (24/37) • Solución: algoritmo Suma_de_numeros_introducidos_por_el_usuario variables caracter seguir entero acumulador, numero inicio /* En acumulador se va a guardar la suma de los números introducidos por el usuario. */ acumulador  0 hacer escribir( "Introduzca un número entero: " ) leer( numero ) acumulador  acumulador + numero escribir( "¿Desea introducir otro número (s/n)?: " ) leer( seguir ) mientras( seguir <> 'n' ) /* Mientras que el usuario desee introducir más números, el bucle iterará. */ escribir( "La suma de los números introducidos es: ", acumulador ) fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 30. 30 13.2 INSTRUCCIONES REPETITIVAS (25/37) • En el algoritmo del ejemplo anterior se ha utilizado un acumulador. • En programación, se llama acumulador a una variable cuyo valor se incrementa o decrementa en un valor que no tiene por qué ser fijo (en cada iteración de un bucle). • Un acumulador suele utilizarse para acumular resultados producidos en las iteraciones de un bucle. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 31. 31 13.2 INSTRUCCIONES REPETITIVAS (26/37) • Diferencias entre un bucle mientras y un bucle hacer...mientras: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 32. 32 EJERCICIOS RECOMENDADOS • Resueltos: 4, 5 y 6. • Propuestos: 4, 5 y 6. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 33. 33 13.2 INSTRUCCIONES REPETITIVAS (27/37) • Sintaxis de una instrucción repetitiva para en pseudocódigo: para <variable>  <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> ] hacer <bloque_de_instrucciones> fin_para • En una instrucción repetitiva para, siempre se utiliza una <variable> a la que se debe asignar un <valor_inicial>. En cada iteración del bucle, al valor de la <variable> se le suma el <valor_incremento> y, cuando la <variable> supera el <valor_final>, el bucle finaliza. • Por tanto, una instrucción repetitiva para permite ejecutar, repetidamente, un bloque de instrucciones, en base a un valor inicial y a un valor final. • El bucle para es ideal usarlo cuando, de antemano, ya se sabe el número de veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones. • El bucle para es una variante del bucle mientras y, al igual que éste, puede iterar cero o más veces. Sin embargo, el bucle para sólo se suele usar cuando se conoce el número exacto de veces que tiene que iterar el bucle. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 34. 34 13.2 INSTRUCCIONES REPETITIVAS (28/37) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en pseudocódigo: algoritmo Numeros_del_1_al_10 variables entero contador inicio para contador  1 hasta 10 incremento 1 hacer escribir( contador ) fin_para fin
  • 35. 35 13.2 INSTRUCCIONES REPETITIVAS (29/37) • EJEMPLO. Cuando el incremento es 1, se puede omitir la palabra reservada incremento, y su valor. algoritmo Numeros_del_1_al_10 variables entero contador inicio /* Al no aparecer el valor del incremento, se entiende que es 1. */ para contador  1 hasta 10 hacer escribir( contador ) fin_para fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 36. 36 13.2 INSTRUCCIONES REPETITIVAS (30/37) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales, pero a la inversa, es decir, del 10 al 1: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Solución en pseudocódigo: (utilizando un incremento negativo) algoritmo Numeros_del_10_al_1 variables entero contador inicio para contador  10 hasta 1 incremento -1 hacer escribir( contador ) fin_para fin
  • 37. 37 13.2 INSTRUCCIONES REPETITIVAS (31/37) • EJEMPLO. Por otra parte, también es posible omitir la palabra reservada incremento y su valor, entendiéndose, en ese caso, que es -1, ya que, el <valor_inicial> es mayor que el <valor_final> y, por tanto, sólo es razonable un incremento negativo. algoritmo Numeros_del_10_al_1 variables entero contador inicio /* Al no aparecer el valor del incremento, se entiende que es -1. */ para contador  10 hasta 1 hacer escribir( contador ) fin_para fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 38. 38 13.2 INSTRUCCIONES REPETITIVAS (32/37) • Para los casos en que el incremento es negativo, también se puede utilizar la sintaxis: para <variable>  <valor_inicial> hasta <valor_final> [ decremento <valor_decremento> ] hacer <bloque_de_instrucciones> fin_para • EJEMPLO algoritmo Numeros_del_10_al_1 variables entero contador inicio para contador  10 hasta 1 decremento 1 hacer escribir( contador ) fin_para fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 39. 39 13.2 INSTRUCCIONES REPETITIVAS (33/37) • Por consiguiente, la sintaxis completa de una instrucción repetitiva para es: para <variable>  <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> | decremento <valor_decremento> ] hacer <bloque_de_instrucciones> fin_para Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 40. 40 13.2 INSTRUCCIONES REPETITIVAS (34/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de una instrucción repetitiva para en ordinograma:
  • 41. 41 13.2 INSTRUCCIONES REPETITIVAS (35/37) • Sintaxis de la instrucción for: for ( <expresión_1> ; <expresión_2> ; <expresión_3> ) { <bloque_de_instrucciones> } • Cuando el <bloque_de_instrucciones> de una repetitiva para sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 42. 42 13.2 INSTRUCCIONES REPETITIVAS (36/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • EJEMPLO. #include <stdio.h> int main() { int contador; printf( "n " ); for ( contador = 1 ; contador <= 10 ; contador++ ) printf( "%d ", contador ); return 0; }
  • 43. 43 13.2 INSTRUCCIONES REPETITIVAS (37/37) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • En este caso, <expresión_1>, <expresión_2> y <expresión_3>, se corresponden, respectivamente, con: – la inicialización de la variable contador, – la condición de salida del bucle y – el incremento de la variable contador de una instrucción repetitiva mientras.
  • 44. 44 13.3 ¿CUÁNDO USAR UN BUCLE U OTRO? • A la hora de elegir un bucle u otro, debemos hacernos la siguiente pregunta: – ¿Se conoce, de antemano, el número de veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones? • Si la respuesta es afirmativa, habitualmente se usa un bucle para. En caso contrario, nos plantearemos la siguiente pregunta: – ¿El bloque de instrucciones debe ejecutarse al menos una vez? • En este caso, si la respuesta es afirmativa, generalmente haremos uso de un bucle hacer...mientras, y si la respuesta es negativa, usaremos un bucle mientras. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 45. 45 EJERCICIOS RECOMENDADOS • Resueltos: 7, 8, 9, 10, 11 y 12. • Propuestos: 7, 8, 9, 10, 11 y 12. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 46. 46 13.4 ANIDAMIENTO (1/18) • Al igual que las instrucciones alternativas, las instrucciones repetitivas también se pueden anidar, permitiendo las siguientes combinaciones de anidamiento: – mientras en mientras. – mientras en hacer...mientras. – mientras en para. – hacer...mientras en hacer...mientras. – hacer...mientras en para. – hacer...mientras en mientras. – para en para. – para en mientras. – para en hacer...mientras. • De ellas, vamos a estudiar, como ejemplo, las combinaciones: – para en para. – para en hacer...mientras. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 47. 47 13.4 ANIDAMIENTO (2/18) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de bucle para en para: para <variable_1>  <valor_inicial_1> hasta <valor_final_1> [ incremento <valor_incremento_1> | decremento <valor_decremento_1> ] hacer /* Inicio del anidamiento */ para <variable_2>  <valor_inicial_2> hasta <valor_final_2> [ incremento <valor_incremento_2> | decremento <valor_decremento_2> ] hacer <bloque_de_instrucciones> fin_para /* Fin del anidamiento */ fin_para
  • 48. 48 13.4 ANIDAMIENTO (3/18) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla las tablas de multiplicar del 1, 2 y 3: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 49. 49 13.4 ANIDAMIENTO (4/18) • Solución en pseudocódigo: algoritmo Tablas_de_multiplicar_del_1_2_y_3 variables entero i, j, r inicio para i  1 hasta 3 hacer /* Bucle 1 */ /* Inicio del anidamiento */ para j  1 hasta 10 hacer /* Bucle 2(anidado) */ r  i * j escribir( i, " * ", j, " = ", r ) fin_para /* Fin del anidamiento */ fin_para fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 50. 50 13.4 ANIDAMIENTO (5/18) • Solución en ordinograma: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 51. 51 13.4 ANIDAMIENTO (6/18) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de bucle para en hacer...mientras: hacer /* Inicio del anidamiento */ para <variable>  <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> | decremento <valor_decremento> ] hacer <bloque_de_instrucciones> fin_para /* Fin del anidamiento */ mientras ( <expresión_lógica> )
  • 52. 52 13.4 ANIDAMIENTO (7/18) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla la tabla de multiplicar de un número entero introducido por el usuario. El proceso debe repetirse mientras que el usuario lo desee: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 53. 53 13.4 ANIDAMIENTO (8/18) • Solución en pseudocódigo: algoritmo Tabla_de_multiplicar_de_un_numero variables caracter seguir entero i, numero inicio hacer escribir( "Introduzca un número entero: " ) leer( numero ) escribir( "La tabla de multiplicar del ", numero , " es: " ) /* Inicio del anidamiento */ para i  1 hasta 10 hacer escribir( numero, " * ", i, " = ", i * numero ) fin_para /* Fin del anidamiento */ escribir( "¿Desea ver otra tabla (s/n)?: " ) leer( seguir ) mientras ( seguir <> 'n' ) fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 54. 54 13.4 ANIDAMIENTO (9/18) • Solución en ordinograma: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 55. 55 13.4 ANIDAMIENTO (10/18) • Las instrucciones alternativas y repetitivas también se pueden anidar entre sí, permitiendo realizar 18 combinaciones más de anidamiento: – mientras en doble. – mientras en simple. – mientras en múltiple. – hacer...mientras en doble. – hacer...mientras en simple. – hacer...mientras en múltiple. – ... – Múltiple en mientras. – Múltiple en hacer...mientras. – Múltiple en para. • De ellas, vamos a estudiar, como ejemplo, las combinaciones: – Simple en para. – Múltiple en hacer...mientras. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 56. 56 13.4 ANIDAMIENTO (11/18) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Sintaxis de alternativa simple en bucle para: para <variable>  <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> | decremento <valor_decremento> ] hacer /* Inicio del anidamiento */ si ( <expresión_lógica> ) <bloque_de_instrucciones> fin_si /* Fin del anidamiento */ fin_para
  • 57. 57 12.3 ANIDAMIENTO (12/18) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que muestre por pantalla todos los números enteros del 1 al 100 (ambos inclusive) que sean divisibles entre 17 ó 21: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 58. 58 13.4 ANIDAMIENTO (13/18) • Solución en pseudocódigo: algoritmo Numeros_enteros_divisibles_entre_17_o_21 variables entero numero inicio para numero  1 hasta 100 hacer /* Inicio del anidamiento */ si ( numero mod 17 = 0 o numero mod 21 = 0 ) escribir( numero ) fin_si /* Fin del anidamiento */ fin_para fin Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 59. 59 13.4 ANIDAMIENTO (14/18) • Solución en ordinograma: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 60. 60 EJERCICIOS RECOMENDADOS • Resueltos: 13, 14, 15 y 16. • Propuestos: 13, 14, 15, 16 y 17. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 61. 61 13.4 ANIDAMIENTO (15/18) Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” • Alternativa múltiple en bucle hacer...mientras: Anidar una alternativa múltiple en un bucle hacer...mientras, es la solución idónea cuando se quiere realizar un menú. Un menú ofrece al usuario la posibilidad de elegir qué acción(es) realizar de entre una lista de opciones.
  • 62. 62 13.4 ANIDAMIENTO (16/18) • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Muestre un menú con 4 opciones: 1. Calcular el doble de un número entero. 2. Calcular la mitad de un número entero. 3. Calcular el cuadrado de un número entero. 4. Salir. 2º) Pida por teclado la opción deseada (dato entero). 3º) Ejecute la opción del menú seleccionada. 4º) Repita los pasos 1º, 2º y 3º, mientras que, el usuario no seleccione la opción 4 (Salir) del menú. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 63. 63 13.4 ANIDAMIENTO (17/18) • En pantalla: Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 64. 64 13.4 ANIDAMIENTO (18/18) • Solución en pseudocódigo: algoritmo Menu_de_opciones variables caracter opcion entero numero inicio hacer escribir( "1. Calcular el doble de un número entero." ) escribir( "2. Calcular la mitad de un número entero." ) escribir( "3. Calcular el cuadrado de un número entero." ) escribir( "4. Salir." ) /* Filtramos la opción elegida por el usuario */ hacer escribir( "Introduzca opción: " ) leer( opcion ) mientras( opcion < '1' o opcion '>' 4 ) /* La opción sólo puede ser '1', '2', '3' ó '4' */ Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” segun_sea ( opcion ) '1' : escribir( "Introduzca un número entero:" ) leer( numero ) escribir( "El doble de ", numero, " es ", numero * 2 ) '2' : escribir( "Introduzca un número entero:" ) leer( numero ) escribir( "La mitad de ", numero, " es ", numero / 2 ) '3' : escribir( "Introduzca un número entero:" ) leer( numero ) escribir( "El cuadrado de ", numero, " es ", numero * numero ) fin_segun_sea mientras ( opcion <> '4' ) fin
  • 65. 65 EJERCICIOS RECOMENDADOS • Resueltos: del 17 al 22. • Propuestos: del 18 al 25. Capítulo 13. INSTRUCCIONES DE CONTROL REPETITIVAS Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 66. 66 http://www.carlospes.com GRACIAS POR SU ATENCIÓN Para más información, puede visitar la web del autor: