elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
10 Octubre 2008, 21:48  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios (Moderador: soplo)
| | | |-+  Ejercicios C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: Ejercicios C#  (Leído 5073 veces)
Hendrix
Colaborador

Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Ejercicios C#
« en: 27 Abril 2007, 22:42 »

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.

En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Meta

Desconectado Desconectado

Mensajes: 994


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #1 en: 20 Mayo 2007, 19:25 »

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????????
En línea

http://usuarios.lycos.es/electronicapic Manuales de electrónica general y PIC.
Hendrix
Colaborador

Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #2 en: 20 Mayo 2007, 19:33 »

fácil no????????

Nunca dije lo contrario... ;) ;)

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

Un Saludo.

En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Meta

Desconectado Desconectado

Mensajes: 994


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #3 en: 20 Mayo 2007, 20:02 »

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

... para aprender novatos está bien.
En línea

http://usuarios.lycos.es/electronicapic Manuales de electrónica general y PIC.
Yhoda

Desconectado Desconectado

Mensajes: 1



Ver Perfil
Re: Ejercicios C#
« Respuesta #4 en: 18 Abril 2008, 22:39 »

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);

            }
        }
    }
}
En línea
ECDundy

Desconectado Desconectado

Mensajes: 8


throw new exception(":)");


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #5 en: 30 Abril 2008, 10:30 »

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;
      }
En línea

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

Desconectado Desconectado

Mensajes: 8


throw new exception(":)");


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #6 en: 01 Mayo 2008, 01:12 »

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 ();
            }
         }
      }
   }
}

« Última modificación: 04 Mayo 2008, 06:35 por ECDundy » En línea

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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ejercicios C#
« Respuesta #7 en: 23 Mayo 2008, 02:37 »

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())));
        }

    }
}
En línea
lordram

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ejercicios C#
« Respuesta #8 en: 23 Mayo 2008, 03:14 »

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);
        }

    }
}
En línea
lordram

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ejercicios C#
« Respuesta #9 en: 23 Mayo 2008, 03:34 »

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));               
        }

    }
}
En línea
lordram

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ejercicios C#
« Respuesta #10 en: 23 Mayo 2008, 03:46 »

Ejercicio 4:

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

namespace ElHacker
{
    class Program
    {

        static Func<int, int> TerminoN = numero => Enumerable.Range(0, numero).Aggregate(new { X = 1, Y = 0 }, (p, a) => new { X = p.Y, Y = p.X + p.Y }).Y;

        static void Main(string[] args)
        {
            Console.Write("Introduzca un número: ");
            int number = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < number; i++)
                Console.Write("{0} ", TerminoN(i));
        }

    }
}
En línea
ECDundy

Desconectado Desconectado

Mensajes: 8


throw new exception(":)");


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #11 en: 15 Junio 2008, 02:53 »

