Вы находитесь на странице: 1из 12

Guía de Enseñanza de Programación Estructurada

ESTRUTURAS REPETITIVAS – BUCLES (1)


Ejercicios Básicos.

OBJETIVOS:

o Conocer y entender el diagrama de flujo de datos para las estructuras


repetitivas

o
estructuras.
Conocer la sintaxis de las estructuras repetitivas y la lógica de dichas
o Conocer las estructuras repetitivas while, do – while, for.

o Diferenciar cada una de las tres estructuras repetitivas.

o Conocer como funciona cada una de las estructuras repetitivas.

o Usar los signos de comparación (<, >, <=, >=, ==, !=) para condicionar la
finalización del proceso repetitivo.

o Conocer términos y conceptos necesarios para el aprendizaje y la fácil


resolución de los programas planteados.

o Ejemplificar ejercicios sencillos para la fácil comprensión de cada una de las


estructuras repetitivas.

o Ejemplificar problemas básicos para el entendimiento de los procesos


condicionales.

o Resolver sumatorias utilizando procesos repetitivos.

DIAGRAMA DE FLUJO DE DATOS PARA UNA ESTRUCTURA REPETITIVA.

Una estructura repetitiva se representa de la siguiente manera:

-1-
Guía de Enseñanza de Programación Estructurada

Inicio

Falsa Verdadera
Condición

Sentencias

Sentencias

Fin
ASPECTOS TEORICOS

Imagine que quiere imprimir 10 veces una oración en la pantalla, como lo haría, sería
sencillo simplemente escribo 10 veces la siguiente sentencia: cout<<”Aquí esta mi oración”;

Pero ahora el problema se torna aun más difícil, te piden que se escriba 100 veces la misma
oración en la pantalla, todavía enumerado, que harías en este caso, ¿escribirías 100 veces
cout<<”Aquí esta mi oración”?, te complican el problema diciendo que ingreses un
número por el teclado e imprimas la cantidad de veces que indique el número, por ejemplo
si ingresa 52, deberá mostrarse 52 veces la oración, en otras palabras no sabrás cuantas
veces se imprimirá la oración en la pantalla, ¿que problema no?

Este no es un problema si usas bucles, ya que estos minimizan el trabajo, haciendo que
una parte de nuestro programa se repita una cantidad de veces, veamos cual sería la
solución

#include <iostream> using


namespace std;
int main()
{ int n;
cout<<"Ingrese n: ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<i+1<<".- Esta es mi oración\n";
}
}

-2-
Guía de Enseñanza de Programación Estructurada

La secuencia de un bucle no es complicada, en cualquier bucle existe una condición, el


bucle va seguir ejecutándose mientras la condición sea verdadera, si la condición es falsa,
termina el bucle y el programa sigue con su ejecución.

CONCEPTOS.

1.- Bucle:

Los bucles hacen que una sección de su programa se repita un cierto número de
veces. La repetición continúa mientras la condición es verdadera, cuando la
condición se hace falsa, el bucle termina y el programa continúa con su ejecución.

2.- Bucles Anidados:

En un programa pueden existir varios bucles, los bucles pueden ser anidados o
independientes. Los bucles son anidados cuando están dispuestos de tal modo que
unos son interiores de otros; los bucles son independientes cuando son externos
unos a otros.

3.- Contadores:

Los procesos repetitivos son la base del uso de las computadoras. En estos procesos
se necesita normalmente contar los sucesos o acciones internas del bucle, como
pueden ser los elementos de un fichero, una forma de controlar el bucle es mediante
un contador. Un contador es una variable cuyo valor se incrementa o decrementa en
una cantidad constante en cada secuencia que da el bucle.

4.- Acumuladores:

Un acumulador es una variable cuya misión es almacenar una cantidad de variables


resultantes de sumas sucesivas. Realiza la misma función que un contador, con la
diferencia que el incremento o decremento de cada suma es variable en lugar de
constante, como el caso de contador.

Se representa por la instrucción S = S + N, donde N es una variable y no una


constante.

Los contadores y acumuladores deberán ser inicializados en un valor por ejemplo:


Suma = 0; ó contador = 0;

5.- Tipos De Bucles en C++:

En el C++, existen 3 tipos de bucles, los cuales son:

a) while: Sintaxis
while
(condición)

-3-
Guía de Enseñanza de Programación Estructurada

{
// Sentencias.
}

Ejemplo:

El siguiente programa muestra los n primeros numeros naturales, usando la


estructura while.

#include <iostream> using namespace std;


int main()
{
int cont=0;
int n=100;
while(cont<=n)
{
cout<<cont<<“ ”;
cont++;
}
}

Las sentencias del interior del bucle se realizan luego de analizar la condición,
es decir que primero se analiza la condición, si es verdadera se ejecutan las
sentencias, si la condición es falsa se sale del bucle.

