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

Arreglos en C#

Arreglos en C#

Los arreglos en C# (también conocidos como Arrays) al igual que en C/C++, son indexados iniciando en cero (0). La forma de trabajo es muy similar a la mayoría de lenguajes pero hay lagunas diferencias que notarán.

Como Declarar e Inicializar un Arreglo en C#

Cuando vayamos a declarar un arreglo en debemos colocar los corchetes después de tipo de dato. En C/C++ se estila poner los corchetes después del identificador, eso causa un error de compilación en C#-

Declaración de un Arreglo de tipo Vector en C#

        //Declaración erronea
        int valores[];
        //Declaración valida
        int[] valores;


En C# podemos indicar el tamaño del arreglo luego de la declaración. Esto nos permite decidir que tamaño va a tener el arreglo según lo que necesitemos. 

        int[] valores; //valores sin inicializar
        valores = new int[100];  //100 elementos
        valores = new int[20];  //ahora contiene 20 elementos

Ejemplos del Bucle For en C#

Ejemplos del Bucle For en C#

Ejemplo 1

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 2

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 For en C#

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.

Problemas de Estructura While en C#

Problemas de Estructura While en C#

Ejemplo 1

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 2

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 


Ejemplos de Estructura Anidadas en C#

Ejemplos de Estructura Anidadas en C#

Ejemplo 1

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 2

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 


Estructura Condicional Anidada en C#

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 anidada 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 

Ejemplos de If - Else en C#

Ejemplos de If - Else en C#

Ejemplo 1

Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo informar su suma y diferencia, en caso contrario informar el producto y la división del primero respecto al segundo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraCondicionalCompuesta2
{
    class Program
    {
        static void Main(string[] args)
        {
            int num1, num2;
            string linea;
            Console.Write("Ingrese primer valor:");
            linea = Console.ReadLine();
            num1 = int.Parse(linea);
            Console.Write("Ingrese segundo valor:");
            linea = Console.ReadLine();
            num2 = int.Parse(linea);
            if (num1 > num2)
            {
                int suma, diferencia;
                suma = num1 + num2;
                diferencia = num1 - num2;
                Console.Write("La suma de los dos valores es:");
                Console.WriteLine(suma);
                Console.Write("La diferencia de los dos valores es:");
                Console.WriteLine(diferencia);
            }
            else
            {
                int producto, division;
                producto = num1 * num2;
                division = num1 / num2;
                Console.Write("El producto de los dos valores es:");
                Console.WriteLine(producto);
                Console.Write("La división de los dos valores es:");
                Console.WriteLine(division);
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado 



Ejemplo 2

Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje indicando si el número tiene uno o dos dígitos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EstructuraCondicionalCompuesta3
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            string linea;
            Console.Write("Ingrese un valor entero de 1 o 2 dígitos:");
            linea = Console.ReadLine();
            num = int.Parse(linea);
            if (num < 10)
            {
                Console.Write("Tiene un dígito");
            }
            else
            {
                Console.Write("Tiene dos dígitos");
            }
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado