domingo, 6 de octubre de 2013

2.3. Bucle Mientras

Nuevos Bucles

En programación usaras constantemente bucles, es por ello que necesitamos conocer que otras herramientas a utilizar, ahora ya conoces la estructura PARA, esta no sera suficiente para muchos problemas que se te van ha presentar en tu vida como programador, en esta lección aprenderemos una nueva estructura, se trata de la estructura Mientras.

El bucle Mientras (While)

Este bucle repite un conjunto de ordenes, siempre y cuando una condición se cumpla, lo mas relevante del bucle es que primero evalúa la condición y luego realiza las operaciones, esta estructura tiene la siguiente sintaxis:

Mientras (Condición)
        Operación 1
        Operación 2
        ...
FinMientras

Importante

La totalidad de los ejercicios resueltos con en bucle PARA (for), se resuelven con MIENTRAS (while), deberás practicar y resolver todos los ejercicios resueltos aplicando el nuevo bucle.

Series para Practicar


Figura de Series.


Ejercicio 1.

Hacer un programa para mostrar la serie 1 hasta su termino n.

Análisis:

En la figura puedes observar la solución de la serie, de esta podemos extraer el siguiente modelo y detalles para su inicialización.

  • aumento = 4, al principio.
  • termino = 2, al principio.
  • k = 1, es la inicialización del contador.
  • mostrar el termino dentro del bucle
  • termino = termino + aumento, dentro del bucle
  • aumento = aumento / 2, dentro del bucle
  • La condición del bucle es que tenemos un contador k que comienza en 1 fuera del bucle.
  • La variable n la cantidad de términos de la serie, es decir, el limite.
  • La condición de mientras es que k<=n.

Variable de Entrada: n
Variables de Salida: termino


Diseño:

Algoritmo Serie1
Inicio
        Real termino, aumento, k, n, suma
        aumento = 4
        termino = 2
        k = 1
        Leer(n)
        Mientras ( k<=n )
                Escribir(termino)
                termino = termino + aumento
                aumento = aumento / 2
                k = k + 1
        FinMientras
Fin

Código:

         public static void Main(string[] args)
        {
            double termino, aumento, k, n, suma;
            aumento = 4;
            termino = 2;
            k = 1;
            Console.Write("Ingresa N: ");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("****** Valores de la Serie ******");
            while( k<=n )
            {
                Console.WriteLine("El termino: " + termino);
                termino = termino + aumento;
                aumento = aumento / 2;
                k = k + 1;
            }
            Console.ReadLine();
        }

Notas Importantes:


  • El bucle Mietras no cuenta con un contador automático, es por ello que necesitamos usar un contador k, que comienza en 1 y se actualiza con +1.
  • En este ejercicio usamos en realidad dos acumuladores, uno de ellos suma y el otro termino.






Ejercicio 2.

Hacer un programa para mostrar la serie 8 que tienes en la figura, también debe mostrar la suma de los términos de esta serie.

Análisis:

Viendo la serie, podemos notar que en realidad esta compuesta por son dos series, una que se incrementa de 111 y otra que se reducen en -111, esto nos da la idea de usar una condicional para controlar el incremento y decremento.

  • Necesitamos una variable terminoA y otra terminoB, para la serie.
  • signo = 1, inicializamos signo.
  • suma = 0, inicializamos suma.
  • terminoA = 1, inicializamos terminoA.
  • terminoB = 100, inicializamos terminoB.
  • terminoA = terminoA + signo*111, si signo mayor a cero.
  • terminoB = terminoB + signo*111, si signo es menor a cero.
  • suma = suma + terminoA, si signo es mayor a cero.
  • suma = suma + terminoB, si signo es menor a cero.
  • signo = -1 * signo, esto permitirá que la serie incremente y decremento.

Diseño:

Algoritmo Serie8
Inicio
        Real signo, suma, terminoA, terminoB, n, k
        signo = 1
        suma = 0
        terminoA = 1
        terminoB = 1000
        k = 1
        Leer (n)
        Mientras ( k <= n )
                Si signo > 0 Entonces
                        Escribir(terminoA)
                        terminoA = terminoA + signo*111
                        suma = suma + terminoA
                Sino
                        Escribir(terminoB)
                        terminoB = terminoB + signo*111                      
                        suma = suma + terminoB
                FinSi
                signo = -1 * signo
                k = k + 1
        FinMientras
        Escribir(suma)
Fin

Código:

         public static void Main(string[] args)
        {
            double signo, suma, terminoA, terminoB, n, k;
            signo = 1;
            suma = 0;
            terminoA = 1;
            terminoB = 1000;
            k = 1;
            Console.Write("Ingresa el valor de N: ");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("******** LOS TERMINOS DE LA SERIE *******");
            while ( k <= n )
            {
                if (signo > 0)
                {
                    Console.WriteLine("♥ " + terminoA);
                    terminoA = terminoA + signo*111;
                    suma = suma + terminoA;
                }
                else
                {
                    Console.WriteLine("♣ " + terminoB);
                    terminoB = terminoB + signo*111;        
                    suma = suma + terminoB;
                }
                signo = -1* signo;
                k = k + 1;
            }
            Console.WriteLine("-----------> La suma es: " + suma);
            Console.ReadLine();
        }









Actividad 1. Haga un programa para cada una de las siguientes series: La serie 5, La serie 6, La serie 7 de la figura, la serie 6 debe incluir la suma de los términos.

Actividad 2. Buscar en Internet tres programas con estructura Mientras codificados en C#, analizarlos y prueba cada uno de estos.

3 comentarios: