0% encontró este documento útil (0 votos)
6 vistas

3 EstructDeControl 2023 Parte2

El documento describe las estructuras de control repetitivas en C++, incluyendo los bucles while, for y do-while, así como sus características y ejemplos de uso. Se explican las partes de un bucle, su funcionamiento y precauciones a tener en cuenta, como evitar ciclos infinitos y bucles vacíos. También se aborda el concepto de ciclos anidados y se presentan ejemplos prácticos para ilustrar su aplicación.

Cargado por

Agustín Paletto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas

3 EstructDeControl 2023 Parte2

El documento describe las estructuras de control repetitivas en C++, incluyendo los bucles while, for y do-while, así como sus características y ejemplos de uso. Se explican las partes de un bucle, su funcionamiento y precauciones a tener en cuenta, como evitar ciclos infinitos y bucles vacíos. También se aborda el concepto de ciclos anidados y se presentan ejemplos prácticos para ilustrar su aplicación.

Cargado por

Agustín Paletto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

ESTRUCTURAS DE

CONTROL
Estructuras de Control
Repetitivas
Estructuras Repetitivas

 En C++ hay tres alternativas:

 Bucle while (test prebucle – bucle 0 a n)

 Bucle for (bucle exacto – N veces)

 Bucle do-while (test postbucle – bucle 1 a n)


REPETICIÓN - CICLO - BUCLE

 Un bucle es una construcción que repite una sentencia,


o una secuencia de sentencias, un número de veces.
 El fin del bucle DEBE alcanzarse.
 Se definen las siguientes partes de un bucle:
• Cuerpo del bucle: la sentencia o grupo de sentencias
que se repiten.
• Condición del bucle: expresión lógica que controla la
secuencia de repetición.
• Iteración: Cada repetición del cuerpo del bucle.
Ciclo WHILE
 Bucle while - bucle pretest - bucle 0 a n:

 La condición se evalúa antes de que se ejecute el cuerpo.


 La ejecución del cuerpo se repite mientras la condición del bucle sea
verdadera y termina cuando se hace falsa
 Si la condición inicialmente es falsa el cuerpo no se ejecutará (el bucle
se ejecuta cero o más veces)

Los ( ) son obligatorios.

 Formato en C++: F

while (condición_bucle) {
V
sentencia 1;
……………. Cuerpo
sentencia n;
}

Las { } pueden suprimirse si el


bloque contiene 1 sola sentencia.
Ciclo WHILE

 La condición del bucle evalúa una variable (variable de


control del bucle).

 Los pasos son:


• Inicializar la variable de control antes de entrar al ciclo
while
• Comprobar el valor de la variable de control antes de
que comience la repetición del ciclo (denominada pasada
o iteración)
• Actualizar la variable de control durante cada iteración.
Ciclo WHILE: Funcionamiento

1. Se evalúa la condición_bucle
2. Si la condición_bucle es verdadera (distinta de 0):
a. Se ejecuta la/s sentencia/s especificada/s en el
cuerpo del bucle.
b. Se devuelve el control al paso 1.
3. Si la condición_bucle es falsa (igual a 0):
El control se transfiere a la sentencia siguiente al bucle
while.

Las sentencias del cuerpo del bucle se repiten mientras que la


condición_bucle sea verdadera.
Cuando la condición_bucle es falsa se sale del bucle y se ejecuta la
sentencia que viene después de la sentencia while, en el programa.
Ciclo WHILE

 Ejemplo 1: Sumar los 10 primeros números naturales.


Ciclo WHILE
 Ejemplo 2: Leer la cantidad de facturas emitidas en una empresa y
a continuación los montos (valores decimales) de c/u e informar el
total facturado y el mayor valor de una factura emitida.
Ciclo WHILE
Cuidado con usos no adecuados:

 Ciclo infinito: se produce cuando la condición del bucle permanece verdadera,


y no se hace falsa en ninguna iteración.

p=0; p=0;
while (p >=0) { while (p < 12)
sum +=p; sum +=p;
p++; p++;
}
El “;” al final de sum +=p; hace que el bucle termine ahí,
aunque el indentado pueda dar la sensación de que el
cuerpo del while contiene dos sentencias.
 Cero iteraciones
p=0;
while (p > 0) {
sum +=p;
p++;
}
Ciclo WHILE con centinela
A veces no se conoce con exactitud cuantos datos se procesarán en el
programa. Una forma de manejarlo es introducir como último dato un valor
denominado valor centinela que indica que se ha finalizado la secuencia de
números.
La condición del bucle comprueba cada dato y termina cuando se lee el valor
centinela.
 Ejemplo 3: Ingresar las notas de parciales de los alumnos de un curso,
finalizando con -1 y mostrar el promedio.

Valor centinela: permite


terminar el proceso del bucle
Ciclo WHILE con bandera
Se establece la variable de control (bandera) a verdadero o falso, según
corresponda, para que el ciclo se ejecute al menos una vez.
Mientras la condición de control sea verdadera se deben realizar las
sentencias del ciclo y cuando se produzca la condición de salida, se cambia
el valor de la bandera para que la próxima evaluación de la condición de
control del ciclo sea falsa y se finalice el ciclo.
 Ejemplo 4: Solicitar al usuario que ingrese una letra minúscula.

Valor bandera
Ciclo FOR

 El bucle for: es un método para ejecutar un bloque de sentencias


un número fijo de veces.

inicialización

F
condición

