miércoles, 17 de noviembre de 2010

ESTRUCTURAS DE REPETICION

ESTRUCTURA WHILE
Repite el cuerpo del bucle mientras se cumpla una determinada condición
Pseudocódigo
Mientras
   {condición}
    Acción_1;
    Acción_2;
    Acción_n;
Fin_mientras
Instrucción X

Sintaxis en C++
while( exp_prueb a)
instrucción;
while( exp_prueb a)
{
Instrucción_a;
Instrucción_b;
Instrucción_n;
}

Programa en C++
#include <iostream.h>
#include <stdlib.h>
int main() {
int inumtab, i=1;
cout << "\n Numero de la Tabla de Multiplicar:
"<<endl;
cin >> inumtab;
while(i<=10 ){
cout<< inumtab <<" * "<<i<<" =
"<<i*inumtab<<endl;
i++;
}system("PAUSE");
return 0; }


 ESTRUCTURA FOR
Esta estructura ejecuta las acciones del cuerpo del bucle un número especificado de veces, y
de modo automático controla el número de iteraciones o pasos.


Pseudocódigo
Inicio
Desde i=0 hasta 100
Escribir i
Fin_desde
Fin
Sintaxis en C++
for (exp_inic; exp_prueba; exp_inc)
instrucción;
for (exp_inic; exp_prueba; exp_inc)
{
Instrucción_a;
Instrucción_b;
Instrucción_n;
}

Programa en C++
##include <iostream.h>
include <stdlib.h>
int main() {
int inumtab;
cout << "\n Numero de la Tabla de Multiplicar:
"<<endl;
cin >> inumtab;
for(int i=1; i<=10; i++)
cout<< inumtab <<"*"<<i<<"="<< inumtab*i<<
endl;
system("PAUSE");
return 0; }




ESTRUCTURA DO WHILE

Repetir …. Hasta (do – while)
La estructura repetir cumple la misma función que la estructura mientras. La diferencia está en que la estructura mientras comprueba la condición al inicio y repetir lo hace al final. Es por ello la estructura repetir se ejecuta por lo menos una vez.


Pseudocódigo
Hacer
Acción_1;
Acción_2;
Acción_n;
Mientras
{condición}

Sintaxis en C++
do
Instrucción_a;
Instrucción_b;
Instrucción_n;
}
while( exp_prueb a)

Programa en C++
#include <iostream.h>
#include <stdlib.h>
int main() {
int inumtab, i=1;
cout << "\n Numero de la Tabla de Multiplicar:
"<<endl;
cin >> inumtab;
do{
cout<< inumtab <<" * "<<i<<" =
"<<i*inumtab<<endl;
i++;
}
while(i<=10);
system("PAUSE”);
return 0;
}





EJERCICIO  DE LA ESTRUCTURA DO-WHILE

Calcular independientemente la suma de los números
pares e impares comprendidos entre 1 y n

#include <stdio.h>
void main ()
{
unsigned int n, numero= 0, nPar = 0, nImpar =0;
do // validación del valor de n
printf(“Introduzca un valor entero mayor que cero\n”);
scanf(“%i”,&n);
} while (n >= 1);
do {
numero ++;
if (numero % 2 ==0)
nPar += numero;
else
nImpar += numero;
} while (numero < n);
printf(“Suma de numeros pares %i\n”,nPar);
printf(“Suma de numeros impares %i\n”,nImpar);
getch();
}
EJERCICIO DE LA ESTRUCTURA WHILE

Suponga que se desea hacer una conversión de una distancia en metros a
su equivalente en centímetros y pies. Escriba un programa que haga
dichas conversiones, pero que además le permita al usuario del programa
realizar el cálculo tantas veces como quiera.

#include <iostream.h>
#include <stdlib.h>
int main()
{
/* Este programa permite la conversión de metros a pies y a
centímetros tantas veces como el usuario lo quiera*/
/* Declaración de variables*/
double distancia_metros, distancia_cm, distancia_ft;
int repetir_o_no;
/* Procesamiento */
repetir_o_no = 1;
while (repetir_o_no == 1)
{
cout<< "Dame una cantidad en metros \n";
cin>> distancia_metros;
distancia_cm = distancia_metros * 100;
distancia_ft = distancia_metros * 3.048;
cout<<"\n";
cout<<"Su equivalente en centimetros es "<<distancia_cm<<" \n";
cout<<"Su equivalente en pies es "<<distancia_ft<<" \n";
cout<<"\n";
cout<<"Deseas realizar otro calculo similar? \n";
cout<<"Escribe el numero 1 si lo deseas, si no, \n";
cout<<"escribe cualquier otro numero entero \n";
cin>>repetir_o_no;
cout<<"\n";
}
system("PAUSE");
return 0;
EJERCICIO DE LA ESTRUCTURA FOR

Cuenta del 1 al 50 varias veces, con variantes de la instrucción FOR.

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
 main(){
int i=1;

clrscr();
for( ; i<=50; i++)
cout << setw(5) << i;
cout << "\n\n";

for(i=1; i<=50; i++)
cout << setw(5) << i;
cout << "\n\n";

i = 0;
for( ; i<50; ) {
i++;
cout << setw(5) << i;
}
cout << "\n\n";

for(i=1 ; i<=50; ) {
cout << setw(5) << i;
i++;
}
cout << "\n\n";

i = 0;
for( ; ; )
 {
i ++;
if (i > 50)
break;
else
cout << setw(5) << i;
}

getch();}