Está en la página 1de 5

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA03 ESTRUCTURAS DE CONTROL REPETITIVAS interactivas, iterativas


ESTRUCTURA ITERATIVA: do - while Repite la ejecucin de la accin mientras la expresin lgica siga siendo verdad. Cuando sea falsa, el proceso termina. Debe observarse que la accin y la variacin se realizan por lo menos una vez. Esta estructura de programacin repetitiva es recomendable cuando la accin 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 accin. inicializacin do { accin variacin }while (condicin); Por ejemplo, imprimir los 100 primeros nmeros naturales: int n=1; // inicializacin do { Imprimir n n++ // aumenta en 1 } while (n <=100); Note que mientras que la condicin sea verdad, se seguir ejecutando la accin

ESTRUCTURA ITERATIVA: while Repite la ejecucin de la accin mientras la expresin lgica siga siendo verdad. Cuando sea falsa, el proceso termina. Similar a la estructura do-while slo que en sta estructura es posible que la accin y la variacin no se realicen ninguna vez y esto puede ocurrir cuando el resultado de la condicin es falsa desde un comienzo. inicializacin while (condicin) { accin variacin } Por ejemplo, imprimir los 100 primeros nmeros naturales: int n=1; // inicializacin while (n <=100) { Imprimir n n++ // aumenta en 1 } Note que mientras que la condicin sea verdad, se seguir ejecutando la accin

ESTRUCTURA ITERATIVA: for Es un while simplificado, mucho ms rpido y eficaz. Muy preferido por los programadores. Veamos su forma general:

for (inicializacin; condicin; variacin) { accin; } Por ejemplo, imprimir los 100 primeros nmeros naturales: for (int n=1; n <=100; n++) { Imprimir n; }; Note que la inicializacin y la variacin se relacionan con la variable de control utilizada en la condicin.

Elaborado por Ing. Julio Vsquez Paragulla

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 inicializacin ( n=1;) luego comprobar si es cierta la comparacin (n <=100) y de ser verdad, ejecutar las instrucciones. Finalmente ejecutar la variacin ( n++ ) . Luego comprobar de nuevo la comparacin para continuar con el proceso repetitivo o para finalizar cuando el resultado de la comparacin sea falsa. Observe que todo proceso repetitivo necesita de una previa inicializacin de algn contador, acumulador, estado, lo cual permite la evaluacin de la condicin que controla la repeticin del proceso.

La inicializacin puede contener varias ordenes de asignacin separadas por comas y terminando con punto y coma. Igualmente, la variacin puede contener varias ordenes de variacin y/o acumulacin separadas por comas y terminando con el parntesis del for, Por ejemplo, vea el siguiente for hipottico: for (int a=1, b=0, c=2; a<= n; a++, b+=3, c+= x) { Mas ordenes } La inicializacin puede incluir la declaracin de la variable pero no necesariamente debe ser as, por ejemplo: int x; for (x=1; x<=100; x++){ ms ordenes } Cul es la diferencia entre declararlo antes del for con hacer la declaracin dentro de la inicializacin?. Simplemente el alcance para la utilizacin 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 tambin fuera de las llaves; en cambio, cuando se declara dentro de la inicializacin, el alcance se limita solamente dentro de las llaves del for; es decir que slo se puede utilizar la variable dentro de las llaves del for y n fuera de ellas. Una pregunta frecuente es: cual estructura de repeticin 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 decisin: Cuando usted tenga identificado el rango de la repeticin: 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 nmeros capicas de 3 cifras. La estructura ms adecuada seria for porque usted va a repetir el proceso desde 100 hasta 999. Otro ejemplo: muestre la cantidad de cifras que tiene un nmero entero. La estructura ms adecuada sera do-while o while porque no se puede identificar la cantidad de veces que ocurrir la repeticin. Tiene que buscar una condicin de continuidad de la repeticin.

Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA03 ESTRUCTURAS DE CONTROL REPETITIVAS interactivas, iterativas


