Академический Документы
Профессиональный Документы
Культура Документы
OBJETIVOS:
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 Usar los signos de comparación (<, >, <=, >=, ==, !=) para condicionar la
finalización del proceso repetitivo.
-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
-2-
Guía de Enseñanza de Programación Estructurada
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.
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:
a) while: Sintaxis
while
(condición)
-3-
Guía de Enseñanza de Programación Estructurada
{
// Sentencias.
}
Ejemplo:
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);
1.- Inicialización.
2.- Condición.
3.- Incremento.
Sintaxis:
Ejemplo:
#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
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;
}
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.
n 2n
(i 7) 6 2i 4
i 7 i 2
n 4 n 3
2*(i 4) 1 i*i 2
i 4 i 1
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;
}
#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
#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.
- 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.
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.
- 11 -
Guía de Enseñanza de Programación Estructurada
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.
- 12 -