|
3063
|
Programación / Java / Re: ¿Cuales son los tipos de algoritmos o metodos mejores
|
en: 16 Abril 2018, 21:03 pm
|
Pués para estar en un concurso (se supone que) se necesitan ciertos conocimientos y claridad de ideas... sin embargo, a duras penas eres capaz de explicarte, así que no se yo si saldrás bien parado... ...al hablar de algoritmos y sin más detalles específicos, asumo que te refieres a algoritmos de ordenamiento, wikipedia para eso te viene muy bien... debajo busco luego un enlace a todos ellos... - El de burbuja descártalo, salvo que que estés muy limitado de tiempo o tengas que ordenar pocos ítems (a lo sumo algunos centenares), gNome también encaja ahí. - Entre esa cantidad y pocos cientos, selección e inserción son más eficaces, y todavía son relativamente fácil implementarlos de cabeza en poco tiempo (sin cometer errores), pero en ese caso, - Cuando te aproximas al medio millar, quicksort destaca sobre el resto y se hace más notable cuanto más órdenes de cifras haya. Combo sort, es entre la mitad y 1/4 de rápido con respecto a quicksort... - Si son pocos miles, y los límites (el mayor y el menor) no distan varios órdenes de cifras, ordenas números y son todos enteros, el algoritmo counting sort es el más rápido, pero consume de memoria un array adicional, de tamaño 'menor hasta el mayor'. Es el más rápido de todos, pero solo puede usarse en situaciones limitadas. Naturalmente, son todo aproximaciones, depende de la implementación, del lenguaje con que se programe y del hardware... https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento
|
|
|
3064
|
Programación / .NET (C#, VB.NET, ASP) / Re: aplicar atributos a archivos y carpetas.
|
en: 16 Abril 2018, 04:42 am
|
Cuando no se conoce a prori, lo que ha de hacer una tarea determinada (tarea determinada, con cantidad detrabajo indeterminado), una barra de progreso resulta inútil... si no sabes de antemano si hay 100 ficheros, o 100.000 como vas a indicar el porcentaje total que llevas en un momento dado???.
Cuando es incierto lo que haya de tardar, porque se desconoce el tamaño (y precalcularlo, supone una pérdida de tiempo, que alarga el tiempo de proceso), entonces lo deseables es mostrar solo un indicador de "Trabajando"... esto es, ...una pequeña animación, y para que el usuario no acabe por creer que se ha colgado la aplicación, con cada carpeta, la señalas en un label y como habrá carpetas con muchos ficheros, cada segundo (por ejemplo) actualizas la ruta el nombre del fichero actual en otro label...
|
|
|
3065
|
Programación / Programación C/C++ / Re: Consulta sobre programa C
|
en: 15 Abril 2018, 03:13 am
|
Cuando usas más de 3-4 if..elseif seguidos, debes pensar en una solución algo más 'elegante', que a la par de ganar en claridad, es más fácil de mantener... 0 - De entrada usando un Switch, sería más claro. 1 - Pero mejor aún si usas unos arrays, en uno guardas los 'periodos', y en otro los pintores... 2 - En realidad sería mejor usar una estructura... ...pero vamos con arrays y en un futuro lo mejoras con alguna estructura... Funcion Main Array de strings periodos(0 a x-1) periodos(0) = "Prehistorico" periodos(1) = "Egipcio" periodos(2) = "Renacimiento" periodos(3) = "Barroco" ... etc...
Array de Strings pintores(0 a y-1) pintores(0) = "Leonardo" pintores(1) = "Michelangelo" ... etc... pintores(7) = "Bellini" pintores(8) = "Velázquez" pintores(9) = "Murillo" pintores(10) = "Caravaggio" ... etc... array de strings PintoresPeriodo(0 a x-1) //relaciona los pintores con cada periodo pintoresPeriodo(0) = "-1,1" // no contiene pintores, y la galeria es la 1. pintoresPeriodo(1) = "-1,1" // no contiene pintores, la galeria es la 1. pintoresPeriodo(2) = "0,1,2,3,4,5,6,7" // Leonardo, Michelangelo... y Bellini pertencen al periodo 2 pintoresPeriodo(3) = "8,9,10" // Velázquez, Murillo y Caravaggio, pertencen al periodo 3 ... etc...
Array de enteros galerias(0 a y-1) // relaciona a cada pintor con una galeria. galerias(0) = 2 // Leonardo está en la galeria 2. galerias(1) = 2 // Michelangelo también está en la galeria 2. galerias(2) = 3 // Rafael está en la galeria 3. ... etc...
galerias(7) = 6 // Bellini en la galería 6 (equivalente a la 5b, guardamos números en este array, pero se puede cambiar a array de strings, si es preciso poner 5b... galerias(8) = 7 // Velázquez en galeria 7 galerias(9) = 7 // Murillo " " galerias(10) = 8 // Caravaggio, en la galeria 8 ... ec...
Llamada MostrarOpcionesAlUsuario Fin funcion Ahora la función que realiza todo el trabajo... muestra opciones, deja elegir al usuario, verifica valor correcto y muestra resultados. Funcion MostrarOpcionesAlUsuario String repite entero prd, pnt, gal // periodo, pintor buleano b
Hacer Hacer Llamada imprimirPeriodos prd = PedirPeriodo("Elige un periodo... (teclea el número asociado al periodo)") Repetir mientras ((prd < 0) o (prd >= x)) imprimir "Periodo elegido: " + periodos(prd) Hacer b = llamada ImprimirPintores(prd) Si (b = TRUE) pnt = PedirPintor("Elige un pintor... (teclea el número asociado al pintor)") mostrarAlUsuario("...para el pintor " + pintores(pnt) + " del periodo " + periodos(prd) + " La galería correspondiente es: " + galerias(pnt) sino pnt = 0 // para periodos sin pintores, ya se mostró la galería, no precisa un valor elegido. fin si Repetir mientras ((pnt < 0) o (pnt >= y))
repite = PedirAlUsuario("¿ Desea elegir otra vez (S/N) ?") Repetir mientras repite = "s" o repite ="S" Fin funcion Borra la pantalla y muestra opción de elgir un periódo: Prehistórico = 0 Egipcio = 1 Renacimiento = 2 Barroco = 3 ... Funcion imprimirPeriodos entero k Borrar pantalla bucle para k desde 0 hasta x-1 imprimir periodos(k) + tabulador + " = " + (k) siguiente en bucle fin funcion Imprime la lista de pintores asociada al periodo elegido (que se recibe como parametro). y devuelve un buleano. Si devuelve TRUE, indica que debe localizarse la galería asociada al pintor que se elija. Periodo elegido: Renacimiento Elige un pintor... (teclea el número asociado al pintor) Leonardo = 0 Michelangelo = 1 ... Bellini = 7 buleano = funcion ImprimirPintores(entero periodo) entero k, z array de enteros n()
n = TomarCadaNumeroSeparadoPorUnaComaDe(pintoresPeriodo(periodo) z = ultimoIndiceEnArray(n)
Si (n(0) =>0) Hacer imprimir tabulador + pintores(n(k)) + tabulador + " = " + n(k) k +=1 Repetir mientras (k<=z) Devolver TRUE Sino imprimir "el periodo " + periodos(periodo) + " no tiene pintores conocidos, la galeria es: " + galerias(n(1)) devolver FALSE Fin si fin funcion Como puedes ver, lo hemos resuelto sin un mísero if...elseif... gana en claridad, y si la lista crece o cambia, basta modificar en main, los valores de 'x', 'y' y reasignar en sus respectivos arrays...
|
|
|
3066
|
Programación / Programación Visual Basic / Re: Mover al siguiente elemento igual en un listbox
|
en: 14 Abril 2018, 21:03 pm
|
No.
Listview es mucho más complejo... de entrada sus elementos permanecen en la colección ListItems, luego la cantidad listcount, no es una propiedad al mismo nivel jerárquico... de hecho ni siquiera es una propiedad en listview: Listbox1.Listcount Listview1.ListItems.Count ... Listbox.AddItem ("texto") Listview1.ListItems.Add (,, "texto")
Hay que adaptarlo y para ello debes conocer en cierta profundidad el control. Si no lo conoces no tiene sentido usarlo, no es conforme usar cosas sin saber que se hace, jugando a 'rpobar a ver que pasa'...
USA la AYUDA, es muy completa, allí se describe a fondo cada control incluyendo el listview, tienes acceso a sus propiedades, métodos, eventos y con ejemplos de cada uno...
|
|
|
3068
|
Foros Generales / Noticias / Re: Gravísimo: Rusia acaba de prohibir Telegram
|
en: 14 Abril 2018, 20:09 pm
|
bien y desde Platón se reconoce al "estado" como un ente "agresivo y opresor", el cual le cediste tus derechos antes de nacer a cambio que este te protega y de beneficios a cambio, el cual se basa únicamente en poder y hará todo para mantenerlo. Gente como Rosseau te dirá que esto es en tu propio beneficio, que hay un contrato (el "contrato social") no escrito de por medio que de ser violada por una de las partes, todo el equilibrio se rompe... luego te dicen en la modernidad "el conocimiento es poder" y adivina que necesita el estado para mantener poder (y por qué desaparece la "vida privada" como se conocía)
Rousseau, ya lleva criando malvas, algún que otro siglo... la puja actual, no tiene nada que ver, con la de siglos pasados. En el pasado el medio opresor supremo era la guerra, y en general se aplicaba contra los vecinos, hoy día es el estado policial y en general se aplica sobre los propios 'conciudadanos' (para el beneficio de unos pocos). Son situaciones bastante distintas, sobretodo porque en el pasado, el estado opresor tenía serias limitaciones basada en el número de gente-soldados. Hoy día con la tecnología, bastan pocos... por supuesto mientras sean pocas las ovejas que se escapen del redil, si lo intenta todo el rebaño, la historia cambia. ...de ahí la importancia de que la gente 'despierte'... pero la mayor parte de la gente vive 'drogada-borracha' con tonterías cotidianas, la moda, los famosos, el fúbbol... hasta con ideales políticos.
|
|
|
3069
|
Foros Generales / Noticias / Re: Pueden robar datos de tu PC a través de los cables de corriente
|
en: 14 Abril 2018, 19:59 pm
|
A comienzos de siglo, precisamente había una gran expectación en que toda la red de internet, funcionara precisamente a través del flujo eléctrico... pero claro esto chocaba (al margen de la tecnología por superar para disponer de calidad), de entrada con los proveedores de internet, que básicamente pasarían de ser 'la banca que corta el bacalo' a directamente sobrar y ser un estorbo, y segundo con los sistemas de espionaje gubernamentales que son los principlaes espías por tales métodos. ...y así, con el paso del tiempo dicha tecnología se fue difuminando hasta quedar en un susurro... todo lo más que he vuelto a escuchar, es para 'disponer de internet en todo tu domicilio, conectando al enchufe'. Es decir usar la instalación eléctrica de tu casa para ampliar la señal... y tampoco conozco gente que haga uso de esta tecnología.
|
|
|
3070
|
Foros Generales / Noticias / Re: WhatsApp prohibirá el ingreso a menores de 16 años
|
en: 14 Abril 2018, 19:44 pm
|
te puedo recordar los leaks hasta hoy? XD más de 100 millones de cuentas de diferentes servicios con documentos e incluso tarjetas de credito? XD Para determinadas cuestiones, las credenciales son necesarias... si vas a comprar un producto, igual tienes que dar tus datos, es razonable. ...en cambio para jugar, o para charlar con 4 amigos, no le veo la obligación. el mismo problema original... se la podrán saltar XD ... y el mayor de edad tendría que dar sus datos... y los del menor para demostrar que es su tutor XD El mayor de edad, ya da sus datos, para tener la línea de teléfono... el menor, no tiene que dar, nada, a fin de cuentas el 'dueño' del terminal es el padre, madre, tutor en general, y simplemente instala, y configura la aplicación, al caso en esa configuración debiera haber una casilla que indicara: "será usado por un menor de 16 años", ya está. no precisa dar datos... Al contratar la línea de teléfono (wahtsapp, no fuinciona sin asociarse a un número de teléfono), tienes que dar tus datos reales a la compañía, la cual evidentemente, si eres menor de edad, te exige también un tutor (tu padre, madre, etc...), quizás esto sea algo diferente en según qué países, lo mismo que la mayoría de edad, pero básicamente es así en todo el mundo. ok, no me parece mal, pueden tener problemas secundarios (como niñas nunca teniendo amigos varones XD pero cada quien que crie a sus hijos como quiera) mmm... es una cuestión básicamente cultural. En determinados países eso será así casi por legislación. De todos modos si un padre es de ese tipo, de entrada ni le dejará tener un terminal, para eliminar esa posibilidad, ¿no crees?. y allí se murió la interacción... "mira te pasé x fotos necesarias" "ahh no puedo verlas, tengo que esperar que mi papá las apruebe y siempre le da pereza y cierra la notificación... espera dejame buscar su telefono para aprobarlas" XD
En la medida en que el MENOR demuestre responsabilidad, considero (es de suponer) que sus padres, cofiarán más y no requerirá una supervisión contínua... Pero si a tí te parece que es mejor opción, que los menores de 16, no puedan tener whatsapp... pués listo.
|
|
|
|
|
|
|