Respuesta al ej #6using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace letras_a_numeros
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(enletras(Console.ReadLine()));
            Console.ReadLine();
        }

        public static string enletras(string nu)
        {

            string res, dec = "";

            Int64 int_s;

            int tens;

            double nro;

            try
            {

                nro = Convert.ToDouble(num);

            }

            catch
            {

                return "";

            }

            int_s = Convert.ToInt64(Math.Truncate(nro));

            tens = Convert.ToInt32(Math.Round((nro - int_s) * 100, 2));

            if (tens > 0)
            {

                dec = " CON " + tens.ToString() + "/100";

            }

            res = toText(Convert.ToDouble(int_s)) + dec;

            return res;

        }

        private static string toText(double value)
        {

            string Num2Text = "";

            value = Math.Truncate(value);

            if (value == 0) Num2Text = "CERO";

            else if (value == 1) Num2Text = "UNO";

            else if (value == 2) Num2Text = "DOS";

            else if (value == 3) Num2Text = "TRES";

            else if (value == 4) Num2Text = "CUATRO";

            else if (value == 5) Num2Text = "CINCO";

            else if (value == 6) Num2Text = "SEIS";

            else if (value == 7) Num2Text = "SIETE";

            else if (value == 8) Num2Text = "OCHO";

            else if (value == 9) Num2Text = "NUEVE";

            else if (value == 10) Num2Text = "DIEZ";

            else if (value == 11) Num2Text = "ONCE";

            else if (value == 12) Num2Text = "DOCE";

            else if (value == 13) Num2Text = "TRECE";

            else if (value == 14) Num2Text = "CATORCE";

            else if (value == 15) Num2Text = "QUINCE";

            else if (value < 20) Num2Text = "DIECI" + toText(value - 10);

            else if (value == 20) Num2Text = "VEINTE";

            else if (value < 30) Num2Text = "VEINTI" + toText(value - 20);

            else if (value == 30) Num2Text = "TREINTA";

            else if (value == 40) Num2Text = "CUARENTA";

            else if (value == 50) Num2Text = "CINCUENTA";

            else if (value == 60) Num2Text = "SESENTA";

            else if (value == 70) Num2Text = "SETENTA";

            else if (value == 80) Num2Text = "OCHENTA";

            else if (value == 90) Num2Text = "NOVENTA";

            else if (value < 100) Num2Text = toText(Math.Truncate(value / 10) * 10) + " Y " + toText(value % 10);

            else if (value == 100) Num2Text = "CIEN";

            else if (value < 200) Num2Text = "CIENTO " + toText(value - 100);

            else if ((value == 200) || (value == 300) || (value == 400) || (value == 600) || (value == 800)) Num2Text = toText(Math.Truncate(value / 100)) + "CIENTOS";

            else if (value == 500) Num2Text = "QUINIENTOS";

            else if (value == 700) Num2Text = "SETECIENTOS";

            else if (value == 900) Num2Text = "NOVECIENTOS";

            else if (value < 1000) Num2Text = toText(Math.Truncate(value / 100) * 100) + " " + toText(value % 100);

            else if (value == 1000) Num2Text = "MIL";

            else if (value < 2000) Num2Text = "MIL " + toText(value % 1000);

            else if (value < 1000000)
            {

                Num2Text = toText(Math.Truncate(value / 1000)) + " MIL";

                if ((value % 1000) > 0) Num2Text = Num2Text + " " + toText(value % 1000);

            }

            else if (value == 1000000) Num2Text = "UN MILLON";

            else if (value < 2000000) Num2Text = "UN MILLON " + toText(value % 1000000);

            else if (value < 1000000000000)
            {

                Num2Text = toText(Math.Truncate(value / 1000000)) + " MILLONES ";

                if ((value - Math.Truncate(value / 1000000) * 1000000) > 0) Num2Text = Num2Text + " " + toText(value - Math.Truncate(value / 1000000) * 1000000);

            }

            else if (value == 1000000000000) Num2Text = "UN BILLON";

            else if (value < 2000000000000) Num2Text = "UN BILLON " + toText(value - Math.Truncate(value / 1000000000000) * 1000000000000);

            else
            {

                Num2Text = toText(Math.Truncate(value / 1000000000000)) + " BILLONES";

                if ((value - Math.Truncate(value / 1000000000000) * 1000000000000) > 0) Num2Text = Num2Text + " " + toText(value - Math.Truncate(value / 1000000000000) * 1000000000000);

            }

            return Num2Text;

        }

    }

}
En línea

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

Desconectado Desconectado

Mensajes: 8


throw new exception(":)");


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #12 en: 28 Junio 2008, 12:02 »

