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

#3301
Foro Libre / Re: DICCIONARIO DEFINITIVO
4 Julio 2017, 14:30 PM
Cita de: urpicha en  4 Julio 2017, 08:05 AM
... no tengo ningun diccionario definitivo, ... podríamos conseguirlo entre todo los usuarios de este foro
No existe ni existira jamás un "diccionario definitivo".  Las razones son tan obvias, que no merece el esfuerzo de explicarlo.

Cita de: urpicha en  4 Julio 2017, 08:05 AM
según lo poco que se "para conseguir el diccionario de combinaciones es necesario poner siertas letras,números o signos para que una computadora los pueda combinar ejem: A,B,C = {(A,B);(A,C);(B,.......etc}. Y así con todas las combinaciones posibles
;-) ;-) ;-)
Pero esto se estudia con 12-14 años... luego la gente lo olvida y cuando lo vuelve a ver años más tarde lo considera más complejo... porque olvidó las sencillas matemáticas aplicadas al caso.

Cita de: urpicha en  4 Julio 2017, 08:05 AM
LA IDEA que tengo es ... por lo (que) podremos encontrar fácilmente todas LAS COMBINACIONES POSIBLES, así tendremos el diccionario mas completo en ESP.
Fácil, difícil... bailas entre las ideas... más abajo te pongo un link...

Cita de: urpicha en  4 Julio 2017, 08:05 AM
Obviamente no sera muy fácil ni muy rápido que lo logremos pero mientras mas seamos mas rápido y sencillo sera el trabajo SE PUEDE LOGRAR, SI TODOS NOS UNIMOS
Fácil?. Es muy fácil... muy complejo para quien tiene la mente enmarañada (como sucede con cas todo en programación). Rápido?. Depende del alcance que se le quiera dar. Se pueden sacar muchos, pero muchos millones por segundo...

mmm.... mírate este hilo: https://foro.elhacker.net/abril_negro/abril_negro_spok_simple_production_of_keys-t468239.0.html
Ahí se hace un extensivo trabajo extremadamente sencillo, para generar permutaciones, se aclaran muchas cosas y hay mucho cóodigo... vamos todo o más de lo que quieres hacer tú, pero con código eficiente. 

p.d.: Esto me recuerda que tengo pendiente una entrega más sobre el tema... lo tenía olvidado.
#3302
Ya te lo ha explicado bien en el primer mensaje...
si eres capaz de escalar una imagen y eres capaz de desplazarla (pegarla) en otra posición, consigues lo que quieres.

Un sencillo ejemplo (yo en pseudocódigo, así cualquier que lea lo puede trasladar al lenguaje que precise...)

// Da igual si es una imagen o una captura de la pantalla, ventana, control, etc...
Funcion ZoomEnXY( entero X, entero Y, fraccion Zoom, grafico Imagen)
   fraccion dX, fraccion dY
   grafico ImgZoom
   
   // 0º Es realmente necesario?
   si zoom=1.0 luego Devolver //nada que cambiar.

    // 1º primero obtienes una imagen escalada al zoom indicado.
   ImgZoom = ZoomImg(Zoom, Imagen)

   // 2º Ahora toca cordenar la imagen en el mismo punto que se pulsó.
       // 2.1 X e Y deben ser cordenadas relativas en la imagen (si ya lo son, se puede omitir).
   X = (X - Imagen.Left)
   Y = (Y - Imagen.Top)
     
       //2.2 Escalamos las cordenadas relativas (x,y).
       // Esto es, dónde está el pixel en la imagen escalada, donde se pinchó en la original?
   dX = (Zoom * X)
   dY = (Zoom * Y)
       // Esto quiere decir que una vez la imagen se coloque en el mismo punto, dX y dY
       //sería la cordenada relativa de la imagen coincidente con x,y relativa de la imagen original.
       // 2.3 ahora solo queda traducir la cordenada relativa de la imagen escalada a la cordenada absoluta.
       // O lo que es lo mismo, obtener el origen de la imagen, poscionado como 'eje' en dX,dY.
   X = ((Imagen.left + X) - dX)  // la absoluta (previa) - la relativa actual, no da el origen de la imagen escalada.
   Y = ((Imagen.Top + Y) - dY)  // Es una regla de tres. X= ... es lo mismo que decir ImgZoom.Left = ...
   
   // 3º Finalmente pegar la imagen en la nueva posicion.
   GraficoDibujar(X, Y, ImgZoom)  
Fin Funcion



Un código más limpio podría relativizar el asunto de las cordenadas derivándolo a otra función...

Funcion ZoomEnXY( entero X, entero Y, fraccion Zoom, grafico Imagen)
   grafico ImgZoom
   
   // 0º Es realmente necesario?
   si zoom=1.0 luego Devolver //nada que cambiar.

    // 1º primero obtienes una imagen escalada al zoom indicado.
   ImgZoom = ZoomImg(Zoom, Imagen)

   // 2º Ahora toca cordenar la imagen en el mismo punto que se pulsó.
   X = TrasladarOrigen(X , Imagen.Left, Zoom)
   Y = TrasladarOrigen(Y , Imagen.Top, Zoom)
   
   // 3º Finalmente pegar la imagen en la nueva posicion.
   GraficoDibujar(X, Y, ImgZoom)  
Fin Funcion


La función que calcula la nueva posición en un solo paso
Pero mejor entenderlo bien más arriba, paso a paso, no usarlo sin entenderlo.
Con copiar y pegar no se aprende...

entero = Funcion TrasladarOrigen(entero Distancia, entero Posicion, fraccion Zoom)
   Devolver = (Distancia - ((distancia - Posicion) * Zoom))
Fin Funcion
#3303
El medio de permanecer en el poder, es convencer a otros que luchen por él... ¿cómo?.

Otorgándoles supuestos beneficios como si fueran derechos, para que entusiasmados ellos, sean quienes defiendan a ultranza (por no decir a muerte) esos 'derechos adquiridos'...
No es distinto a aquellos tiempos antemedievales donde se sacaba a varios al patio, se les tiraba un trozo de carne y se les decía: "el que quede vivo al llegar la noche, cenará en mi mesa 100 trozos como ése y beberá todo el vino que pueda beber"... así que el ser animalizado, se lanza a muerte contra los otros... sin saber que tras la cena, él mismo sería el objeto de diversión y perversión para los tiranos.

Históricamente esto es lo más bajo y siniestro a lo que un tirano puede llegar operando precisamente con la ignorancia y la nula rendición de espíritu de la 'plebe' (digo plebe, en la forma del seguidor que sigue un camino, sin conocimiento ni sentimiento propio alguno, solo ciego sordo y loco, esperanzado en la promesa de otro).
#3304
jajaja.. resulta gracioso...
Al final viene a ser lo mismo que se ha venido haciendo en muchas empresas, cuando se compra una remesa de equipos (todos iguales y la siguiente también), se instala el primero y se configura por completo y finalmente se crea una imagen del disco duro... en los siguientes equipos luego es solo volcar la imagen al disco y ya está.

Ahora que si ellos le ponen un nombre nuevo y lo sirven a la mesa como si fuera alguna novedad novísima nunca visto, pués vale...

Me recuerda un viejo vídeo de Benny Hill, que servía un vino... lo probaban, no les gustaba hacía que iba a cambiarlo por otro, le cambiaba la etiqueta, volvía y ahora si les parecía bueno...  :laugh: :laugh: :laugh:
#3305
La frecuencia de refresco es clave y tiene su muchas utilidades que más o menos todo programador conoce...

Aparte de eso, ya como usuario, también se agradece que haya flexibilidad. Recuerdo que hace un par de décadas, se me cansaba mucho la vista con el monitor, entonces eran todos CRC, de repente un día decidí cambiar de 60 a 75hz. y el problema desapareció, ni cansancio ni dolor de cabeza.

Probablemente aunque siempre asumimos que nuestro cerebro funciona así o asá, hay pequeñas diferencias entre cada uno de nosotros que son lo que nos acomoda.

El modo más fácil de comprobarlo, es tomar una foto, escanearla y luego decir a varios que gradúen el monitor hasta que los colores (solo los niveles RGB,  brillo y contraste) aparezcan idénticos a los que se ven en la foto, y cuando esté seguro que pare... veremos que lo frecuente es que todos varíen los controles en distintos grados y siempre pidiéndoles que se aseguren que son idénticos, no 'lo más parecido que puedan hacerlo', ya que eso sería indicativo de que no saben manejar los controles para lograr que sean idénticos a su vista. Así pués descartando dicho caso, lo que resta es la diferencia con que cada cual ve lo mismo que otro.
#3306
Vaya... ya hay dia internacional de todo, jajajajjaja...
#3307
Elektro, ya te ha respondido...
Imagino que estás empezando y por eso has saltado por encima de las recomendaciones que te daba Elektro, al no entender de que te hablaba... Voy a suponer que es así.

------------------------------------
Tu has colocado una función que requiere que se le pasen 4 parámetros, pero sólo le envías 3 desde la llamada. el 4º parámetro (el 3º según el orden que ocupa en la función) lo obtienes desde dentro de la función... algo que rompe la lógica de las funciones, pero que admeás te genera el error al invocarla (no porque esto dentro, si no porque reclamas un parámetro que no se recibe desde fuera...

Si la función recibe dos arrays, un texto y un entero, esa función debe servir para cualesquiera arrays se reciban, por tanto la petición del texto por consola, la inutiliza para propósitos generales y la hace específica de ese único caso. y a tal efecto, entonces ya porqué no hacerlo más 'íntimo' y 'particular' y obtener el resto de parámetros también desde ahí...  :silbar: :silbar: :silbar:


Esta línea debería estar antes de invocar la función. Para que al invocar la función, 'nom' ya tenga el valor que usará la función
nom = Console.ReadLine().ToUpper().Trim();

Luego tus bucles son extraños... e inenecesarios ¿por qué pones dos bucles uno dentro de otro?. Cuando usas dos bucles de pongamos 100 ciclos cada uno, al final se ejecutan 100x100 ciclos.
Buscar en un array de 100 elementos, solo requiere un máximo 100 ciclos, nunca 10.000 (100x100)

El pseudocódigo de tu función debería ser similar a esto:
NombreBuscado = Consola.LeerEntradaUser("blablabla")

buleano = Funcion Eliminar (ArrayEntero Lista, ArrayString Nombre, String NombreBuscado, Entero Tope)
    Entero n=-1

    // buscar si existe: Nombrebuscado en la lista
    Bucle para k desde 0 hasta array.items-1
         Si Nombre(k) = NombreBuscado
              n = k
              Salir de este bucle //para continuar en el siguiente
         Fin si
    Siguiente
    // Si Existe, eliminar y bajar todos los elementos encima de él
    Si n >= 0 luego
         Bucle para k desde n hasta Lista.Items-2 // ojo -2, por si se hallara en el último puesto
              Lista(k) = Lista(k+1)
              Nombre(k) = nombre(k+1)
         Siguiente
         // Borramos el último elemento (no es imprescindible).
         Lista(k) = ""
         Nombre(k)= ""
         //tope -= 1 Tope parece ser el punto final hasta el cual buscar, pero.. (comentado más abajo)
         return TRUE
    Fin si
Fin funcion


Como te decía el propósito del parámetro "Tope" parece ser el punto final hasta el cual buscar, pero si es un array, tras eliminar un item en un punto que no sea el final, exige bajar todos los que tiene encima una posición (hasta el final de la lista)...
Salvo que pretendas insertar uno en determinada posición, en cuyo caso crea una función remplazar, con la particularidad que localiza y borra un elemento y si lo encuentra, en el índice marcado como tope inserta el remplazo.


NombreBuscado = Consola.LeerEntradaUser("blablabla")
NombreRemplazo = Consola.LeerEntradaUser("blablabla")

buleano = Funcion Remplazar (ArrayEntero Lista, ArrayString Nombre, string NombreBuscado, String Nombreremplazo, entero TopeRemplazo)
    entero n=-1
    // buscar si existe: Nombrebuscado en la lista
    Bucle para k desde 0 hasta TopeRemplazo
         Si Nombre(k) = NombreBuscado
              n = k
              Salir de este bucle //para continuar en el siguiente
         Fin si
    Siguiente
    // Si Existe, eliminar y bajar todos los elementos encima de él
    Si n >= 0 luego
         Bucle para k desde n hasta TopeRemplazo-1 // si (n) se haya en el último puesto, no se ejecuta el bucle.
              Lista(k) = Lista(k+1)
              Nombre(k) = nombre(k+1)
         Siguiente
         // el remplazo se coloca en el TopeRemplazo (último elemento donde se permitió buscar).
         //Lista(k) = "" <---- no queda claro que va aquí *
         Nombre(k)= NombreRemplazo
         return TRUE  //señala que el ítem localizado en 'n' fue remplazdo en 'ToopeRemplazo'
    Fin si
Fin funcion


Nota:* Aún así, no me queda claro el propósito del array 'Lista', si tienen valores precisos asignados a cada nombre (algo normal), entonces la función debería incluir  un parámetro más para remplazar en la misma posición y asnignarlo donde he puesto el comentario:   <---- no queda claro que va aquí *

Finalmente aclararte que incluso así, esa función deberían ser dos funciones... para
generar un código más eficiente:

// Busca un elemento Si existe devuelve el índice donde se localiza, si no , devuelve -1
Entero = Funcion Buscar(ArrayString Nombre, String NombreBuscado)
   Bucle para K desde 0 hasta Nombre.Items -1
       Si Nombre(k) = NombreBuscado luego Devolver K  //y salir de la función.
   Siguiente

   Devolver -1 //No encontrado
Fin Funcion

// Elimina un ítem del array (si existe dicho índice en el array).
Buleano = Funcion Eliminar(ArrayEntero Lista, ArrayString Nombre, Entero Indice )
    Si Indice < Lista.Items entonces
        Bucle para k desde Indice hasta Nombre.Items -1
            Nombre(k) = Nombre(k + 1)
            Lista(k) = Lista(k + 1)
        Fin bucle
        Nombre(k) = ""
        Lista(k) = 0
        Devolver TRUE
    Fin si
Fin Funcion


// Remplaza un ítem del array (si existe dicho índice en el array).
Buleano = Funcion Remplazar(ArrayEntero Lista, ArrayString Nombre, Entero Indice, String Remplazo, entero Valor )
    Si Indice < Lista.Items entonces
        Nombre(Indice) = Remplazo
        Lista(Indice) = Valor
     
        Devolver TRUE
    Fin si
Fin Funcion


Igualmente puedes hacer funciones más específicas de remplazo.
En cualquier caso, siempre que puedas separa la tareas, en este caso en dos funciones: 'Buscar' y luego la acción adicional, resulta más útil... que hacer bastante código en una sola función que "busca y remplaza", o "busca y elimina".
-------------------------------------------
También te decía Elektro, que cuando escribas código si pertenece a un lenguaje 'conocido' (específico), usa las etiqeutas GESHI (aparece en el editor, arriba a la derecha), seleccióna el trozo de código y marca el lenguaje al que pertenece en ese combo desplegable, así queda bien coloreado y las líneas numeradas y mucho más nítido...
#3308
¿Venezuela a las puertas de una guerra civil?. Espero que no... espero que alguien cercano a Maduro, haga algo útil por todo el país, y dé fin a un tirano autoproclamado presiedente y demócrata...

...todavía quedaran los cientos de miles (o millones) de trolls que le han seguido la corriente a Chávez y Maduro por sus falsas promesas, y que ahora verían peligrar su...  'su nada', por que nunca fue nada concreto, aspiraciones en un vaso encerrado y tóxico.
#3309
jejjee... muy ocurrente Constance, pero entonces igualmente podría ser "Fuerte", que también cambia una sola letra... y deberíamos sentirlo, por aquellos que, nacidos en otro idioma no tengan la fortuna de ese 'remplazo' de palabras (por ejemplo para los de habla inglesa: Death <> Luck, pero todavía tendrían Death = Heath (brezo)).

Si nos llevamos algo al morir, no tendría sentido venir a este mundo y marcharse de vacío... pero desde luego nada material...
#3310
Pero vamos a ver... al comienzo de los ataques del WannaCry (que al principio aparecía nombrado como WannaCrypt), se dijo que los sistemas infectados eran en su mayoría XP... pero tiempo más tarde, tras analizar las cosas más detenidamente se desdijo, y que la mayoría de equipos infectados eran win7, y que apenas había equipos win-XP infectados...

Además, para hackear el buque deberá tener un sistema de entrada: ¿tiene acceso a internet?. Si no es así, solo se podría hackear In-situ, es decir por parte del personal en el propio buque. Y si tiene internet, ¿está comunicado el control del buque con las comunicaciones al exterior?. Porque perfectamente el buque podría tener el sistema de control del buque con winXP y las comunicaciones por satélite militar en otro subsistema y aparte tener otro sistema (aunque sea el mismo winXP), pero desconectado, para permitir a la tropa el acceso a Internet...

En fin si yo puedo tener en casa 2 o 3 equipos y todos con red, pero no necesariamente todos conectados a la misma red ni interconectados entre sí, no se porqué un buque ha de tenerlo todo en la misma red y todo interconectado... Aunque igualmente podría ser así... pero es el problema de este tipo de noticias basadas en 'suposiciones' (que en este caso se basa The Telegraph).