Ejercicios C#

Iniciado por Hendrix, 27 Abril 2007, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Hendrix

Propongo esta serie de ejercicios inventados al momento:

Ejercicios matematicos

Ejercicio nº1:

- Calcular la letra del DNI a partir de un numero introducido

Algoritmo para sacar la letra del DNI

Ejercicio nº 2:

- A partir del algoritmo del ejercicio anterior, crear numeros aleatorios validos para una letra del DNI previamente introducida.

Ejercicio nº 3:

- Crear una aplicacion que te pida un año y verifique si el año es bisiesto o no.

Ejercicio nº 4:

- Crear una aplicacion que pida un numero y haga la succeción de Fibonacci.

Ejercicio nº 5:

- Crear uina aplicacion que pida un numero de filas y respecto a estas, dibuje un triangulo como el siguiente:

*
***
*****
*******
*********

Ejercicio nº 6:

- Crear una alpicacion que pida un numero y lo devuelva en letras, por ejemplo:

Numero introducido: 356
Resultado: trescientos cincuenta y seis

Ejercicios con archivos:

Ejercicio nº 7:

- Crear una funcion para hacer un diccionario de fuerza bruta de 4 filas y lo guarde todo en un fichero.

Ejemplo de fuerza bruta

aaaa
aaab
aaac
aaad
aaae
..
..
..
zzzy
zzzz

ejercicio nº 8:

- Crear una funcion la cual se le introduzca el nombre de un archivo de texto y lo guarde, palabra por palabra, por ejemplo:

Archivo fuente: Esto son ejercicios para aprender a programar en C#

Archivo resultado:

Esto
son
ejercicios
para
aprender
a
programar
en
C#

Texto a ordenar:

Leonardo de Pisa o Leonardo Pisano o Leonardo Bigollo, también llamado Fibonacci, fue un matemático italiano, famoso por la invención de la sucesión de Fibonacci, surgida como consecuencia del estudio del crecimiento de las poblaciones de conejos, y por su papel en la popularización del sistema de numeración posicional en base 10 en Europa.

Ejercicio nº 9:

- Crear una funcion la cual, a partir del Archivo resutlado del anterior ejercicio, lo ordene alfabeticamente y lo deje del mismo formato que el Archivo resultado (es decir, linea a linea).

Creo que ya es suficiente, a medida que vaya apsando el tiempo, si nadie lo postea, posteare yo mismo las soluciones (estos ejercicios son facilitos, es lo unico que se me venia a la cabeza).

Un Saludo.

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Meta

using System;

using System.Collections.Generic;

using System.Text;

namespace DNILetra

{

    class Program

    {

        static void Main(string[] args)

        {

            Dictionary<int,char> Letras = new Dictionary<int,char>();

            Letras.Add(0,'T'); Letras.Add(12,'N');

            Letras.Add(1,'R'); Letras.Add(13,'J');

            Letras.Add(2,'W'); Letras.Add(14,'Z');

            Letras.Add(3,'A'); Letras.Add(15,'S');

            Letras.Add(4,'G'); Letras.Add(16,'Q');

            Letras.Add(5,'M'); Letras.Add(17,'V');

            Letras.Add(6,'Y'); Letras.Add(18,'H');

            Letras.Add(7,'F'); Letras.Add(19,'L');

            Letras.Add(8,'P'); Letras.Add(20,'C');

            Letras.Add(9,'D'); Letras.Add(21,'K');

            Letras.Add(10,'X'); Letras.Add(22,'E');

            Letras.Add(11,'B');

             

            Console.Write("Introduce nº DNI: ");

            string snumber = Console.ReadLine();

            int inumber = -1;

            if ((snumber.Length != 8) || (!Int32.TryParse(snumber, out inumber)))

            {

                throw new ArgumentException("No válido.");

            }

            else

            {

                inumber = inumber % 23;

                Console.WriteLine("Letra: {0}",Letras[inumber]);

            }

            Console.ReadKey();

        }

    }

}


Un cordial saludos.

fácil no????????
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Hendrix

Cita de: Meta en 20 Mayo 2007, 19:25 PM
fácil no????????

Nunca dije lo contrario... ;) ;)

Repsecto al codigo, funciona perfectamente... ;) ;)

Un Saludo.

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Meta

A ver quién lo hace en modo Visual. No hace falta, pero...

... para aprender novatos está bien.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Yhoda

Esta fue la solucion que encontre del arbolito de navidad


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

namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Escribe un numero");
            string str = Console.ReadLine();
            double f = double.Parse(str);
            if (f > 25)
                f = 25;

            for (int i = 0; i < f; i++)
            {
                Console.CursorTop=i;
                int k = 39-i;
                int l = 40 + i;
                for (int j = k;  j < l;j++  )
                {
                    Console.CursorLeft=j;
                    Console.Write("*");

                }
            }
            Console.Read();
        }
    }
}


y este al de Fibonacci


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

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Escribe un numero");
            string str = Console.ReadLine();
            double f = double.Parse(str);
            double i = 0, g = 1, h = 0;
            Console.WriteLine(i);
            Console.WriteLine(g);
            for (; h <= f; )
            {
                h = i + g;
                i = g;
                g = h;
                Console.WriteLine(h);

            }
        }
    }
}

ECDundy

esta es mi solucion recursiva al ej 4
public static int fibonacci(int k)
      {
         int fib;
         if (k<=2)
         {
            fib =1;
         }
         else
         {
            fib= fibonacci(k-1)+ fibonacci(k-2);
         }
         return fib;
      }
public void homework(){
for(int i=0;i<100;i++)Console.WriteLine("I will not throw paper airplanes in class");
}

ECDundy

#6
Esta es mi solucion recursiva al ejercicio #5(En particular este ejercicio me ah dejado dudas en cuanto a si mi codigo esta suficientemente optimisado) Espero que lo disfruten tal como yo:

using System;

namespace piramide
{
   class Class1
   {
      static void Main(string[] args)
      {      
for (int i=0;i<80;i++)
{
   Piramide p = new Piramide();
   p.Show (i);
}
      }
      

   }
   class Piramide
   {
      bool flag;
      int val,val1;
      public void Show(int n)
      {
         string esp=" ";
         string ast="*";
         if(n==0&&!flag)Console.WriteLine();
         else if (n==1&&!flag)Console.WriteLine(ast);
         else if (n==2&&!flag)Console.WriteLine(ast+ast);
         else
         {
            if(!flag)
            {
               val1=n;
               val=(n-1)/2;
               flag=true;
            }
            for (int i=0;i<val-1;i++)esp+=" ";
            for (int k=1;k<val1-2*(esp.Length);k++)ast+="*";
            Console.Write(esp+ast);
            Console.WriteLine();
            val--;
            if(esp.CompareTo(" ")!=0)Show(val);
            else
            {
               for(int j=0; j<val1;j++)Console.Write("*");
               Console.WriteLine ();
            }
         }
      }
   }
}

public void homework(){
for(int i=0;i<100;i++)Console.WriteLine("I will not throw paper airplanes in class");
}

lordram

Ahí va mi solución para el ejercicio 1:

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

namespace ElHacker
{
    class Program
    {

        static Func<int, char> ObtenerLetra = x => "TRWAGMYFPDXBNJZSQVHLCKE"[x % 23];

        static void Main(string[] args)
        {
            Console.Write("Introduzca su DNI: ");
            Console.WriteLine("Su letra es: {0}",ObtenerLetra(Convert.ToInt32(Console.ReadLine())));
        }

    }
}

lordram

Ejercicio 2:

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

namespace ElHacker
{
    class Program
    {     

        static void Main(string[] args)
        {
            Console.Write("Introduzca la letra del DNI: ");
            char letra = Convert.ToChar(Console.ReadLine().ToUpper());
            int posicionLetra = "TRWAGMYFPDXBNJZSQVHLCKE".IndexOf(letra);           

            Console.Write("Introduzca cuantos números deséa generar: ");
            int numero = Convert.ToInt32(Console.ReadLine());

            Random rnd = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < numero;i++)
                Console.Write("{0} ", 23 * rnd.Next(1000000, 3500000) + posicionLetra);
        }

    }
}

lordram

Para el 3º:

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

namespace ElHacker
{
    class Program
    {     

        static void Main(string[] args)
        {
            Console.Write("Introduzca un año: ");
            int year = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("El año {0}es bisiesto", EsBisiesto(year) ? "" : "NO ");                   
        }

        static Func<int, bool> UltimoAno = x => x % 100==0;
        static Func<int, bool> SecularBisiesto = x => x % 400==0;
        static Func<int, bool> Bisiesto = x => x % 4 == 0;

        static bool EsBisiesto(int ano)
        {
            if (!Bisiesto(ano))
                return false;
            return (UltimoAno(ano) && SecularBisiesto(ano) || !UltimoAno(ano));               
        }

    }
}