Sunteți pe pagina 1din 11

3.4 ESTRUCTURAS DE CONTROL REPETITIVAS.

En todos los lenguajes de programación modernos,


necesariamente tienen que considerar las estructuras de
control repetitivas o de iteraciones también llamadas “bucles”.
Los bucles son segmentos de programa cuyas instrucciones
se repiten varias veces mientras cumpla una condición.

a) Contador

Los procesos repetitivos son la base del uso de


computadoras. En estos procesos se necesitan contar los
sucesos o acciones internas del bucle. Un contador es una
variable cuyo valor se incrementa o decrementa de uno en
uno.

En C++ existen dos operadores que permiten incrementar


la variable de uno en uno o decrementar de uno en uno.
Por ejemplo si el valor de x es 23 cuando se utiliza los
operadores, su valor se muestra en la siguiente tabla, en la
columna “resultado”.

Operador en C++ Operación Ejemplo Resultado


++ Incremento x++ x=24
-- Decremento x-- x=22

El operador ++ es equivalente a x=x+1; mientras que el --


es equivalente a x=x-1. Estos dos operadores funcionan
cuando las variables aumentan o disminuyen de uno en
uno.

b) Acumulador

Un acumulador es una variable cuya misión es almacenar


cantidades variables de valores en la misma variables.
Este tipo de variable es muy común utilizar para totalizar
por ejemplo en sumas, promedios, etc.. Los siguientes son
ejemplos de acumuladores en C++.

suma=10;
suma=suma+20;
suma=suma+50;

En el ejemplo anterior el valor de la variable SUMA


acumulada es de 80.

c) Estructura Repetitiva “mientras”

La estructura repetitiva “mientras” es aquella en la que el


número de iteraciones no se conoce por anticipado y es
que el cuerpo del bucle se repite mientras la condición sea
verdadera. En el siguiente cuadro se pueden observar el
pseudocódigo, el diagrama de flujo y su diagrama N-S; de
este tipo de estructura repetitiva.

En este caso mientras la condición sea verdadera siempre


se irá ejecutando el grupo de instrucciones (AcciónV). En
este caso se deben tener en cuenta los siguientes
aspectos:

2
- Si a la primera evaluación la condición es falsa el grupo
de instrucciones (AcciónV) no se ejecutarán ni una sola
vez, es decir saltará directamente a la siguiente
instrucción del bucle “mientras”.

- Si la condición en ningún momento se vuelve falso, el


bucle se hace infinito, es decir, cuando se utiliza el bucle
“mientras” se debe tener cuidado en que de alguna forma
la condición se haga falso.

En C++ su estructura es:

while (condición)
{
instrucción1;
instrucción2;
instrucción3;

Instrucción N;
};

d) Estructura Repetitiva “repetir”

La estructura repetitiva “repetir” es aquella en la que el


número de iteraciones, al igual que el anterior, no se
conoce por anticipado y es que el cuerpo del bucle se
repite hasta que la condición sea falsa; es decir esta
estructura es similar al anterior con la única diferencia que
la condición se evalúa al final del bucle. En el siguiente
cuadro se pueden observar el pseudocódigo, el diagrama
de flujo y su diagrama N-S; de este tipo de estructura
repetitiva.

3
En este caso el grupo de instrucciones (AcciónV) se
ejecutará hasta la condición se haga falsa. En este caso
se deben tener en cuenta los siguientes aspectos:

- Como la condición se evalúa al final, el grupo de


instrucciones (AcciónV) se ejecuta por lo menos una vez.

- Si la condición en ningún momento se vuelve falso, el


bucle se hace infinito, es decir, cuando se utiliza el bucle
“repetir” se debe tener cuidado en que de alguna forma la
condición se haga falso.

En C++ su estructura es:

do
{
instrucción1;
instrucción2;
instrucción3;

instrucciónN;
} while (condición);

4
e) Estructura Repetitiva “desde”

Esta estructura se inicia con un “contador” que tiene un


valor inicial (Vi) y un valor final (Vf) y que en cada iteración
se incremente generalmente de uno en uno; aunque
dependiendo del lenguaje de programación se puede
incrementar de dos en dos o de tres en tres, etc.; entonces
la cantidad de veces que es ejecuta el bucle será mientras
que el valor actual del “contador” sea menor o igual al valor
final (Vf). En esta estructura el incremento en cada
iteración es automático. En el siguiente cuadro se pueden
observar el pseudocódigo, el diagrama de flujo y su
diagrama N-S; de este tipo de estructura repetitiva.

En C++ su estructura es:

for (variable=Vi;variable<=Vf;variable=variable+N);
{
instrucción1;
instrucción2;
instrucción3;

instrucciónN;
};

5
Como un ejemplo de aplicación, podríamos elaborar un
programa para determinar la suma de “N” números enteros
que se ingresan desde el teclado con las tres formas de
estructuras repetitivas que existen en C++, los cuales se
muestran en el siguiente cuadro.

1. Realice un programa que determine la siguiente sucesión:


3, 6, 9, 12, 15,18

#include<iostream.h>
#include<conio.h>
int num=0; //El número num se inicia en 0
main()
{
do
{
num+=3; //num se incrementa en 3
cout<<num<<" "; //imprime el numero incrementado
} while(num<16);
return 0;
}

6
2. Realice un programa en el cual se ingresa un número y
presente como resultado dicho número en orden inverso.

#include<iostream.h>
#include<conio.h>
int a,inv; //Declaración de números enteros
main()
{
cout<<"ingrese numeros: ";
cin>>a;
inv=0; // El número inv se inicia en 0
while(a>0)
{
inv=10*inv+a%10; //
a=a/10;
}
cout<<"el inverso es: "<<inv;
return 0;
}

3. Realice un programa, donde se ingrese “n” números y


presente al mayor

#include<iostream.h>
#include<conio.h>
float a,nro,n,may=-32767;
main()
{
cout<<"ingrese cantidad de numeros: ";
cin>>n;
for(a=1;a<=n;a++)
{
cout<<"numero"<<a<<" : ";
cin>>nro;
if(nro>may)
may=nro;
}
cout<<"el numero mayor es: "<<may;
return 0;
}

7
4. Realice un programa en el cual se ingresen diversos
números por teclado y presente como resultado la cantidad
de impares, positivos y negativos que se ha ingresado. El
programa debe detenerse al ingresar el cero.

#include<iostream.h>
#include<conio.h>
int a,b,imp,neg;
main()
{
b=0;
imp=0;
neg=0;
do
{
cout<<"ingrese numeros: ";
cin>>a;
b=b+1;
if (a%2==1)
imp=imp+1;
if (a<0)
neg=neg+1;
} while(a!=0);
cout<<"impares: "<<imp<<endl;
cout<<"negativos: "<<neg<<endl;
cout<<"positivos: "<<(b-neg-1)<<endl;
return 0;
}

5. Realice un programa para obtener la tabla de multiplicar

#include<iostream.h>
#include<conio.h>
float a,x,n;
main()
{
cout<<"ingrese tabla a multiplicar (n): ";
cin>>n;
for(a=1;a<=12;a++)
{

8
x=n*a;
cout<<n<<"X"<<a<<"="<<x<<endl;
}
return 0;
}

6. Realice un programa para obtener el promedio ponderado


de “n” números con sus respectivos créditos.

#include<iostream.h>
#include<conio.h>
float a,n,p,nro,sn,sc;
main()
{
sn=0;
sc=0;
cout<<"ingrese cantidad de numeros: ";
cin>>n;
for(a=1;a<=n;a++)
{
cout<<"numero"<<a<<" ";
cin>>nro;
cout<<"credito"<<a<<" ";
cin>>p;
sn=sn+nro*p;
sc=sc+p;
}
cout<<"su promedio ponderado es: "<<sn/sc;
return 0;
}

Problemas Propuestos

Problema 01

Elabore un programa en C++ para determinar el valor de la


resistencia eléctrica equivalente de cuatro resistencias que están
conectados en paralelo. Se debe ingresar los valores de cada
resistencia.

9
Problema 02

Elabore un programa en C++ que determine la diferencia de 2


números que se ingresan desde el teclado, dicha diferencia
siempre debe ser positiva.

Problema 03

Presenta un programa que determine el consolidadol (C f) de una


determinada asignatura. Dicho consolidado se determina de la
siguiente manera:
Cf =0.3*n1 +0.5*n2 +0. 2*n3
Donde:

n1: Es la nota cognitiva


n2: Es la nota procedimental.
n3: Es la nota actitudinal.

Se debe tener en cuenta que todas las notas son de 0 a 20, es


decir si alguna de las notas ingresadas esta fuera del rango debe
salir un mensaje comunicando dicho error.

Problema 04

Elabore un programa para solucionar un problema que tiene el


dueño de un restaurant. Dicho restaurant ofrece un descuento del
10% para consumos de hasta S/. 45.00, un descuento del 20%
para consumos mayores. Además se debe aplicar el impuesto
selectivo al consumo del 2% sobre el monto del consumo y a
dicho resultado se le debe aplicar el 19% del I.G.V. el propietario
desea saber cual es el monto que debe cobrar a un cliente por un
determinado consumo.

10
Problema 05

Elabore un programa que determine el importe a pagar por un


alumno de una universidad privada cuya cuota tiene un porcentaje
de descuento que se establece en la tabla adjunta y esta en
función al colegio de procedencia y de la clase de colegio en el
cual a terminado sus estudios secundarios; siendo la pensión
normal de S/.400.00. Luego generalizar.

TIPO DE
COLEGIO COLEGIO
B D
Nacional 50% 40%
Particular 28% 20%

11

S-ar putea să vă placă și