Mostrando entradas con la etiqueta bucles en c#. Mostrar todas las entradas
Mostrando entradas con la etiqueta bucles en c#. Mostrar todas las entradas

Estructura repetitiva Do Whle en C#

La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.

La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.

Do en C#

La instrucción do ejecuta una instrucción o un bloque de instrucciones entre {} repetidamente hasta que una expresión especificada se evalúe como false. 

Veamos algunos ejemplos que nos ayudara entender mejor el tema de la estructura repetitiva do while en c#.

Ejercicios Resueltos de Estructura Repetitiva Do While en C#

Ejemplo 1

Realizar un programa que pida una serie de números y al finalizar que saque el promedio de dichos números (0 para finalizar)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaDoWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int suma, cant, valor, promedio;
            string linea;
            suma = 0;
            cant = 0;
            do
            {
                Console.Write("Ingrese un nimero (0 para finalizar):");
                linea = Console.ReadLine();
                valor = int.Parse(linea);
                if (valor != 0)
                {
                    suma = suma + valor;
                    cant++;
                }
            } while (valor != 0);
            if (cant != 0)
            {
                promedio = suma / cant;
                Console.Write("El promedio de los valores ingresados es:");
                Console.Write(promedio);
            }
            else
            {
                Console.Write("No se ingresaron valores ");
            }
            Console.ReadLine();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Ejemplo 2

En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta corriente se conoce: número de cuenta y saldo actual. El ingreso de datos debe finalizar al ingresar un valor negativo en el número de cuenta.
Se pide realizar un programa que lea los datos de las cuentas corrientes e informe:

a)De cada cuenta: número de cuenta y estado de la cuenta según su saldo, sabiendo que:
Estado de la cuenta 'Acreedor' si el saldo es >0.
        'Deudor' si el saldo es <0.
       'Nulo' si el saldo es =0.
b) La suma total de los saldos acreedores.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaDoWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int cuenta;
            float saldo, suma;
            string linea;
            suma = 0;
            do
            {
                Console.Write("Ingrese número de cuenta:");
                linea = Console.ReadLine();
                cuenta = int.Parse(linea);
                if (cuenta >= 0)
                {
                    Console.Write("Ingrese saldo:");
                    linea = Console.ReadLine();
                    saldo = float.Parse(linea);
                    if (saldo > 0)
                    {
                        Console.WriteLine("Saldo Acreedor.");
                        suma = suma + saldo;
                    }
                    else
                    {
                        if (saldo < 0)
                        {
                            Console.WriteLine("Saldo Deudor.");
                        }
                        else
                        {
                            Console.WriteLine("Saldo Nulo.");
                        }
                    }
                }
            } while (cuenta >= 0);
            Console.Write("Total de saldos Acreedores:");
            Console.Write(suma);
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Estructura repetitiva For en C#

Anteriormente vimos la estructura repetitiva while con la que se puede resolver cualquier tipo de problemas que tengan que ver con estructuras repetitivas, ahora veremos la estructura repetitiva for que es un bucle muy fácil de utilizar.

En general, la estructura for se usa en aquellas situaciones en las cuales conocemos la cantidad de veces que queremos que se ejecute el bloque de instrucciones.


En su forma más típica y básica, esta estructura requiere una variable entera que cumple la función de un contador de vueltas. En la sección indicada como "inicialización contador", se suele colocar el nombre de la variable que hará de contador, asignándole a dicha variable un valor inicial. En la sección de "condición" se coloca la condición que deberá ser verdadera para que el ciclo continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en la sección de "incremento contador" se coloca una instrucción que permite modificar el valor de la variable que hace de contador (para permitir que alguna vez la condición sea falsa)

Las variables a utilizar en el bucle for pueden ser cualquiera.

Veamos un ejemplo del bucle for en diagramas de flujo.

Ahora para entender mas sobre las estructuras repetitivas for vamos a ver algunos ejemplos que nos ayudaran a entender mejor el tema.

Ejercicios Resueltos de Estructura Repetitiva For en C# 

Ejemplo 1

Realizar un programa que permita obtener la factorial de un numero entero ingresado por el teclado

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int fac=1,n;
            string linea;
            Console.Write("Ingrese un numero entero: ");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            for(int i=1; i<=n; i++ ) {
                fac = fac * i;
            }
            Console.Write("La factorial es: "+fac);
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 



Ejemplo 2

Realizar un programa que permita imprimir por pantalla los números múltiplos de 5, establecer el rango por el teclado 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            string linea;
            Console.Write("Ingrese un numero entero: ");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            Console.Write("Los multiplos de 5 son: ");
            Console.Write("\n");
            for(int i=1; i<=n; i++ ) {
                if (i % 5 == 0)
                {
                    Console.Write(i+", ");
                }
            }           
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 3

