Professional Documents
Culture Documents
I. OBJETIVOS
Que el estudiante:
• Defina ¿Cuál es la utilidad de una estructura repetitiva dentro de un programa?
• Desarrolle la habilidad de utilizar iteraciones dentro de programas básicos de C++.
• Identifique los elementos que conforman a la estructura repetitiva de C/C++: for, while, do-while
Muchas veces dentro de algún programa, es necesario repetir varias veces un procedimiento representado
por un conjunto de instrucciones bien definidas. Para este tipo de situaciones los lenguajes de programación
brindan un conjunto de instrucciones que se conocen con sentencias repetitivas, llamadas también ciclos,
lazos o bucles.
Instrucción for
Un lazo for es una estructura de control que permite repetir un grupo de sentencias un número especificado
de veces. Las sintaxis de un lazo for se muestran a continuación:
La expresión1, conocida como inicialización, es una asignación de una ó más variables, en la que se establece
el valor inicial de la variable de control (contador) del ciclo, la expresión2, conocida como condición, es una
relación de algún tipo que, mientras su valor sea VERDADERO, permite la ejecución de las instrucciones del
ciclo, y expresión3, conocida como incremento, es otra asignación, en donde se realiza el incremento o
decremento de la variable de control o contador del lazo.
Todas estas expresiones, contenidas en el paréntesis del for deben estar separadas por PUNTO Y COMA y no
por comas simples. Si va a utilizar más de una variable de control (dos contadores) debe separar las
_________________________________________________________________________________________ 1
Guía 7. Uso de Estructuras Repetitivas en C/C++
instrucciones de inicialización, de condición y de incremento con comas. Sin embargo, la condición puede
ser, en este caso, una sola expresión compuesta por las dos variables de control.
No es imprescindible que existan todas las expresiones dentro del paréntesis del for. Pueden aparecer vacías
algunas de ellas; o incluso, todas, por ejemplo:
for ( ; exp2 ; exp3) ó también
for (exp1 ; ; ) ó también
f o r ( ; ; )
Estas dos últimas expresiones son interesantes desde el punto de vista de su falta de término relacional, lo
que implica que el programador deberá haber previsto alguna manera alternativa de salir del lazo
(probablemente mediante BREAK ó RETURN como veremos más adelante) ya que sino, la ejecución del
mismo es infinita (o tan larga como se mantenga encendida la computadora). A este tipo de lazo o ciclo
erróneo se le denomina lazo o ciclo infinito.
Instrucción while
La sentencia repetitiva while es una de las tres iteraciones posibles en C. Su sintaxis podría expresarse de las
siguientes formas:
while(expresion) while(expresion){
//unica instruccion a repetir; //bloque de instrucciones
//a repetir
instruccion1;
Instruccion2;
.
.
.
instruccionN;
}
Instrucción do – while
Su sintaxis es la siguiente:
do do {
//instruccion a repetir; //instruccion1;
while(condicion); //Instruccion2;
.
.
.
//instruccionN;
} while(expresion);
Expresado en palabras, esto significa que: se ejecutará el bloque de instrucciones siempre la primera vez,
independientemente del resultado de la condición, y luego, dependiendo del resultado de la expresión
condicional colocada al final dentro del while, si esta es VERDADERO, se repetirá la ejecución del bloque de
instrucciones, de lo contrario, si es FALSO, se terminará el ciclo o lazo.
La diferencia fundamental entre este tipo de iteración y la anterior es que el do-while se ejecuta SIEMPRE AL
MENOS una vez, sea cual sea el resultado de expresión.
_____________________________________________________________________________________________ 2
Guía 7. Uso de Estructuras Repetitivas en C/C++
En conclusión, al comparar un lazo while con un lazo for podemos decir que: “en lenguaje C, una estructura
for es simplemente una manera abreviada de expresar una estructura while”, veamos la comparación de sus
respectivas sintaxis:
La instrucción break
La instrucción break se utiliza para producir una salida inmediata de una estructura de control selectiva
múltiple, como el switch, o para producir la salida anticipada de un ciclo o lazo de tipo while, do…while o
for. La ejecución del programa continúa con la primera instrucción afuera de la estructura escapada.
La instrucción continue
La instrucción continue permite escapar el resto de las instrucciones de un ciclo o lazo, pero a diferencia de la
instrucción break, continúa con la siguiente iteración del ciclo. La condición de continuidad del ciclo se evalúa
nuevamente después de ejecutar la instrucción continue, y si el resultado es VERDADERO el ciclo continúa,
de lo contrario (si es FALSO) se termina.
Puede utilizar la instrucción continue con los ciclos while, do…while o for.
IV. PROCEDIMIENTO
1. Cree una carpeta llamada /EjerciciosGuia7IP/ dentro de /Mis Documentos/ para que guarde sus
archivos CPP de los ejemplos y de la discusión de resultados.
2. Ahora desarrolle los siguientes programas, teniendo cuidado de aplicar estas reglas:
a. Cuide el uso de mayúsculas y minúsculas en los nombres de variables, ya que lenguaje C es
sensible a mayúsculas y minúsculas.
b. Líneas continuas en negrita, debe redactarlas en una sola línea, o sino generaran errores de
compilación.
_____________________________________________________________________________________________ 3
Guía 7. Uso de Estructuras Repetitivas en C/C++
# inc lu de <iostream>
# inc lu de<iomanip> //para trabajar con la funcion setw
u sin g namespace std;
# inc lu de<stdlib.h>// para trabajar con la funcion system(“PAUSE”)
main(){
int i;
double num,sum,mult;
setw()
Establece el ancho de un campo de salida.
system("PAUSE");
Lo que haces es poner una pausa en el programa, es decir que se espera a que el usuario presione alguna tecla
para continuar con la ejecución del mismo.
#include <iostream>
using namespace std;
#include <stdlib.h>
int main(){
int muj=0, hom=0, entrar=1;
char genero;
while(entrar==1){
cout<<"introduzca el genero de la persona \n"<<" M para
mujeres\n"<<" H para hombre:"<<endl;
cin>>genero;
if (genero == 'M' || genero=='m')
muj += 1; // esto es igual a muj=muj+1
_____________________________________________________________________________________________ 4
Guía 7. Uso de Estructuras Repetitivas en C/C++
else
cout<<"Opcion invalida."<<endl;
}
cout<<"\nRESULTADOS\n"
<<"______________________________________\n"
<<"El numero de hombres es:"<<hom<<"\n"
<<"El numero de mujeres es:"<<muj<<"\n"<<endl;
system("PAUSE");
return 0;
}
#include<iostream>
using namespace std;
#include<conio.h>
int main( )
{
float base,altura,area;
cout<<"Determinar el area de un triangulo dada la base y altura\n\n";
do
{
cout<<"Digite la base: ";
cin>>base;
}while(base<=0);
do
{
cout<<"Digite altura: ";
cin>>altura;
}while(altura<=0);
area=base*altura/2;
cout<<"\nEl area del triangulo es : "<<area;
getch();
return 0;
}
main( )
{
_____________________________________________________________________________________________ 5
Guía 7. Uso de Estructuras Repetitivas en C/C++
char op;
int num,primo=0,i;
do{
system("CLS"); //limpia la pantalla y vuelve a imprimir el menu
cout<<endl<<endl;
cout<<"*******MENU***************"<<endl;
cout<<"a. Numero primo"<<endl;
cout<<"b. Numero Par e impar"<<endl;
cout<<"c. Salir"<<endl;
cout<<"Digite una opcion del menu: ";
cin>>op;
switch(op){
case 'a': case'A':
cout<<endl;
cout<<endl<<"*****************************************";
cout<<endl<<"* Calculando si un numero es primo o no *";
cout<<endl<<"*****************************************";
cout<<endl<<endl<<"Digite un numero entero: ";
cin>>num;
if(num>0){
for(i=1;i<=num;i++){
if(num%i==0)
primo++;
}
if(primo==2)//evaluando contador si es igual a 2
cout<<endl<<"El numero es primo";
else
cout<<endl<<"El numero no es primo";
}
else
cout<<endl<<"Error !!!!. El numero es negativo o cero";
break;
break;
default:
cout<<endl<<"Opcion no valida, intente de nuevo :(";
break;
}//fin switch
cout<<endl;
system("PAUSE");
}while(op!='c' && op!='C');
}//fin main
_____________________________________________________________________________________________ 6
Guía 7. Uso de Estructuras Repetitivas en C/C++
V. DISCUSION DE RESULTADOS
El usuario debe escoger una opción digitando cualquier operador matemático (+, - , * y /), el menú debe
estar activo hasta que el usuario escoja la opción SALIR o el símbolo $.
2. Desarrolle un programa que le permita obtener el factorial de un número entero positivo ingresado
por el usuario.
1. Realizar un programa que pide al usuario un número entero (debe de ser mayor de 1), este numero se
va a utilizar para imprimir esa cantidad de números primos.
Recuerde: Un número primo es divisible únicamente por el mismo y por la unidad. Son ejemplos: 2,
3, 5, 7...
Por ejemplo:
Digite un número entero: 9
Números primos son: 2, 3, 5, 7, 11, 13, 17, 19, 23
2. Realice un programa que solicite al usuario la base y la potencia a la que hay que elevarlo. El
programa no debe utilizar ninguna de las funciones matemáticas de la biblioteca de C/C++. Usted
debe implementar la operación de potencia utilizando únicamente estructuras repetitivas for. La base
puede ser un número con punto flotante y el exponente puede ser un número entero positivo o
negativo, e incluso cero.
3. Haga un programa que genere un menú para calcular el área de diferentes cuerpos. El usuario puede
elegir calcular el volumen de: 1. Esfera, 2.Cubo, 3. Cilindro, 4. Cono o sino 5. Salir.
El usuario ingresa opción (1 hasta 4), y el programa le pide los datos necesarios, hace el cálculo del
volumen solicitado y le muestra la respuesta. El menú debe estar activo para que el usuario pueda
escoger otro cuerpo geométrico.
VII. BIBLIOGRAFIA
_____________________________________________________________________________________________ 7
Guía 7. Uso de Estructuras Repetitivas en C/C++
Fecha: ____________________
Firma: ________________________
Objetivos a evaluar:
Que el estudiante:
• Defina ¿Cuál es la utilidad de una estructura repetitiva dentro de un programa?
• Desarrolle la habilidad de utilizar iteraciones dentro de programas básicos de C++.
• Identifique los elementos que conforman a la estructura repetitiva de C/C++: for, while, do-while
Criterios SI NO
1. Identifica las estructuras repetitivas y su sintaxis vistas en clases
2. Es correcto el uso de la(s) estructura(s) repetitiva(s) aplicadas en el
ejercicio de la discusión de resultados
3. Mostró los datos correctos el programa
4. Entrego el trabajo a tiempo
Muy
Criterios Excelente Bueno Regular
Bueno
1. Puntualidad
2. Participación
3. Cooperación
_____________________________________________________________________________________________ 8