Professional Documents
Culture Documents
I. OBJETIVOS
Instruccin for
Un lazo f o r es una estructura de control que permite repetir un grupo de sentencias un nmero especificado de
veces. Las sintaxis de un lazo for se muestran a continuacin:
Mtodo 1: Para una sola instruccin a repetir Mtodo 2: Para repetir un bloque de instrucciones
for(expresion1; expresion2; expresion3)
for(expresion1; expresion2; expresion3) {
instruccinUnica; //instruccin1 ;
//instruccin2 ;
.
.
//instruccionN;
1 / 11
Gua #7: Uso de Estructuras Repetitivas en C/C++
Todas estas expresiones contenidas en el parntesis del for deben estar separadas por (;) PUNTO Y COMA y no
por comas simples.
Si va a utilizar ms de una variable de control (dos contadores), debe separar las instrucciones de inicializacin,
de condicin y de incremento con comas. Sin embargo, la condicin puede ser, en este caso, una sola expresin
compuesta por las dos variables de control.
Estas dos ltimas expresiones son interesantes desde el punto de vista de su falta de trmino relacional, lo que
implica que el programador en C deber haber previsto alguna manera alternativa de salir del lazo
(probablemente haciendo uso de las instrucciones b r e a k r e t u r n como veremos ms adelante) ya que sino, la
ejecucin del mismo se volver infinita (o tan larga como se mantenga encendida la computadora). A este tipo de
lazo o ciclo errneo se le denomina lazo o ciclo infinito.
Instruccin while
La sentencia repetitiva while es el segundo de tipo de iteraciones posibles en C. Su sintaxis podra expresarse de
las siguientes formas
Mtodo 1: Para una sola instruccin a repetir Mtodo 2: Para repetir un bloque de instrucciones
while(condicion) while(condicion)
instruccionUnica; {
//bloque de instrucciones a repetir
instruccion1;
Instruccion2;
.
.
.
instruccionN;
}
La expresin es evaluada antes de iniciar el primer ciclo, por lo que, en caso de ser falsa esta condicin, nunca
entrara al ciclo y C continuara con el resto del programa, ignorando todo el lazo while.
Por lo general, dentro del bloque de instrucciones, se modifican variables de la expresin condicional del while,
para controlar as la duracin de la iteracin.
Introduccin a la Programacin 2
Gua #7: Uso de Estructuras Repetitivas en C/C++
Instruccin do while
Su sintaxis es la siguiente:
Mtodo 1: Para una sola instruccin a repetir Mtodo 2: Para repetir un bloque de instrucciones
do do {
instruccion Unica a repetir; //instruccion1;
while(condicion); //Instruccion2;
.
.
//instruccionN;
} while(condicion);
Expresado en palabras, esto significa que: se ejecutar el bloque de instrucciones siempre la primera vez,
independientemente del resultado de la condicin, y luego, dependiendo del resultado de la expresin
condicional colocada al final dentro del while, si esta es VERDADERO, se repetir la ejecucin del bloque de
instrucciones, de lo contrario se terminar el ciclo o lazo.
El lenguaje C/C++ presenta dos instrucciones para controlar la ejecucin de un ciclo/lazo, para as alterar la
ejecucin normal en cada ciclo. Estas dos instrucciones son: break y continue.
La instruccin break
Esta instruccin se utiliza para producir una salida inmediata de cualquier estructura de control, ya sea selectiva
mltiple (como el switch), o para producir la salida anticipada de un ciclo o lazo de tipo while, dowhile o for.
La ejecucin del programa contina con la primera instruccin fuera de la estructura de control suspendida.
Por ejemplo:
#include<iostream>
using namespace std;
main(){
int num;
num = 1;
while (num <= 10)
{
if (num == 5)
{
break;
};
cout<<" - "<<num;
num = num + 1;
};
cout<<endl;
system("pause");
}
Introduccin a la Programacin 3
Gua #7: Uso de Estructuras Repetitivas en C/C++
Cuando la variable num toma el valor 5, la condicin del while se cumple, al ingresar al bloque se evala en la
estructura if si num es igual a 5 y como es verdadero se ejecuta el break saliendo del bloque while.
num termina con el dato 5 pues jams se ejecuta la suma num = num + 1.
La instruccin continue
Esta permite escapar el resto de las instrucciones del ciclo o lazo en ejecucin, pero a diferencia de la instruccin
break, lenguaje C/C++ contina con la siguiente iteracin de ese ciclo. La condicin de continuidad del ciclo se
evala nuevamente despus de ejecutar la instruccin continue, y si el resultado es VERDADERO el ciclo
contina, de lo contrario (si es FALSO) se termina.
Por ejemplo:
#include<iostream>
using namespace std;
main(){
int num;
num = 0;
while (num <= 10)
{
num = num + 1;
if (num == 5)
{
continue;
};
cout<<" - "<<num;
};
cout<<endl;
system("pause");
}
Puede utilizar la instruccin continue con los ciclos while, dowhile o for.
Introduccin a la Programacin 4
Gua #7: Uso de Estructuras Repetitivas en C/C++
El lazo f o r se suele utilizar cuando se sabe cuantas veces se repetir un bloque de instrucciones, en
cambio las 2 estructuras restantes (w h i l e ) y (d o - w h i l e ) se utilizan cuando no se conoce con exactitud
cuantas veces se repetir un bloque, sino que todo depende de una condicin a evaluar al inicio o final de
c/ciclo
Los lazos f o r y w h i l e son similares, porque ambos pueden repetir NINGUNA, UNA o VARIAS VECES
un bloque de instrucciones. En otras palabras, podemos decir que: en lenguaje C/C++, una estructura
for es simplemente una manera abreviada de expresar una estructura while.
Veamos la comparacin de sus respectivas sintaxis (observe con cuidado la ubicacin de las 3 expresiones
en ambas estructuras):
expresion3
}
Introduccin a la Programacin 5
Gua #7: Uso de Estructuras Repetitivas en C/C++
IV. PROCEDIMIENTO
1. Cree una carpeta que tenga su nmero de carnet en Documentos para que guarde sus archivos de
ejemplos y del anlisis de resultados.
2. Ahora desarrolle los siguientes programas, teniendo cuidado de aplicar estas reglas:
Cuide el uso de maysculas y minsculas en al redactar palabras reservadas y los nombres de
variables, ya que lenguaje C es sensible a maysculas y minsculas.
Las lneas en negrita, redactarlas en una sola lnea, o sino generaran errores de compilacin.
main(){
/*numero para ver su tabla multiplicar(TM)*/
int N;
/*contador usado para generar TM del N anterior */
int i;
/*valor de multiplicar contador por N */
int mul;
if((N>=1)&&(N<=10)){
cout<<"\nTabla de multiplicar del "<<N;
/*la estructura for controla la cantidad de veces que se realizara la
operacin multiplicacion*/
for(i=1;i<=10;i=i+1){
mul=N*i; //operacion multiplicacion
cout<<"\n "<<N<<" por "<<i<<" es "<<mul; //mostando la salida
}//fin for i
}else{
cout<<"\n\nError, numero incorrecto..";
}//fin if
getch();
}//fin main
Introduccin a la Programacin 6
Gua #7: Uso de Estructuras Repetitivas en C/C++
main(){
/*numero para ver su tabla multiplicar(TM)*/
int N;
/*contador usado para generar TM del N anterior */
int i;
/*valor de multiplicar contador por N */
int mul;
if((N>=1)&&(N<=10)){
cout<<"\nTabla de multiplicar del "<<N;
getch();
}//fin main
main(){
/*numero para ver su tabla multiplicar(TM)*/
int N;
/*contador usado para generar TM del N anterior */
Introduccin a la Programacin 7
Gua #7: Uso de Estructuras Repetitivas en C/C++
int i;
/*valor de multiplicar contador por N */
int mul;
if((N>=1)&&(N<=10)){
cout<<"\nTabla de multiplicar del "<<N;
getch();
}//fin main
10. En el ejercicio 4 se permite al usuario ingresar los valores necesarios para mostrar un conteo en pantalla,
los valores necesarios son: un valor inicial, un valor final y un incremento.
Por ejemplo: si tenemos los siguientes valores valor inicial de 4, un valor final de 16 y un incremento de 3,
se mostrara en pantalla:
<4> < 7> <10> < 13> <16>
#include <iostream>
using namespace std;
#include <conio.h>
main(){
int ni,nf;//valor inicial y final del conteo
int inc;//valor del incremento/decremento
//conteo ascendente
if((ni<=nf)&&(inc>0)){ //if-1
cout<<"\n\n ahora vera su conteo ascendente:";
for( ;ni<=nf;ni=ni+inc){
cout<<"\t<"<<ni<<">";
Introduccin a la Programacin 8
Gua #7: Uso de Estructuras Repetitivas en C/C++
}//fin for
}else{
//conteo descendente
if((ni>=nf)&&(inc>0)){ //if-2
cout<<"\n\n ahora vera su conteo descendente:";
for( ;ni>=nf;ni=ni-inc){
cout<<"\t<"<<ni<<">";
}//fin for
}
else{
cout<<"\n\tError, conteo imposible";
}//fin if-2
}//fin if-1
getch();
}//fin main
Nota: en las estructuras for se omite la parte de inicializacin del contador, ya que se utiliza para este
ejercicio la variable ni como variable de control de repeticin y esta variable ya tiene un valor el cual se
digito como una entrada de datos al inicio del programa.
11. Pruebe el programa, con estos datos por ejemplo y responda en todos los casos se mostr el conteo
solicitado? Si/No, Explique:
Valor inicial: 11, Valor final: 3, decremento: 2
Valor inicial: 2, Valor final: 7, incremento: 3
Valor inicial: 9, Valor final: 5, decremento: 1
Valor inicial: 23, Valor final: 41, incremento: 5
int main(){
//contadores varios
int totemp=0; //total empleados
int muj=0,hom=0; //total de mujeres y hombres
Introduccin a la Programacin 9
Gua #7: Uso de Estructuras Repetitivas en C/C++
while(entrar=='s' || entrar=='S'){
cout<<"\n\t(M para mujeres\tH para hombres) :";
genero=getche();
switch(genero){
case 'm':case 'M':
muj=muj+1; // esta sentencia es igual a muj+=1
totemp++;
cout<<"\ttotal Hombres="<<hom<<" Mujeres="<<muj<<"\n";
break;
case 'h':case 'H':
hom+=1;
totemp++;
cout<<"\ttotal Hombres="<<hom<<" Mujeres="<<muj<<"\n";
break;
default:
printf("\tOpcion invalida..");
}//fin switch
}//fin while
cout<<"\n\n------------------RESULTADOS--------------------------\n";
cout<<"_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n";
cout<<"\nEl total de empleados "<<totemp<<" , se distribuyen asi:";
cout<<"\nEl total de empleados del sexo femenino es:"<<muj;
cout<<"\nEl total de empleados del sexo masculino es:"<<hom;
cout<<"\n\n";
system("PAUSE");
return 0;
}//fin main
Notas:
a) Observe el uso de la funcin system (PAUSE). Esta genera una pausa en el programa, la cual finaliza
cuando usuario toca cualquier tecla y as puede continuar con la ejecucin del mismo.
Introduccin a la Programacin 10
Gua #7: Uso de Estructuras Repetitivas en C/C++
V. DISCUSION DE RESULTADOS
En la prctica y haciendo uso del compilador Dev-C++ debe realizar los siguientes ejercicios:
1. Elabore un programa que permita al usuario mostrarle el factorial de un numero N entero positivo, si el
usuario digita un dato incorrecto mostrarlo por medio de un mensaje.
2. Permita a un docente ingresar un total de notas, para que luego las ingrese una a una. Una nota es vlida
en el rango (0.0-10.0). Al finalizar el ingreso de todas las notas, el programa le muestra al usuario estos
resultados:
a. Porcentaje de reprobados
b. Nota promedio de los alumnos reprobados
c. Total de notas que son mayores de 7.0
1. Realizar un programa que pide al usuario un nmero entero positivo, luego el programa determina e
indica si es o no PRIMO. Si no es primo, mustrele por que no es primo? Recuerde que un nmero
entero es primo cuando es divisible nicamente por el mismo y por la unidad.
Ejemplos de nmeros primos: 1, 5, 13, 37, etc. porque solo son divisible por uno y ellos mismos.
Ejemplo de nmero no primo: 42, porque adems de ser divisible por 42 y por 1, tambin es divisible por
2, divisible por 3, divisible por 6, divisible por 7, divisible por 14, y divisible por 21.
2. Realice un programa que solicite al usuario 2 nmeros enteros (que no sean negativos), luego muestre
Cual de estas 3 operaciones desea realizar el usuario? a. Multiplicacin, b. Divisin o c. Potencia.
VII. BIBLIOGRAFIA
Introduccin a la Programacin 11