Respuesta al ejercicio #8
         public static void Write_Text(string str,string FileName)
        {

            try
            {
                if (File.Exists(FileName))
                {
                    using (StreamWriter writer = new StreamWriter(FileName))
                    {
                        string[] Separated = str.Split(' ');
                        foreach (string k in Separated)
                        {
                            writer.WriteLine(k);
                        }
                        writer.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Error" + ex);
            }

        }
En línea

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

Desconectado Desconectado

Mensajes: 8


throw new exception(":)");


Ver Perfil WWW
Re: Ejercicios C#
« Respuesta #13 en: 10 Julio 2008, 08:22 »

Ejercicio #7 Mi solucion recursiva no debe ser la mas optima. Pero he tenido que pensarla unos cuantos dias para hacerla. Asi que buena o mala aqui esta. El algoritmo recursivo para toda la cadena sale en 3 lineas pero para un numero espesifico de caracteres es un poco mas complicado. En este caso mi codigo les permite espesificar el numero de caracteres a combinar con todos los caracteres de un array de caracteres. El constructor te pide el archivo a crear o guardar el index, que son la cantidad de caracteres a combinar y finalmente un array de caracteres como referencia. Agradecimientos especiales al primo William UH, ya que sin el no hubiera esclarecido algunas dudas respecto a la combinatoria en general.
Citar
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ECDundy.Programmer
{
    class ECDundy_Combinatorial
    {
        static void Main(string[] args)
        {

            char[] arr = new char[26] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
            Combinatorial p = new Combinatorial(@"c:\Combinations.txt", 4, arr);
            p.Create();

        }

    }
class Combinatorial
    {
        private  char[] Elements;
        private  string Result, FileName;
        private  List<string> _List;
        private  int Count,Index;
        StreamWriter writer;
        public  Combinatorial(string FileName, int Index, params char[] Elements)
        {
            this.FileName = FileName;
            this.Elements = Elements;
            this.Index = Index;
            writer = new StreamWriter(FileName);
            Count=-1;
            Result = "";
            _List = new List<string>();
         
        }
        public void Create() { Combining_Characters(Elements, Result, _List, Index); writer.Close(); }
        private  void Combining_Characters(char[] Elements, string Result, List<string> _List, int Index)
        {
            char[] temp = new Char[Index];
            string temp2 = "";

            if (Result.Length == Elements.Length)
            {
                Count++;
                for (int i = Elements.Length - 1, k = 0; i > (Elements.Length) - Index - 1; i--, k++)
                {
                    temp[k] = Result;
                }
                temp2 = new string(temp);
                if (!_List.Contains(temp2))
                {
                    _List.Add(temp2);
                   
                    Write_Text(temp2);
                }
            }
            else
            {
                for (int i = 0; i < Elements.Length; i++)
                {
                    if (Count == _List.Count) break;
                    else Combining_Characters(Elements, Result + Elements, _List, Index);
                }
            }
        }
        private  void Write_Text(string str)
        {
            try
            {
                        writer.WriteLine(str);
            }
            catch (Exception ex)
            {
                throw new Exception("Error" + ex);
            }

        }
    }
}
« Última modificación: 10 Julio 2008, 08:40 por ECDundy » En línea

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

Desconectado Desconectado

Mensajes: 437


Estar orgulloso de Catalunya y España es posible


Ver Perfil
Re: Ejercicios C#
« Respuesta #14 en: 13 Agosto 2008, 13:12 »

Estoy aprendiendo C# desde que me baje Visual Studio 2005 (es decir, ayer), asi que no se metan conmigo si hago cosas innecesarias o mal hechas  :xD

Mi solución al ejercicio 1:

Código
using System;
using System.Collections.Generic;
using System.Text;
 
namespace LetraDNI
{
   class LetraDNIApp
   {
       static void Main(string[] args)
       {
           int NumerosDNI;
           string LetrasDNI = "TRWAGMYFPDXBNJZSQVHLCKE";
           char[] Letras = new char[22];
           Letras = LetrasDNI.ToCharArray();
           Console.Write("Escriba sus numeros de DNI: ");
           NumerosDNI = Convert.ToInt32(Console.ReadLine());
           Console.Write("Su letra del dni es la {0}.", Letras[NumerosDNI % 23]);
           int Pausa = Console.Read();
       }
   }
}
 

Mi solución al ejercicio 3:
Código
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Ejericicio3
{
   class Ejericicio3App
   {
       static void Main(string[] args)
       {
           int Año;
           Console.Write("Introduce un año: ");
           Año = Convert.ToInt32(Console.ReadLine());
             Console.Write("El año {0} ", Año);
           if ((Año % 4 == 0 && Año % 100 != 0) || Año % 400 == 0)
           {
               Console.WriteLine("es bisiesto.");
           }
           else
           {
               Console.WriteLine("no es bisiesto.");
           }
           Console.Read();
       }
   }
}

Mi solución al ejercicio 4:

Código
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Ejericio4
{
   class Ejericio4App
   {
       static void Main(string[] args)
       {
           Console.Write("Introduce un numero: ");
           int Numero = Convert.ToInt32(Console.ReadLine());
           Console.WriteLine("f({0}) = {1}", Numero, Fibonacci(Numero));
           Console.ReadKey();
       }
       public static int Fibonacci(int Numero)
       {
           return (Numero < 2) ? Numero : Fibonacci(Numero - 1) + Fibonacci(Numero - 2) ;
       }
   }
}
« Última modificación: 14 Agosto 2008, 10:55 por ArcheritONE » En línea

Páginas: [1] 2 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats