Publicado el 10 de Febrero del 2019
1.073 visualizaciones desde el 10 de Febrero del 2019
40,2 KB
3 paginas
Creado hace 17a (27/06/2007)
Módulo 2: Estatutos de
Control
3. Más Sobre Ciclos
Ciclos anidados
Se dice que un programa tiene ciclo anidado cuando un el estatuto de un ciclo (while,
do..while o for) es a su vez otro ciclo.
Ejemplo: Obtener el resultado de la serie n m
∑ ∑ i*j
i=1 j = 2
#include <iostream.h>
int n,m,resultado= 0;
int main()
{
cout << "Dame el valor de n y m " << endl;
cin >> n >> m;
for ( int i =1 ; i <= n; i++ )
for ( int j =2 ; j <= m; j++ )
resultado = resultado + i*j;
cout << " El resultado de la serie es " << resultado;
return 0;
}
Ejemplo : Programa que dado un número entero size, construye una pirámide de asteriscos
de altura size.
Por ejemplo, si size = 5, el programa mostrará:
*
**
***
****
*****
#include <iostream.h>
int i,j,size;
int main()
{
cout << "Dame el tamaño "<<endl;
cin >> size;
for (i=1;i<=size;i++)
{
for (j=1;j<=i;j++)
cout << "*";
cout<<endl; } // para brincar a la siguiente línea
return 0;
}
Ejemplo : Mismo problema pero ahora construye la pirámide en otro orden
Por ejemplo, si size = 5, el programa mostrará:
*****
****
***
**
*
#include <iostream.h>
int i,j,k,size;
int main()
{
cout << "Dame el tamaño "<<endl;
cin >> size;
for (i=size;i>=1;i--)
{
for (k=i;k<size ;k++) //para dejar los espacios en blanco
cout << " ";
for (j=1;j<=i;j++)
cout << "*";
cout<<endl;
}
return 0;
}
Ejemplo: Se desea que dados dos números enteros n1 y n2 se obtenga la multiplicación de
n1 por n2 usando el algoritmo de la multiplicación rusa. El algoritmo dice lo siguiente:
realiza la división entera de n1 entre 2 y al mismo tiempo multiplica n2 por 2 repetidamente
hasta que n1 sea 1. Sume todos los valores de n2 que corresponden a los valores de n1
impares y ese es el valor de la multiplicación.
#include <iostream.h>
int n,m,suma=0;
int main()
{
cout << "Dame los numeros a multiplicar "<<endl;
cin >> n>>m;
do
{
if (n%2 !=0) // n es impar
suma+=m; // sumo el valor de m
n=n/2;
m=m*2;
}
while (n > 1);
if (n%2 != 0)
suma+=m;
cout << "El resultado es "<<suma<<endl;
return 0;
}
Ejercicio
Realiza los siguientes programas.
1. Dado un número entero N, se desea que muestre en la pantalla la serie formada por todos
los números nones que van desde 1 hasta N (si N fuera par entonces la serie termina en N-1)
en la serie el primer término (el 1) tiene signo positivo y luego el signo se va alternando en
los siguientes términos. Después de mostrar la serie, debe también mostrar el resultado de la
suma, como se muestra en los ejemplos.
Por ejemplo, si el usuario teclea el número 9 la serie que se mostrará en la pantalla es la
siguiente:
1 - 3 + 5 - 7 + 9 = 5
Otro ejemplo, si el usuario teclea el número 12, la serie que se mostrará en la pantalla es:
1 - 3 + 5 - 7 + 9 - 11 = - 6 ver solución
2. Leer un entero positivo N y averiguar si es perfecto. Un número es perfecto cuando es igual
a la suma de sus divisores excepto el mismo.
Ejemplo:
Si N = 6 sus divisores son 1, 2 y 3 si los sumamos nos da 6 por lo tanto es perfecto.
ver solución
Ligas sugeridas
http://www.cplusplus.com/doc/tutorial/
http://www.cs.wustl.edu/~schmidt/C++/
Regresar
Siguiente módulo
Comentarios de: C++ - Módulo 2: Estatutos de Control (0)
No hay comentarios