Páginas: [1] 2
|
 |
|
Autor
|
Tema: Ejercicios C# (Leído 5152 veces)
|
Hendrix
Colaborador
Desconectado
Mensajes: 2.028
The Lord of his Middle Earth
|
Propongo esta serie de ejercicios inventados al momento: Ejercicios matematicosEjercicio nº1: - Calcular la letra del DNI a partir de un numero introducido Algoritmo para sacar la letra del DNIEjercicio 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
|
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
|
|
|
|
Hendrix
Colaborador
Desconectado
Mensajes: 2.028
The Lord of his Middle Earth
|
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
|
A ver quién lo hace en modo Visual. No hace falta, pero...
... para aprender novatos está bien.
|
|
|
|
|
En línea
|
|
|
|
Yhoda
Desconectado
Mensajes: 1
|
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
Mensajes: 8
throw new exception(":)");
|
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
Mensajes: 8
throw new exception(":)");
|
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
Mensajes: 8
|
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
Mensajes: 8
|
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
Mensajes: 8
|
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
Mensajes: 8
|
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
Mensajes: 8
throw new exception(":)");
|
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
Mensajes: 8
throw new exception(":)");
|
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
Mensajes: 8
throw new exception(":)");
|
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. 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
Mensajes: 438
Estar orgulloso de Catalunya y España es posible
|
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  Mi solución al ejercicio 1: 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: 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: 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
|
|
|
|