Desarrollar un programa que muestre la tabla de multiplicar de un numero ingresado por el teclado del 1 al 15 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int n;
            string linea;
            Console.Write("Ingrese multiplicador: ");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            for(int i=1; i<=15; i++ ) {              
                    Console.Write(i+" x "+n+" = "+i*n+"\n");               
            }            
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 



Ejemplo 4

Realizar un programa que permita ingresar n números enteros por el teclado y se desea conocer:
             a) La cantidad de números positivos.
             b) La cantidad de números negativos.
             c) La cantidad de números pares.
             d)La cantidad de números impares 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int n,valor,positivos,negativos,pares,impares;
            positivos = 0;
            negativos = 0;
            pares = 0;
            impares = 0;
            string linea;
            Console.Write("Ingrese valor de n: ");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            for(int i=1; i<=n; i++ ) {
                Console.Write("Ingrese numero "+i+": ");
                linea = Console.ReadLine();
                valor = int.Parse(linea);
                if (valor > 0)
                {
                    positivos++;
                }
                else
                {
                    if (valor < 0)
                    {
                        negativos++;
                    }
                }
                if (valor % 2 == 0)
                {
                    pares++;
                }
                else
                {
                    if (valor % 2 != 0)
                    {
                        impares++;
                    }
                }
            }
            Console.WriteLine("Cantidad de numeros negativos: "+negativos);
            Console.WriteLine("Cantidad de numeros positivos: "+positivos);
            Console.WriteLine("Cantidad de numeros pares: "+pares);
            Console.WriteLine("Cantidad de numeros impares: "+impares);
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


Estructura Repetitiva While en C#

Hasta en momento hemos visto estructuras secuenciales y condicionales, ahora estudiaremos las estructuras repetitivas en c#. 

Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces, según la condición establecida en dicho bucle. 

Veamos una gráfica de la estructura while en diagramas de flujo 

Nota: Podemos observar que el bloque repetitivo puede no ejecutarse ninguna vez si la condición retorna falso la primera vez.
La variable x debe estar inicializada con algún valor antes que se ejecute la operación x=x + 1 en caso de no estar inicializada aparece un error de compilación.

La sintaxis en pseudocódigo es la siguiente:

             mientras condición hacer
                   instrucción 
            fin mientras 

A continuación veamos algunos ejemplos empleando la estructura repetitiva while

Ejercicios Resueltos de Estructura Repetitiva While en C#

Ejemplo 1

Realizar un programa que imprima en pantalla los números del 1 al 50.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int x;
            x = 1;
            while (x <= 50)
            {
                Console.Write(x);
                Console.Write(" , ");
                x = x + 1;
            }
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 2

Realizar un programa que dado un numero n entero, imprima consecutivamente asta n 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, x;
            string linea;
            Console.Write("Ingrese el valor de n:");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            x = 1;
            while (x <= n)
            {
                Console.Write(x);
                Console.Write(" , ");
                x = x + 1;
            }
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 



Ejemplo 3

Realizar un programa que permita ingresar 8 números y nos muestre la suma y el promedio de dichos números

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int x, suma, valor, promedio;
            string linea;
            x = 1;
            suma = 0;
            while (x <= 8)
            {
                Console.Write("Ingrese valor "+x+":");
                linea = Console.ReadLine();
                valor = int.Parse(linea);
                suma = suma + valor;
                x = x + 1;
            }
            promedio = suma / 8;
            Console.Write("La suma  es:");
            Console.WriteLine(suma);
            Console.Write("El promedio es:");
            Console.Write(promedio);
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 



Ejemplo 4

Desarrollar un programa que permita ingresar n números enteros y luego nos imprima cuántos valores fueron pares y cuántos impares.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, x, valor, pares, impares;
            string linea;
            x = 1;
            pares = 0;
            impares = 0;
            Console.Write("Cuantos el valor de n:");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            while (x <= n)
            {
                Console.Write("Ingrese el valor "+x+": ");
                linea = Console.ReadLine();
                valor = int.Parse(linea); ;
                if (valor % 2 == 0)
                {
                    pares = pares + 1;
                }
                else
                {
                    impares = impares + 1;
                }
                x = x + 1;
            }
            Console.Write("Cantidad de pares:");
            Console.WriteLine(pares);
            Console.Write("Cantidad de impares:");
            Console.Write(impares);
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 5

Desarrollar un programa que imprima los múltiplos de 3 del 1 al 200

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int mult;
            mult = 3;
            while (mult <= 200)
            {
                Console.Write(mult);
                Console.Write(", ");
                mult = mult + 3;
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 



Ejemplo 6

Realizar un programa que nos imprima la factorial de un numero dado desde el teclado

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EstructuraRepetitivaWhile
{
    class Program
    {
        static void Main(string[] args)
        {
            int fac=1,x,n;
            string linea;
            x = 1;
            Console.Write("Ingrese un numero entero: ");
            linea = Console.ReadLine();
            n = int.Parse(linea);
            while (x <= n)
            {
                fac = fac * x;
                x = x + 1;
            }
            Console.Write("La factorial es: "+fac);
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado