Está en la página 1de 8

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA


CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas

ESTRUCTURA ITERATIVA: do - while


Repite la ejecución de la acción mientras la expresión lógica siga siendo verdad. Cuando sea falsa, el proceso termina.
Debe observarse que la acción y la variación se realizan por lo menos una vez.
Esta estructura de programación repetitiva es recomendable cuando la acción se va a realizar de todas maneras, por lo
menos una vez, o cuando no se sabe la cantidad de veces que se va a repetir la acción.
inicialización
do {
acción
variación
}while (condición);

Por ejemplo, imprimir los 100 primeros números naturales:

int n=1; // inicialización


do {
Imprimir n
n++ // aumenta en 1
} while (n <=100);

Note que mientras que la condición sea verdad, se seguirá ejecutando la acción
n++ equivale a escribir n=n+1

ESTRUCTURA ITERATIVA: while


Repite la ejecución de la acción mientras la expresión lógica siga siendo verdad. Cuando sea falsa, el proceso termina.
Similar a la estructura do-while sólo que en ésta estructura es posible que la acción y la variación no se realicen ninguna
vez y esto puede ocurrir cuando el resultado de la condición es falsa desde un comienzo.

inicialización
while (condición) {
acción
variación
}

Por ejemplo, imprimir los 100 primeros números naturales:

int n=1; // inicialización


while (n <=100) {
Imprimir n
n++ // aumenta en 1
}
Note que mientras que la condición sea verdad, se seguirá ejecutando la acción

ESTRUCTURA ITERATIVA: for


Es un while simplificado, mucho más rápido y eficaz. Muy preferido por los programadores. Veamos su forma general:

for (inicialización; condición; variación) {


acción;
}

Por ejemplo, imprimir los 100 primeros números naturales:

for (int n=1; n <=100; n++) {


Imprimir n;
};

Note que la inicialización y la variación se relacionan con la variable de control utilizada en la condición.

Elaborado por Ing. Julio Vásquez Paragulla 1


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas
En este caso lo primero que hará será la inicialización ( n=1;) luego comprobará si es cierta la comparación (n <=100) y de
ser verdad, ejecutará las instrucciones. Finalmente ejecutará la variación ( n++ ) . Luego comprobará de nuevo la
comparación para continuar con el proceso repetitivo o para finalizar cuando el resultado de la comparación sea falsa.
Observe que todo proceso repetitivo necesita de una previa inicialización de algún contador, acumulador, estado, lo cual
permite la evaluación de la condición que controla la repetición del proceso.

La inicialización puede contener varias ordenes de asignación separadas por comas y terminando con punto y coma.
Igualmente, la variación puede contener varias ordenes de variación y/o acumulación separadas por comas y terminando
con el paréntesis del for, Por ejemplo, vea el siguiente for hipotético:

for (int a=1, b=0, c=2; a<= n; a++, b+=3, c+= x) {


Mas ordenes
}

La inicialización puede incluir la declaración de la variable pero no necesariamente debe ser así, por ejemplo:

int x;
for (x=1; x<=100; x++){
más ordenes
}

Cuál es la diferencia entre declararlo antes del for con hacer la declaración dentro de la inicialización?. Simplemente el
alcance para la utilización de la variable.

Cuando se declara antes del for, el alcance de la variable se extiende dentro y fuera de las llaves del for; es decir que
podemos utilizar la variable dentro y también fuera de las llaves; en cambio, cuando se declara dentro de la inicialización, el
alcance se limita solamente dentro de las llaves del for; es decir que sólo se puede utilizar la variable dentro de las llaves
del for y nó fuera de ellas.

Una pregunta frecuente es: cual estructura de repetición debo utilizar?. En realidad, la respuesta de un programador
experimentado seria: cualquiera. Sin embargo, para efectos de un aprendizaje progresivo daré el siguiente criterio de
decisión: Cuando usted tenga identificado el rango de la repetición: desde hasta, utilice for y cuando no tenga identificado
dicho rango utilice do-while o while. Cuando el proceso se realiza de todas maneras, por lo menos una vez, use do-while.

Por ejemplo: muestre los números capicúas de 3 cifras. La estructura más adecuada seria for porque usted va a repetir el
proceso desde 100 hasta 999.

Otro ejemplo: muestre la cantidad de cifras que tiene un número entero. La estructura más adecuada sería do-while o
while porque no se puede identificar la cantidad de veces que ocurrirá la repetición. Tiene que buscar una condición de
continuidad de la repetición.

