Mostrando entradas con la etiqueta ejercicios resueltos de c#. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejercicios resueltos de 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 condicional compuesto en c#

En este capítulo se revisan los distintos métodos con los que C # controla el flujo lógico de un programa.

Como se revisó en el capítulo anterior, los operadores relaciones binarios que se usan son:

==,  !=,  <,  <=,  > y  >=

además los operadores lógicos binarios:

||,  &&,  ?

y el operador lógico unario de negación !, que sólo toma un argumento.

Opreador || en C#

Traducido se lo lee como “O”. Si la condición 1 es Verdadera O la condición 2 es Verdadera, luego ejecutar la rama del Verdadero.
Cuando vinculamos dos o más condiciones con el operador “Or", con que una de las dos condiciones sea Verdadera alcanza para que el resultado de la condición compuesta sea Verdadero.

operador && en C#

Traducido se lo lee como “Y”. Si la Condición 1 es verdadera Y la condición 2 es verdadera luego ejecutar la rama del verdadero.
Cuando vinculamos dos o más condiciones con el operador “&&”, las dos condiciones deben ser verdaderas para que el resultado de la condición compuesta de Verdadero y continúe por la rama del verdadero de la estructura condicional.
La utilización de operadores lógicos permiten en muchos casos plantear algoritmos más cortos y comprensibles.

Operador ? en C#

El operador ternario condicional ? es más eficiente que la sentencia if. El operador ? tiene el siguiente formato:

              expresion1 ? expresion 2 : expresion3;

Que es equivalente a la siguiente expresión:

             if (expresion1) then expresion2 else expresion3;

Por ejemplo, para asignar el máximo de a y b a la variable z, usando ?, tendríamos:

             z = (a>b) ? a : b;

que es lo mismo que:

             if (a > b)
                  z = a;
             else
                   z = b;

El uso del operador ? para reemplazar las sentencias if ... else no se restringe sólo a asignaciones, como en el ejemplo anterior. Se pueden ejecutar una o más llamadas de función usando el operador ? poniéndolas en las expresiones que forman los operandos. 

La Instrucción Switch en C# 

La instrucción switch es una instrucción de control que controla múltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo, como se muestra en el ejemplo siguiente:

