|
Mostrar Mensajes
|
Páginas: [1] 2 3
|
1
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con arrays en C#
|
en: 21 Noviembre 2010, 22:54 pm
|
ahi esta...pero insisto, en vez de array yo usaría una lista genérica: List<int> ....lo del problema que tienes es que antes debes hacer una verificaciòn, si i-1 es >= a 0 ...... UPDATED: Oops!!, no sé de dònde saqué que tampoco tenían que ser impares...si quieres que también los impares se guarden remueve el OR : || (valor%2)>0
|
|
|
2
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con arrays en C#
|
en: 21 Noviembre 2010, 22:30 pm
|
Antes que nada, yo usaría una lista genérica, puesto que no sabes el numero de numeros que coincidiran con las condiciones dadas, el array en este caso esta desperdiciando espacio.... y, bueno, espero que sa de ayuda...como ya hiciste algo creo que esto no s hacerte la tarea... public void SetArray() { int[] valores = new int[50]; Random ra = new Random(1432);//Con semilla int valor = 0; for(int i=0;i<valores.Lenght;i++) { valor = ra.Next(); if(IsValid(valores,valor)) { valores[i] = valor; } } }
private bool IsValid(string[] valores, int valor) { bool valid = true; if((valor == 0) || ((valor%2) > 0)) { valid = false; } else { for(int i=0;i<valores.Lenght;i++) { if(valores[i] == valor) { valid = false; break;//ó i=valores.Lengh } } } return valid; }
|
|
|
4
|
Programación / .NET (C#, VB.NET, ASP) / Re: Formato a una variable?
|
en: 8 Noviembre 2010, 05:55 am
|
lo que hago es simple: recorto la parte que dice 'archivo.ext' y le agrego ula cadena '...', por lo que al final queda: '...archivo.ext'. Con int posIni =fullPath.GetLastIndexOf("\\"); se obtiene la psoiciòn de la última ocurrencia de '\', se pone doble porque ese caracter es un caracter de escape, o bien hubiera podido ser: GetLastIndexOf(@"\"); por cierto si tienes un string con un path usa el arroba delante del path, por ejemplo: string path: @"C:\cualquier\archivo.ext"; es para evitar poblemas con el caracter '\' .... Bueno, sigo, decía que obtengo la posicion del ultimo '\', eso quiere decir justo antes de 'archivo.ext'. El metodo subtring recibe tres parametros: 1- cadena original 2-posicion o index desde dónde se desea cortar 3-Length o tamaño de cadena a cortar. Se quiere que empieze no desde el último '\' sino una posiciòn mas adelante: posIni+1
El tamaño que se quiere cortar,en este caso solo serìa 'archivo.ext' y seria : fullPath.Length - posIni ...
Por ejmplo: string cadena = "jlrvpuma"; int posIni = cadena.GetLastIndexOf("v"); int length = cadena.Length - posIni; string nuevaCadena = cadena.SubString(cadena,posIni+1,length); //ahora nuevaCadena es "puma"
|
|
|
7
|
Programación / .NET (C#, VB.NET, ASP) / Re: alguien que sepa leer vocales y consonantes de vector
|
en: 8 Octubre 2010, 07:42 am
|
Por lo menos has hecho algo, asi que no creoq ue esto sea hacerte la tarea...como ves no es necesario tanta 'cachucha' para encontrar las vocales...espero que te ayude... string vocales = "aeiou"; int contadorVocales = 0,contadorConsonantes=0; char[] cola = new char[]{'q', 'a', 'f', 'i', 'o'}; string posicionVocales = "",posicionConsonantes="", strCola = ""; for (int i = 0; i < cola.Length; i++) { if(Char.IsLetter(cola[i])) { if(vocales.Contains(cola[i].ToString())) { contadorVocales += 1; posicionVocales += "posicion " + i.ToString() + " --> " + cola[i].ToString() +"\n"; } else { contadorConsonantes +=1; posicionConsonantes += "posicion " + i.ToString() + " --> " + cola[i].ToString() +"\n"; } } strCola += cola[i].ToString(); } Console.WriteLine("Hay {0} vocales y {1} consonantes.", contadorVocales.ToString(),contadorConsonantes.ToString()); Console.WriteLine("\nVocales en '{0}':\n{1}",strCola,posicionVocales); Console.WriteLine("\nConsonantes en '{0}':\n" + "{1}",strCola,posicionConsonantes); Console.ReadKey(); /*salida: Hay 3 vocales y 2 consonantes. Vocales en 'qafio': posicion 1 --> a posicion 3 --> i posicion 4 --> o Consonantes en 'qafio': posicion 0 --> q posicion 2 --> f */
|
|
|
8
|
Programación / .NET (C#, VB.NET, ASP) / Re: [C#] Heredar constructores
|
en: 3 Octubre 2010, 01:40 am
|
Siuto, si lo que necesitas es verificar los parámetros puedes usar la solución del método estático, pero si son muchos parámetros el código se vería muy feo, para evitar esto puedes hacer las verificaciones en el cuerpo del constructor; es decir entre { y },aunque de esta forma prescindirías del constructor en la clase Padre, no estaría haciendo nada. Al parecer debes construir un objeto complejo, a mi se me ocurre que te caería a pelo usar el patrón Builder(patrón de diseño de software),éste patrón se usa cuando el algoritmo de construcción de un objeto complejo debe ser independiente del objeto y el proceso de construcción debe permitir diferentes representaciones del objeto. Este patrón es muy simple y facil de implementar. Un ejemplo sencillo: public class Computadora { //Propiedades public string Marca{get;set;} public string Tipo{get;set;}
//Metodos public override string ToString() { return "Computadora Marca: " + Marca + ". Tipo: " + Tipo +"."; } }
public abstract class Builder { public Computadora pc;
public abstract void SetMarca(); public abstract void SetTipo(); }
public class Laptop:Builder { public override void SetMarca() { pc.Marca = "HP"; } public override void SetTipo() { pc.Tipo = "Laptop"; } }//fin Laptop
public class Desktop:Builder { public override void SetMarca() { pc.Marca = "Patito"; } public override void SetTipo() { pc.Tipo = "Escritorio"; } }//fin Desktop
public class Director { public void ConstruirMaquina(Builder builder) { builder.SetMarca(); builder.SetTipo(); } }
/****** Esto en la clase Main *********************/ public static void Main(string[] args) { Builder builder; Director director = new Director(); Console.WriteLine("Presiona el 1 para construir una laptop y 2 para una pc de escritorio"); switch(Console.ReadLine()) { case "1": builder = new Laptop(); break; case "2": builder = new Desktop(); break; }
//construye la máquina: director.ConstruirMaquina(builder); Console.WriteLine("Se ha construido una {0}", builder.ToString());
}//Fin main
Como ves el objeto Computadora no tiene nada que ver con su construción y además permite varias representaciones. En fin, espero haber ayudado, disculpa el código, pero es que no sé cómo ponerlo formateado como uds lo han hecho.
|
|
|
|
|
|
|