Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

#2561
Un programa es malicioso, desde el mismo momento en que hace algo que el usuario no ha aprobado...

...es malicioso, además, porque cuando empiece a hacer esas cosas, el usuario puede pensar que está infectado con un virus y debido a ello, puede entrarle prisas por formatear, o intentar cualquier tontería, lo que como mínimo hace malfastar su tiempo y en lo peor, puede perter el contenido completo del disco duro, si no tiene conocimientos suficientes...
#2562
Al fin, alguien en un gobienro, con dos dedos de frente...
#2563
No sé los demás, pero yo, lo tengo bastante claro...

Cuando la tv. venga por defecto conectada a la red y no exista la posibilidad de desactivarlo, se habrá convertido en un espía en casa, un intruso, un ladrón... ...por tanto llegará la hora de la muerte de la tv. (por lo menos en mi casa).
#2564
Cita de: Machacador en 17 Abril 2018, 04:53 AM
Y como evitar que el crimen organizado y los delincuentes comunes hagan uso de tan conveniente medio de intercambio???...
La teoría es fácil: Haciendo que el bitcoin se desplome... y no valga más que un grano de arena.
#2565
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
#2566
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...
#2567
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...
#2568
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...
#2569
Opino lo mismo que Elektro.

Solo añado, que el nombre del foro debiera ser más acorde con la realidad y cambiarlo a: ForoTrolls
...que lo reconozcan sin tapujos, son trolls...
#2570
Cita de: engel lex en 13 Abril 2018, 20:27 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.