int caseSwitch = 1;
switch (caseSwitch)
{
    case 1:
        Console.WriteLine("Case 1");
        break;
    case 2:
        Console.WriteLine("Case 2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
} 

Ejercicios Resueltos de Estructura Condicional Compuesto en C# 

Ejemplo 1 

Realizar un programa que dado tres valores por teclado, si todos son iguales se imprime la suma del primero con el segundo y a este resultado se lo multiplica por el tercero.

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

namespace CondicionesCompuestas4
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2, num3;
            string linea;
            Console.Write("Ingrese primer numero:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo numero:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            Console.Write("Ingrese tercer numero:");
            linea = Console.ReadLine();
            num3 = int.Parse(linea);
            if (num1 == num2 && num1 == num3)
            {
                int suma = num1 + num2;
                Console.Write("La suma del primero y segundo es:");
                Console.WriteLine(suma);
                int producto = suma * num3;
                Console.Write("La suma del primero y segundo multiplicado por el tercero es:");
                Console.Write(producto);
            }
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 2

Realizar un programa en el cual: dada una lista de tres valores numéricos distintos se calcule e informe su rango de variación (debe mostrar el mayor y el menor de ellos)

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

namespace CondicionesCompuestas9
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2, num3;
            string linea;
            Console.Write("Ingrese primer numero:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo numero:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            Console.Write("Ingrese tercer numero:");
            linea = Console.ReadLine();
            num3 = int.Parse(linea);
            Console.Write("Rango de valores es:");
            if (num1>num2 && num1 > num3)
            {
                Console.Write(num1);
            }
            else
            {
                if (num2 > num3)
                {
                    Console.Write(num2);
                }
                else
                {
                    Console.Write(num3);
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Ejemplo 3

Realizar un programa que lea por teclado tres números distintos y nos muestre el mayor.

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

namespace CondicionCompuesta1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2, num3;
            string linea;
            Console.Write("Ingrese primer numero:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo numero:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            Console.Write("Ingrese tercer numero:");
            linea = Console.ReadLine();
            num3 = int.Parse(linea);
            if (num1 > num2 && num1 > num3)
            {
                Console.Write("El mauor es"+num1);
            }
            else
            {
                if (num2 > num3)
                {
                    Console.Write("El mauor es" + num2);
                }
                else
                {
                    Console.Write("El mauor es" + num3);
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Ejemplo 4

Realizar un programa que dado un operario se conoce su sueldo y los años de antigüedad. Se pide confeccionar un programa que lea los datos de entrada e informe:
  1.  Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años, otorgarle un aumento del 20 %, mostrar el sueldo a pagar.
  2. Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un aumento de 5 %.
  3. Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios.


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

namespace CondicionesCompuestas8
{
    class Program
    {
        static void Main(string[] args)
        {
            float sueldo;
            int antiguedad;
            string linea;
            Console.Write("Ingrese sueldo del empleado:");
            linea = Console.ReadLine();
            sueldo = float.Parse(linea);
            Console.Write("Ingrese su antiguedad en años:");
            linea = Console.ReadLine();
            antiguedad = int.Parse(linea);
            if (sueldo < 500 && antiguedad > 10)
            {
                float aumento = sueldo * 0.20f;
                float sueldoTotal = sueldo + aumento;
                Console.Write("Sueldo a pagar:");
                Console.Write(sueldoTotal);
            }
            else
            {
                if (sueldo < 500)
                {
                    float aumento = sueldo * 0.05f;
                    float sueldoTotal = sueldo + aumento;
                    Console.Write("Sueldo a pagar:");
                    Console.Write(sueldoTotal);
                }
                else
                {
                    Console.Write("Sueldo a pagar:");
                    Console.Write(sueldo);
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Estructura Condicional Anidada en C#

En ocasiones dentro de una estructura if pueda existir otras estructuras if. A esa estructura if combinada se le denomina if anidada. 


El diagrama de flujo que se presenta contiene dos estructuras condicionales. 

Ejercicios Resueltos de Estructura condicional anidad en c#

Ejemplo 1

Realizar un programa que pida  tres notas de un alumno, calcule el promedio e imprima lo siguiente:
Si el promedio es >10 mostrar "Aprobado".
Si el promedio es >7 y <=10 mostrar "Desaprobado".
Si el promedio es <7 mostrar "Reprobado".

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

namespace EstructuraCondicionalAnidada1
{
    class Program
    {
        static void Main(string[] args)
        {
            int nota1, nota2, nota3;
            string linea;
            Console.Write("Ingrese la primera nota:");
            linea = Console.ReadLine();
            nota1 = int.Parse(linea);
            Console.Write("Ingrese la segunda nota:");
            linea = Console.ReadLine();
            nota2 = int.Parse(linea);
            Console.Write("Ingrese la tercera nota:");
            linea = Console.ReadLine();
            nota3 = int.Parse(linea);
            int promedio = (nota1 + nota2 + nota3) / 3;
            if (promedio > 10)
            {
                Console.Write("Aprobado");
            }
            else
            {
                if (promedio > 7)
                {
                    Console.Write("Desaprobado");
                }
                else
                {
                    Console.Write("Reprobado");
                }
            }
            Console.ReadKey();
        }
    }
}


Al ejecutar el código muestra el siguiente resultado 


Ejemplo 2 

Realizar un programa que me muestre de tres números ingresados por el teclado el mayor numero

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

namespace EstructuraCondicionalAnidada2
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2, num3;
            string linea;
            Console.Write("Ingrese primer numero:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segunda numero:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            Console.Write("Ingrese tercer numero:");
            linea = Console.ReadLine();
            num3 = int.Parse(linea);
            if (num1 > num2)
            {
                if (num1 > num3)
                {
                    Console.Write("El mayor es: "+num1);
                }
                else
                {
                    Console.Write("El mayor es: " + num3);
                }
            }
            else
            {
                if (num2 > num3)
                {
                    Console.Write("El mayor es: " + num2);
                }
                else
                {
                    Console.Write("El mayor es: " + num3);
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 



Ejemplo 3

Realizar un programa que permita ingresar un número entero positivo por el teclado y cuente cuantas cifras tiene.

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

namespace EstructuraCondicionalAnidada4
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            string linea;
            Console.Write("Ingrese un numero positivo: ");
            linea = Console.ReadLine();
            num = int.Parse(linea);
            if (num < 10)
            {
                Console.Write("El numero tiene un dígito");
            }
            else
            {
                if (num < 100)
                {
                    Console.Write("El numero tiene dos dígitos");
                }
                else
                {
                    if (num < 1000)
                    {
                        Console.Write("el numero tiene tres dígitos");
                    }
                    else
                    {
                        Console.Write("El numero tiene mas de tres digitos");
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 


Ejemplo 4

Realizar un programa que pida ingresar por el teclado un numero entero, y que indique si el número es positivo, nulo o negativo.

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

namespace EstructuraCondicionalAnidada3
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            string linea;
            Console.Write("Ingrese un numero:");
            linea = Console.ReadLine();
            num = int.Parse(linea);
            if (num == 0)
            {
                Console.Write("El numero es cero");
            }
            else
            {
                if (num > 0)
                {
                    Console.Write("El numero es positivo");
                }
                else
                {
                    Console.Write("El numero es negativo negativo");
                }
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado