Está en la página 1de 7

Universidad Nacional de Trujillo Informtica

Ingeniera de Sistemas Estructura Repetitiva Para

ESTRUCTURA REPETITIVA PARA

1. Introduccin.

La estructura Para es una estructura repetitiva que es implementada para efectuar un bucle, es
decir que una o ms sentencias se repitan cero o ms veces, mientras los valores de una progresin
aritmtica de razn creciente o decreciente se vayan asignando a una variable denominada variable de
control de ciclo. El control del ciclo se hace en forma automtica con base en parmetros que establece
el programador.

Esta estructura es usada cuando el contador que controla el ciclo se incrementa o disminuye en
un valor constante. La diferencia como se implementa esta clase de ciclos con la estructura
Mientrashacer, es que el Para maneja la inicializacin del contador y su incremento en forma
automtica, es decir, lo hace la estructura.

2. Representacin: Algoritmo.

Pseudocdigo:

Para contadorvalorInicial hasta valorFinal inc/dec valor hacer


<Instrucciones>
finPara

Diagrama de Flujo: Diagrama N-S:

Para ivi hasta vf inc 1 F Para ivi hasta vf inc 1

Instrucciones
Instrucciones
V

3. Representacin: Codificacin C++

for (i=0; i<n; i++) {


Instrucciones;
}

4. Funcionamiento.

Cuando se llega a la estructura se inicializa la variable contador, se evala la condicin; si sta es:
Falsa: se sale del bucle y se ejecutarn las dems instrucciones que se encuentren a continuacin
de la estructura, si las hubiera.
Verdadera: se ejecuta el conjunto de sentencias, se incrementa o decrementa el valor de la variable
contador y se valida nuevamente la condicin; si nuevamente es verdadera se repite la ejecucin
de las sentencias, el incremento del contador y la evaluacin de la condicin. Este proceso se
repetir mientras que al evaluar la condicin esta sea verdadera; por tanto, el bucle (repeticiones)
se detendrn cuando la condicin sea evaluada como falsa.

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -1-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

5. Ejercicios desarrollados.

5.1. Hacer un algoritmo que encuentre la suma de los primeros cinco nmeros enteros.

5.1.1. Algoritmo:

Pseudocdigo:
Inicio
NUM 5: entero (constante)
cont, suma: entero
suma 0
Para cont 1 hasta NUM inc 1 hacer
suma suma + cont
finPara
Escribir La suma de los cinco primeros nmeros es , suma
Fin

Inicio
Diagrama de Flujo:
Datos: NUM 5
NUM : constante para establecer la cantidad de cont 0
nmeros que se sumarn. suma 0
cont : variable de tipo contador que lleva el
control de nmeros sumados.
suma : variable de tipo acumulador que Para cont1, NUM, F
almacena el total de la suma de los inc 1 hacer
nmeros.
suma suma + cont
V
Diagrama N-S:
Escribir La suma de los cinco
Inicio NUM5: entero primeros nmeros es , suma
cont, suma: enteros
suma 0
Para cont 1 hasta NUM inc 1 hacer Fin
suma suma + cont

Escribir La suma de los cinco primeros nmeros es , suma


Fin

Seguimiento del Algoritmo: Prueba de escritorio.

N de
NUM cont cont <= NUM suma
corrida
0
5 1 V 1
2 V 3
1 3 V 6
4 V 10
5 V 15
F

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -2-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

5.1.2. Codificacin en C++:

#include stdafx.h
#include iostream

using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {


const int NUM = 5;
int cont, suma;
suma = 0;
for (cont=1, cont<=NUM, cont++) {
suma = suma + cont;
}
cout<<endl<<endl<<La suma de los cinco primeros numeros es:
<<suma<<endl<<endl;
}

5.2. Hacer un algoritmo que encuentre la suma de N nmeros naturales ingresados por el usuario a
travs del teclado.

5.2.1. Algoritmo:
Diagrama N-S:

Inicio n, cont, suma, numero: enteros


Escribir Ingrese cantidad de nmeros a sumar:
Leer n
suma 0
Para cont 0 hasta n-1 inc 1 hacer
Escribir Ingrese un numero:
Leer numero
suma suma + numero

Escribir La suma total es. , suma


Fin

Seguimiento del Algoritmo: Prueba de escritorio.

N de
n cont cont < n numero suma
corrida
4 0
0 V 10 10
1 V 8 18
1
2 V 15 33
3 V 7 40
4 F

5.2.2. Codificacin en C++:

#include stdafx.h
#include iostream

using namespace std;

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -3-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