b) do – while: Sintaxis:

do{
//Sentencias.
}while(condición);

Un bucle do- while funciona de igual manera que un while con la diferencia
que do-while ejecuta primero las sentencias y luego analiza la condición. Se
ejecutara por lo menoz una vez, si la condicion es falsa luego termina el bucle,
si la condición es verdadera seguira ejecutandose hasta que la condición se
haga falsa y termina el bucle, pasando a la siguiente linea de codigo del
programa

Ejemplo:
El siguiente ejmplo imprime los n primeros numeros naturales, usando el
bucle do – while.

#include <iostream>
using namespace std;
int main()
{

-4-
Guía de Enseñanza de Programación Estructurada

int cont=0;
int n=100;
do
{
cout<<cont<<“ ”;
cont++;
}while(cont<n);

c) for: El bucle for se conforma de 3 partes.

1.- Inicialización.
2.- Condición.
3.- Incremento.

Sintaxis:

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


{
//Sentencias
}
Las sentencias en un bucle for se ejecuta una cantidad determinada de
veces, hasta que se cumpla la condición, al ejecutarse un bucle for la
inicialización se lee una sola vez.

Ejemplo:

El siguiente ejmplo imprime los n primeros numeros naturales, usando el


bucle do – while.

#include <iostream>
using namespace std;

int main()
{
int cont,n=100;
for(cont=0;cont<=n;cont++)
{
cout<<cont<<“ ”;
cont++;
}
}

-5-
Guía de Enseñanza de Programación Estructurada

PRIMER GRUPO DE EJERCICIOS RESUELTOS - SUMATORIAS:

Ejemplo 01. Calcular las siguiente sumatoria.


n

i
i 0

#include <iostream>
using namespace std;

int main()
{
int i,n;
long suma;
cout<<"Ingrese n:
"; cin>>n; i=0;
suma=0;
while(i<=n)
{
suma=suma+i;
i++;
}
cout<<"La suma es: ";
cout<<suma;
}

Ejemplo 02. Calcular las siguiente sumatoria.

2i 4
i 0

#include <iostream>
using namespace std;

int main()
{
int i,n;
long suma;

-6-
Guía de Enseñanza de Programación Estructurada

cout<<"Ingrese n:
"; cin>>n; i=0;
suma=0;
while(i<=n)
{
suma=suma+(2*i+4);
i++;
} cout<<"La
suma es: ";
cout<<suma;
}

Se tendrá que resolver los ejemplos anteriormente dados usando los tres tipos de
bucles.

PRIMER GRUPO DE EJERCICIOS PROPUESTOS - SUMATORIAS:

Resolver las siguientes sumatorias usando el bucle while

n 2n

(i 7) 6 2i 4
i 7 i 2

Resolver las siguientes sumatorias usando el bucle for

n 4 n 3

2*(i 4) 1 i*i 2
i 4 i 1

SEGUNDO GRUPO DE EJERCICIOS RESUELTOS – EJERCICIOS BASICOS:

EJEMPLO 01: Ingresar un número, determinar si este número es el 2, el término del ingreso
del numero es cuando se ingresa el número cero, al final del bucle
mostrar la cantidad de veces que se ingreso el numero 2.

#include<iostream>
using namespace std;
int main()
{

-7-
Guía de Enseñanza de Programación Estructurada

int numero;
int cont=0;
cin>>numero;
while(numero!=0)
{
if(numero==2) cont=cont+1;//equivale a
cont++;
cin>>numero;
}
cout<<"Ingresaste el numero dos "<<cont<<" veces.";
}

EJEMPLO 02: Realizar un programa que calcule e imprima los números perfectos menores
que 1000. Un número es perfecto si la suma de sus divisores excepto
el mismo, es igual al propio número.

#include<iostream>
using namespace std;
int main()
{
int j,numero,divisor;
numero=0;
while(numero<1000)
{
numero++;
divisor=0;
j=1;
while(j<=numero/2)
{
if(numero%j==0)
divisor=divisor+j;
j++;//j=j+1; son equivalentes
}
if(divisor==numero)
cout<<numero<<endl;
}
}
EJEMPLO 03: Hallar la raíz cuadrada de un número usando multiplicaciones.

#include<iostream>
using namespace std;
int main()
{

-8-
Guía de Enseñanza de Programación Estructurada

double raiz;
float numero;
cout<<"Ingrese un
numero:"; cin>>numero;
raiz=0;
while(raiz*raiz<numero)
{
raiz=raiz+0.000001;//precisión de la raíz cuadrada
}
cout<<raiz;
}

EJEMPLO 04: Realizar un programa en el que se ingresen 3 números en orden


ascendente, obligar al usuario a realizar esta acción.