ESTRUCTURAS REPETITIVAS INTERACTIVAS PROBLEMA 1: Disee 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. #include <iostream.h> #include <conio.h> // variables globales int c1=0, c2=0, c3=0, c4=0, c5=0; // contadores void main(){ int color, mayor; char rpta; do{ cout<<elija su color favorito: [1=verde, 2=azul, 3=amarillo, 4=rosado, 5=otro]; cin>>color; 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=c1; if(c3>mayor) mayor=c2; if(c4>mayor) mayor=c3; if(c5>mayor) mayor=c4; cout<<colores preferidos: ; if(mayor==c1) cout<<Verde, if(mayor==c2) cout<<Azul, ; if(mayor==c3) cout<<Amarillo, ; if(mayor==c4) cout<<Rosado, ; if(mayor==c5) cout<<Otro; cout<<Desea continuar (S=si, N=no)?; cin>>rpta; }while(rpta==s || rpta==S); } PROBLEMA 2: En una estacin de control se desea registrar el peso que transportan los vehculos de transporte pesado para determinar, por cada vehculo la cantidad de vehculos, el peso promedio, el mayor y el menor peso registrado. #include <iostream.h> #include <conio.h> // variables globales int c=0; // contador double mayor, menor, suma=0; void main(){ double peso, prom; cout<<ingrese su peso: ; cin>>peso; suma += peso; Elaborado por Ing. Julio Vsquez Paragulla

// conservan su ultimo valor

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA03 ESTRUCTURAS DE CONTROL REPETITIVAS interactivas, iterativas


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 vehculos: << c <<endl; cout<<peso promedio: << prom <<endl; cout<<peso mayor: <<mayor<<endl; cout<<peso menor: << menor<<endl; }

PROBLEMA 3: Una empresa automotriz desea registrar los reportes de la cantidad de vehculos defectuosos que se identifiquen en cada uno de los siguientes paises: Peru, Chile, Argentina. Por cada reporte registrado debe mostrar la siguiente informacin en forma de tabla: Peru 999 999 999 Chile 999 999 999 Argentina 999 999 999

Cantidad Mayor Menor

ESTRUCTURAS REPETITIVAS ITERATIVAS: while, do while, for PROBLEMA 4: Muestre los N primeros nmeros pares. #include <iostream.h> #include <conio.h> void main(){ int n, par; cout<<ingrese valor entero para N: ; cin>> n; for(int i=1; i<=n; i++){ par = i * 2; cout<< i<<.-<<par<<endl; } } PROBLEMA 5: Dado un nmero entero positivo, muestre sus divisores, la cantidad y la suma de ellos. #include <iostream.h> #include <conio.h> void main(){ int num; int c=0, suma=0; cout<<ingrese un numero entero: ; cin>> num; cout<<sus divisores son: ; for(int d=1; d<=num; d++){ if(num%d == 0){ cout<< d<<, ; c++; Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545

SEMANA03 ESTRUCTURAS DE CONTROL REPETITIVAS interactivas, iterativas


suma += d; } } cout<<endl; cout<<cantidad de divisores: << c<<endl; cout<<suma de divisores: << suma<<endl; } PROBLEMA 6: Determine la suma de la siguiente serie matemtica para N trminos: 1 + x + x
2

#include <iostream.h> #include <conio.h> #include <math.h> void main(){ int n; double x, suma=0, term; cout<<ingrese valor de N: ; cin>> n; for(int i=1; i<=n; i++){ term = i * pow(x,i-1); suma += term; } cout<<la suma es: << suma<<endl; }

PROBLEMA 7: Determine el valor de PI con la suma de los N primeros trminos de la siguiente serie matemtica: 4 -4/3 +4/5 -4/7 +4/9 -

PROBLEMA 8: Dado el lado de un cuadrado, dibjelo con asteriscos considerando la posibilidad de hacerlo slo el borde o relleno completo. Ejm. Lado = 5 Slo con borde: * * * * * * * * * * * * * relleno: * * * * * * * * * * * * * * * * * * * * * * * * *

PROBLEMA 9: Muestre y sume los N primeros trminos de la siguiente serie matemtica: 10 11 13 16 20 25

PROBLEMA 10: Muestre y sume los N primeros trminos de la serie de Fibonacci: 1 1 2 3 5 8 13

21

Elaborado por Ing. Julio Vsquez Paragulla

También podría gustarte