acciones

incremento
Ciclo FOR
 Las operaciones de control del bucle se sitúan en un solo sitio:
la cabecera de la sentencia for.
 En C++ su formato es:

for (inicialización; condición; incremento) {

sentencias….
} Las { } pueden suprimirse si el bloque
contiene 1 sola sentencia.

inicialización: se inicializan las variables de control


(simples o múltiples).
condición: expresión lógica que hace que el bucle realice
las iteraciones mientras que la expresión sea verdadera.
incremento: incremento o decremento de las variables de
control.
Ciclo FOR - Ejemplos

Se utiliza una variable de control que se inicializa a un valor inicial


y en cada pasada, antes de cada iteración, se la compara con el
límite.

1) Mostrar los cuadrados de los primeros 10 números naturales.


Ciclo FOR - Ejemplos
2) Obtener el factorial de n.

3) Leer y sumar 10 notas.


Ciclo FOR - Ejemplos
 Los incrementos / decrementos pueden ser enteros o reales,
positivos o negativos.

4) Mostrar los números múltiplos de 10, menores que 100,


ordenados de mayor a menor:

n = n - 10
a)

b)
Ciclo FOR
 Es posible y adecuado declarar e inicializar la variable de control
del bucle en el lugar de la inicialización.
 En este caso especial, el ámbito de visibilidad de la variable de
control del bucle es solamente hasta el final del bloque de la
estructura for.
5) Ingresar un número natural y mostrar todos los naturales
comprendidos entre 0 y el número ingresado:
Declaración e
inicialización de la
variable de control
Ciclo FOR: Ejemplos con múltiples variables de
control

6) Mostrar todos los pares de números naturales que suman un


valor MAX
Ciclo FOR
Precauciones:

 QUE TERMINE: La inicialización, comprobación e incremento deben


asegurar que la condición en algún momento sea falsa.
Si dentro del cuerpo del for la variable de control se modifica, entonces
esto no podrá asegurarse, por lo que esto se considera mala práctica de
programación.

 CUIDADO CON LOS BUCLES VACÍOS:


1) 2)
Ciclo FOR
 La sentencia for puede ser vista como una construcción
especializada de la sentencia while, pero con una sintaxis
diferente para hacer más explícitos los casos en los que la
iteración está controlada por los valores que toma una
determinada variable de control, de tal forma que existe una clara
inicialización y una clara modificación (incremento) de la variable
de control, hasta llegar al caso final.
Ciclo DO-WHILE

 El bucle do-while: se utiliza para especificar un bucle


condicional que se ejecuta al menos una vez (ciclo 1-n veces).
Primero se ejecutan las sentencias, luego se evalúa la
expresión, si es verdadera se repite la ejecución del ciclo y el
proceso continúa hasta que sea falsa.
 En C++: Las { } pueden suprimirse si el bloque
contiene una sola sentencia.

do {
sentencias;
} while (condición); V

El ; es obligatorio F
Condición que debe
cumplirse para iterar
(verdadera)
Ciclo DO-WHILE

Ejemplo 7: Imprimir todas las letras mayúsculas.


Comparación de bucles while, for y do-while
 C++ brinda 3 sentencias para el control de bucles: while, for y do-while.

While For Do-while

Comienza su ejecución y Se ejecuta una vez y


Se utiliza cuando el número de
se repite mientras su luego se repite mientras
repeticiones se conoce en forma
condición de repetición del la condición de repetición
exacta por anticipado.
bucle es verdadera. del bucle sea verdadera.
El número de
El número de repeticiones
El número de repeticiones está repeticiones depende de
depende de una condición
establecido de antemano  se una condición (verdadera
(verdadera o falsa)  se
realiza N veces o falsa)  se realiza de 1
realiza de 0 a n veces.
a n veces.
La condición está en la La condición está en la cabecera La condición está al final
cabecera del bucle. del bucle. del bucle.
Se ejecuta 1 vez como
Puede ejecutarse 0 veces. Puede ejecutarse 0 veces
mínimo.
Es una estructura muy flexible en Se puede simular con un
Es la más general.
C (no así en otros lenguajes). while o un for.
Ciclos Anidados
 En C++ es posible anidar bucles.
 Los bucles anidados constan de un bucle externo con uno o más
bucles internos.
 Cada vez que se repite el bucle externo, los bucles internos se
repiten, se vuelven a evaluar los componentes de control y se
ejecutan todas las iteraciones requeridas.
Variable de
control externa

Bucle Externo

Bucle Interno

Variable de
control interna
CICLOS ANIDADOS – Ejemplo 9
 Imprimir un triángulo rectángulo izquierdo que tenga en la primera
fila un *, en la segunda 2 y así por un total de 10 filas.
CICLOS ANIDADOS – Ejemplo 10-a)
 Mostrar todos los divisores de un conjunto de números naturales
leídos, que termina con cero.
CICLOS ANIDADOS - Ejemplo 10-b)
 El último ejemplo puede mejorarse, considerando que un impar no
puede tener divisores pares.
CICLOS ANIDADOS – Ejemplo 11
 Leer una secuencia ordenada de números naturales que termina con 1000.
Ir informando cuantos números de la secuencia ingresada hay en cada
centena (0-99,100-199,......).

Ver resultado para los


valores:

67,350,375,403,456,
477,702, 1000
Leer Capítulo 4

Libro:

Benjumea-Roldan
Univ-de-Málaga

También podría gustarte