#include <iostream>
using namespace std;
int main()
{ int numero;
int menor;
int i=0;
menor=0;
for(i=0;i<3;)
{
cout<<"\nIngrese un numero: ";
cin>>numero;
if(numero>menor)
{
cout<<numero;
menor=numero;
i++;
}
else
{
cout<<"Ingrese un numero mayor.";
cout<<" ";
}
cout<<" ";
}
}

-9-
Guía de Enseñanza de Programación Estructurada

EJEMPLO 05: Realizar un programa que determine si un numero ingresado es primo o


no.

#include<iostream>
using namespace std; int
main()
{ long int numero;
int primo,i;
cout<<"Ingrese un numero: ";
cin>>numero;
primo=0;
for(i=1;i<=numero;i++)
{
if(numero%i==0) primo++;
}
if(primo==2) cout<<"\nEL NUMERO ES
PRIMO.";
else
cout<<"\nEL NUMERO NO ES PRIMO.";
}
Ejemplo 06: Ingresar un número, determinar si este número es el 2, el término del ingreso
del numero es cuando se ingresa el número cero, al final del bucle
mostrar la cantidad de veces que se ingreso el numero 2.

#include<iostream> using
namespace std;
int main()
{
int numero;
int cont=0;
cin>>numero;
while(numero!=0)
{
if(numero==2) cont=cont+1;//equivale a
cont++;
cin>>numero;
}
cout<<"Ingresaste el numero dos "<<cont<<" veces.";
}
Ejemplo 07: Ingresar un número y calcular su factorial.

#include <iostream> using


namespace std;
int main()
{

- 10 -
Guía de Enseñanza de Programación Estructurada

int numero,i;
long int factorial;
cout<<"Ingrese un
numero:"; cin>>numero;
factorial=1;
for(i=1;i<=numero;i++)
factorial=factorial*i;
cout<<"Su factorial es : "<<factorial;
}

Ejemplo 08: Realizar un programa que calcule e imprima los números perfectos menores
que 1000. Un número es perfecto si la suma de sus divisores excepto
el mismo, es igual al propio número.

#include<iostream > using


namespace std;
int main()
{
int j,numero,divisor;
numero=0;
while(numero<1000)
{
numero++;
divisor=0;
j=1;
while(j<=numero/2)
{
if(numero%j==0)
divisor=divisor+j;
j++;//j=j+1; son equivalentes
}
if(divisor==numero)
cout<<numero<<endl;
}

SEGUNDO GRUPO DE EJERCICIOS PROPUESTOS – EJERCICIOS BASICOS:

EJERCICIO 01.- Ingresar un numero n que represente las cantidad de cursos que
lleva un estudiante, luego ingresar cada nota correspondiente a
cada curso y al final calcular su promedio.

EJERCICIO 02.- Ingresar N números y contabilizar cuantos pares y cuantos


impares se ingresaron, el programa finaliza cuando el usuario
ingresa el numero 0.

- 11 -
Guía de Enseñanza de Programación Estructurada

EJERCICIO 03.- Desarrollar un programa que permita ingresar n números, luego


calcular su promedio la cantidad de numero positivos, negativos
y de ceros ingresados, calcular sus porcentajes
correspondientes y mostrarlos por pantalla.

EJERCICIO 04.- Ingresar n números naturales y calcular el mayor de ellos.

EJERCICIO 05.- Desarrollar un programa que permita generar un número


aleatorio del 1 al 50, el usuario deberá de adivinar cual es el
número generado por la computadora, cuando se adivine el
número mostrar en cuantos intentos logro adivinarlo, además
tomar las siguientes consideraciones.

Si esta cerca en un diferencia de <1-5> mostrar caliente.


Si esta cerca en una diferencia de <6-15> mostrar tibio.
Sino mostrar Frío.

Ejemplo.
Si el número generado es 45.
Si ingresamos entre <40,44> mostrar caliente
Si ingresamos <46,50> mostramos caliente
Si ingresamos <25,40>, mostrar tibio
Si ingresamos <50,65>, mostrar tibio
En otro caso mostrar Frío.
EJERCICIO 06.- Desarrollar un programa que muestre la tabla de multiplicar del 1
al 12 de un número dado.

EJERCICIO 07.- Ingresar un número entero y mostrar por pantalla su equivalente


en números romanos.

Ejemplo: Si ingresamos 231 entonces mostraremos por


pantalla, CCXXXI

Nota: Los números ingresados deberán estar entre 0 y 3999.

EJERCICIO 08.- Ingresar un número entero y mostrar por pantalla su forma de


escritura en palabras,.

Ejemplo: Si ingresamos 5121 entonces por pantalla se


mostrara cinco mil ciento veintiuno.

- 12 -

Вам также может понравиться