Un acumulador es aquel que cambia su valor asimismo aumentando, disminuyendo, multiplicando, dividiendo.
Ejm:
suma += valor; equivale a escribir suma = suma + valor;
saldo –= valor; equivale a escribir saldo = saldo - valor;
factor *= valor; equivale a escribir factor = factor * valor;
n /= 10; equivale a escribir n = n / 10;

ESTRUCTURA INTERACTIVA

Se dice que existe una estructura interactiva cuando la repetición depende de la respuesta del usuario, haciendo preguntas
como: desea continuar? (1=Si,0= no). Para lo cual debe utilizar una estructura iterativa do-while.

Elaborado por Ing. Julio Vásquez Paragulla 2


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas
ESTRUCTURAS REPETITIVAS INTERACTIVAS

PROBLEMA 1:
Diseñe un programa que permita realizar una encuesta acerca de los colores favoritos de las personas a escoger entre:
verde, azul, amarillo, rosado, otro. Por cada encuestado debe mostrar la cantidad de votos de cada color así como el(los)
color(es) favoritos. Aplicar una estructura repetitiva interactiva

#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
// variables
int c1=0, c2=0, c3=0, c4=0, c5=0; // contadores
int color, sigue;

// estructura repetitiva interactiva


do{
// ingresa color
cout<<"elija su color favorito: [1=verde, 2=azul, 3=amarillo, 4=rosado, 5=otro]";
cin>>color;

// actualiza contadores dependiendo del color ingresado


switch(color){
case 1: c1++; break;
case 2: c2++; break;
case 3: c3++; break;
case 4: c4++; break;
default: c5++; break;
}
// encuentra el mayor valor
int mayor=c1;
if(c2>mayor) mayor=c2;
if(c3>mayor) mayor=c3;
if(c4>mayor) mayor=c4;
if(c5>mayor) mayor=c5;

// salida
cout<<("\ncolores preferidos: ");
if(mayor==c1)
printf("Verde, ");
if(mayor==c2)
printf("Azul, ");
if(mayor==c3)
printf("Amarillo, ");
if(mayor==c4)
printf("Rosado, ");
if(mayor==c5)
printf("Otro");

// pregunta interactiva
cout<<"\nDesea continuar (1=si, 0=no)?"; cin>>sigue;
}while(sigue==1);

Valide los datos de entrada

Elaborado por Ing. Julio Vásquez Paragulla 3


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas

PROBLEMA 2:
En una estación de control se desea registrar el peso que transportan los vehículos de transporte pesado para determinar,
por cada vehículo la cantidad de vehículos, el peso promedio, el mayor y el menor peso registrado. Aplicar una estructura
repetitiva interactiva

#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
// variables
int c=0; // contador
double mayor=0, menor=0, suma=0; // conservan su ultimo valor
double peso=0, prom;
int sigue=1; //si

do{

//printf("ingrese peso: "); scanf_s("%f",&peso);


cout<<"ingrese peso: "; cin>>peso;
suma += peso;
c++;

if( c == 1){
mayor = peso;
menor = peso;
}
else{
if(peso > mayor)
mayor=peso;
if(peso < menor)
menor=peso;
}
prom = suma / c;
cout<<"cantidad de vehiculos:"<<c<<endl;
printf("peso promedio: %10.2f\n",prom);
printf("peso mayor : %10.2f\n",mayor);
printf("peso menor : %10.2f\n",menor);

cout<<"\nDesea continuar? 1=si, 0=no: ";cin>>sigue;


} while(sigue==1);

Valide los datos de entrada

Elaborado por Ing. Julio Vásquez Paragulla 4


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas
ESTRUCTURAS REPETITIVAS ITERATIVAS: while, do while, for

PROBLEMA 3:
Muestre los N primeros números pares.

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;

void main(){
int n, par;

cout<<"ingrese valor entero para N: "; cin>> n;


for(int i=1; i<=n; i++){
par = i * 2;
printf("%3d.-%10d\n", i,par);
}
_getch();
}

Haga los cambios necesarios para validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 4:
Dado un número entero positivo, muestre sus divisores, la cantidad y la suma de ellos.

#include "stdafx.h"
#include <iostream>
#include <conio.h>

using namespace std;

void main(){
int num;
int c=0, suma=0;

cout<<"ingrese un numero entero positivo: "; cin>> num;


cout<<"sus divisores son: ";
for(int d=1; d<=num; d++){
if(num%d == 0){
cout<< d<<", ";
c++;
suma += d;
}
}
cout<<endl;
cout<<"cantidad de divisores: "<< c<<endl;
cout<<"suma de divisores: "<< suma<<endl;

_getch();
}

Haga los cambios necesarios para validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 5:
Determine la suma de la siguiente serie matemática para N términos:

1 + x + x2 + x3 + …

#include "stdafx.h"
Elaborado por Ing. Julio Vásquez Paragulla 5
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

void main(){
int n;
double x, suma=0, term;

cout<<"ingrese valor de N: "; cin>> n;


cout<<"ingrese valor de X: "; cin>> x;
for(int i=1; i<=n; i++){
term = pow(x,i-1);
suma += term;
if(i<n)
printf(" %12.2f +",term);
else
printf(" %12.2f",term);

if(i%5==0)
printf("\n");
}
printf("\nla suma total es: %0.2f\n",suma);

_getch();
}

Haga los cambios necesarios para validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 6:
Una empresa automotriz desea registrar los reportes de la cantidad de vehículos defectuosos que se identifiquen en cada
uno de los siguientes paises: Peru, Chile, Argentina. Por cada reporte registrado debe mostrar la siguiente información en
forma de tabla:

Peru Chile Argentina


Cantidad 999 999 999
Mayor 999 999 999
Menor 999 999 999

Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 7:
Determine el valor de PI con la suma de los N primeros términos de la siguiente serie matemática:

4 -4/3 +4/5 -4/7 +4/9 -…

Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 8:
Dado el lado de un cuadrado, dibújelo con asteriscos considerando la posibilidad de hacerlo sólo el borde o relleno
completo. Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

Ejm. Lado = 5

Sólo con borde: relleno:

* * * * * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * * * * *

Elaborado por Ing. Julio Vásquez Paragulla 6


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas

PROBLEMA 9:
Muestre y sume los N primeros términos de la siguiente serie matemática: Validar los datos de entrada y aplicar una
estructura repetitiva interactiva.

10 11 13 16 20 25 …

PROBLEMA 10:
Muestre y sume los N primeros términos de la serie de Fibonacci: Validar los datos de entrada y aplicar una estructura
repetitiva interactiva.

1 1 2 3 5 8 13 21 …

PROBLEMA 11:
Dado un número entero positivo, determine si es o no es capicúa. Validar los datos de entrada y aplicar una estructura
repetitiva interactiva.

PROBLEMA 12:
Muestre y sume los N primero términos de la siguiente serie: Validar los datos de entrada y aplicar una estructura
repetitiva interactiva.

7 +9/4 -11/7 +13/10 +15/13 -17/16 + …

PROBLEMA 13:
Dado dos números enteros, determine su producto sin utilizar el operador de multiplicación. Validar los datos de entrada y
aplicar una estructura repetitiva interactiva.

PROBLEMA 14:
Dado un número entero, forme un nuevo número con sus dos cifras extremas cuyo valor sea el mayor posible.

Ejm. Numero = 7656458


Respuesta: 87

Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 15:
Muestre los N primeros números primos. Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 16:
Una Universidad ha registrado en un proceso de admisión la cantidad de postulantes a las carreras profesionales
de Ingeniería: Mecánica, Naval, Mecatrónica, Mecánica Eléctria, Otra.

Determine el porcentaje que


corresponde a cada carrera y el nombre(s) de la(s) carrera(s) que tiene(n) la mayor cantidad depostulantes.

Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

PROBLEMA 17:
Una empresa ha clasificado a sus productos en 3 categorías: A, B, C. Cualquier producto puede ser de
origen Nacional o Importado.Se quiere conocer las preferencias de los potenciales clientes por
lo que, por cada cliente que participa, su programa debe mostrar la siguiente información:

Producto Nacional Importado Total Preferencia


A 99 99 999 Nacional
B 99 99 999 Importado
C 99 99 999 Cualquiera

Validar los datos de entrada y aplicar una estructura repetitiva interactiva.

Elaborado por Ing. Julio Vásquez Paragulla 7


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA03
ESTRUCTURAS DE CONTROL REPETITIVAS
interactivas, iterativas
PROBLEMA 18:
Muestre y sume los N primeros términos de la siguiente serie: 5, 6, 8, 11, 15, …… Validar los datos de entrada y aplicar
una estructura repetitiva interactiva.

PROBLEMA 19:
Dado un número entero positivo, identifique la cifra mayor, la cifra menor y la suma de ellas. Verifique que
el número sea positivo y tenga por lo menos 2 cifras. Validar los datos de entrada y aplicar una estructura repetitiva
interactiva.

PROBLEMA 20:
Dado un número entero positivo, forme el mayor número posible con las cifras mayor y menor que
contenga. Verifique que el número sea positivo y tenga por lo menos 2 cifras. Validar los datos de entrada y aplicar una
estructura repetitiva interactiva.

Elaborado por Ing. Julio Vásquez Paragulla 8

También podría gustarte