int _tmain(int argc, _TCHAR* argv[]) {


int n, cont suma, numero;
cout<<endl<<Ingrese cantidad de numeros a sumar: ;
cin>>n;
suma = 0;
for (cont=0; cont<n; cont++) {
cout<<Ingrese un numero: ;
cin>>numero;
suma = suma + numero;
}
cout<<endl<<endl<<La suma total es <<suma<<endl<<endl;
}

5.3. Elaborar un algoritmo que permita leer dos nmeros enteros positivos B y E, y que calcule el
resultado de elevar el nmero B al exponente E.

5.3.1. Algoritmo:
Diagrama N-S:

Inicio b, e, cont, potencia: enteros


Escribir Valor de Base (B):
Leer b
Mientras (b < 0)
Escribir Valor de Exponente (E):
Leer e
Mientras (e < 0)
potencia 1

Para cont 1 hasta e inc 1 hacer


potencia potencia x b

Escribir b, elevado a la, e, es:, potencia


Fin

Seguimiento del Algoritmo: Prueba de escritorio.

N de
b e potencia cont cont < e
corrida
1 0
2 3 2 1 V
1
4 2 V
8 3 F

5.3.2. Codificacin en C++:

#include stdafx.h
#include iostream

using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {


int b, e, cont, potencia;
do {
cout<<endl<<Valor de Base (B): ;
cin>>b;
} while(b < 0);

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -4-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

do {
cout<<Valor de Exponente (E): ;
cin>>e;
} while(e < 0);
potencia = 1;
for (cont=1; cont<=e; cont++) {
potencia = potencia * b;
}
cout<<b<< elevado al exponente <<e<< es: <<potencia<<endl<<endl;
}

5.4. Hacer un algoritmo que calcule e imprima los nmeros primos comprendidos entre 1 y 100.
5.4.1. Algoritmo:
Diagrama N-S:

Inicio divisores, cont, numero1: enteros


Escribir numero

Para numero 2 hasta 100 inc 1 hacer


divisores 0
Para cont 1 hasta numero inc 1 hacer
numero mod cont = 0
V F
divisores divisores +
1

divisores = 2
V F
Escribir numero

Fin

Seguimiento del Algoritmo: Prueba de escritorio.

N de cont <= numero


numero divisores cont
corrida numero <= 100
1 0 1 V
2 0 1 V
1 2 V
2 3 F V
1 3 0 1
1 2
1 3
2 4 F V

5.4.2. Codificacin en C++:

#include stdafx.h
#include iostream

using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {


int divisores, cont, numero=1;

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -5-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

cout<<endl<<Los numeros primos entre 1 y 100 son: <<endl;


cout<<numero<<endl;
for (numero=2; numero<=100; numero++) {
divisores = 0;
for (cont=1; cont<=numero; cont++) {
if (numero % cont == 0) {
divisores = divisores + 1;
}
}
if (divisores == 2) {
cout<<numero<<endl;
}
}
cout<<endl<<endl;
}

5.5. Hacer un algoritmo que permita calcular el factorial de un nmero ingresado por teclado. Tener
en cuenta que no existe factorial de un nmero negativo y que el factorial de cero es 1.
5.5.1. Algoritmo:
Diagrama N-S:

Inicio numero, factorial: enteros


Escribir Ingrese un numero (>= 0):
Leer numero
numero >= 0
V F
factorial 1 Escribir No existe
factorial de un numero
Para cont 1 hasta n inc 1 hacer
negativo
factorial factorial x cont

Escribir Factorial de: , numero, es: ,


factorial
Fin

Seguimiento del Algoritmo: Prueba de escritorio.

N de corrida numero cont < n cont factorial


0 1
5 V 1 1
V 2 2
1 V 3 6
V 4 24
V 5 120
F

5.5.2. Codificacin en C++:

#include stdafx.h
#include iostream

using namespace std;

int _tmain(int argc, _TCHAR* argv[]) {


int numero, cont;
long factorial;
cout<<endl<<Ingrese un numero (>= 0): ;
cin>>numero;

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -6-


Universidad Nacional de Trujillo Informtica
Ingeniera de Sistemas Estructura Repetitiva Para

if (numero >= 0) {
factorial = 1;
for (cont=1; cont<=n; cont++) {
factorial = factorial * cont;
}
cout<<endl<<Factorial de <<numero<< es: <<factorial;
} else {
cout<<endl<<No existe factorial de un numero negativo;
}
cout<<endl<<endl;
}

Ing. Zoraida Yanet Vidal Melgarejo, Mg. -7-

También podría gustarte