martes, 3 de febrero de 2015

Ejercicios resueltos en C#

Ejercicios resueltos 1- Implemente un método que dado un string s cualquiera, devuelva un nuevo string que se el inverso de s. (ej: entrada: “puntopeek”; salida: “keepotnup”)

namespace ejercicio1
{
    class Program
    {
        public void cargarvalores()
        {
            Console.ForegroundColor = ConsoleColor.DarkBlue;
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.Clear();

            Console.WriteLine("\n\t\t\t\tBienvenidos");

            Console.WriteLine("\nIngrese una frase");
            string a = Console.ReadLine();

            Invierte(a);
            Console.WriteLine(Invierte(a));
            Console.ReadKey();

        }
        static void Main(string[] args)
        {
            Program inv = new Program();
            inv.cargarvalores();

        }

        public string Invierte(string a)
        {
            string b = "";
            for (int i = 0; i < a.Length; i++)
                b = a[i] + b;
            return b;
        }

    }
}

2- Implemente una función que dado un string, una posición de comienzo y una cantidad de caracteres, devuelva una subcadena (substring) de una cadena dada a partir de los parámetros dados (ej: entrada: “puntopeek”, pos= 2, cant= 4; salida: “ntop”.)

namespace ejercicio2
{
    class Program
    {
        public void cargarvalores()
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.Clear();

            Console.WriteLine("\n\t\t\t\tBienvenidos");

            Console.WriteLine("\n Ingrese una palabra:");
            string a = Console.ReadLine();

            Console.WriteLine("\nIngrese la posicion de frase:");
            int pos = int.Parse(Console.ReadLine());

            Console.WriteLine("\nIngrese la cantidad:");
            int cant = int.Parse(Console.ReadLine());

            SubString(a, pos, cant);
            string algo;

            algo = SubString(a, pos, cant);

            Console.WriteLine("La frase corta es: " + algo);
            Console.ReadLine();
        }

        public string SubString(string a, int pos, int cant)
{
   string pedazo = "" ;
   if((pos + cant) >  a.Length)
      throw new Exception("");
   else
   {
      for (int j = pos; j <  cant + pos ; j ++ )
         pedazo += a[j];
      return pedazo;
   }
        }

        static void Main(string[] args)
        {
            Program inv = new Program();
            inv.cargarvalores();
        }
    }
}


3- Implemente un método Replace, que reciba un string s, y dos caracteres old y new. Dicha función debe reemplazar todas las ocurrencias del caracter old por el carácter new, y devolver un nuevo string con dicha característica.  (ej: entrada: “programacion”, old= ‘a’, new=’i’; salida: “progrimicion”)

namespace ejercicio3
{
    class Program
    {
        public void cambiarletras()
        {
            Console.ForegroundColor = ConsoleColor.DarkGreen;
            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();

            Console.WriteLine("\n\t\t\t\tBienvenidos");

            Console.WriteLine("\nIngrese la palabra");
            string a = Console.ReadLine();

            Console.WriteLine("\nIngrese la letra que va a cambiar");
            char b = char.Parse(Console.ReadLine());

            Console.WriteLine("\nIngrese la letra nueva");
            char c = char.Parse(Console.ReadLine());

            Replace (a, b, c);
            string r = Replace(a, b, c);

            Console.WriteLine("\nLa frase nueva es:" + r);
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            Program inv = new Program();
            inv.cambiarletras();
        }

        public string Replace (string a, char old, char nuevo)
{
   string result = "";
   for (int i = 0; i < a.Length ; i++)
   {
      if(a[i] == old)
         result += nuevo;
      else
         result += a[i];
   }
   return result;
}
        }
}
    

    
4*- Implemente un método Combinar, que dado un string s, devuelva todas las combinaciones posibles que se pueden formar a partir de los caracteres de s. Este método es un poco más complicado, pero muy útil y práctico. Para esto usaremos recursividad, para ir generando todas las posibles combinaciones. (ej: entrada: “hoy”; salida: “hoy”, “hyo”, “ohy”, “oyh”, “yho”, “yoh”)

namespace ejercicio4
{
    class Program
    {
        public void cargar()
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.Clear();

            Console.WriteLine("\n\t\t\t\tBienvenidos");

            Console.WriteLine("\n Ingrese una palabra:");
            string a = Console.ReadLine();

            Combina(a);

            Console.WriteLine("\nLas combinaciones posibles son:" + a);
            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            Program inv = new Program();
            inv.cargar();
        }

        public void Combina(string s)
        {
            bool[] marcas = new bool[s.Length];
            Combina(s, "", marcas);
        }
        void Combina(string original, string combinado, bool[] marcas)
{
   if (original.Length == combinado.Length)
      Console.WriteLine(combinado);
   for (int i = 0; i < marcas.Length; i++)
   {
      if (!marcas[i])
      {
         marcas[i] = true;
         Combina(original, combinado + original[i], marcas);
         marcas[i] = false;
      }
   }
}

    }
}