elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 420
151  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. Las 'brujas de putin'. en: 9 Mayo 2022, 00:21 am
No sé si habreis oído o leído alguna noticia respecto de esto, pero me hizo gracia en su momento, y me decido a poner un par de enlaces, de el 'antes y el desupues...

Esta noticia data de principios de febrero.
Las brujas que apoyan a Rusia y a Putin con hechizos y rituales ocultistas:
https://www.bbc.com/mundo/noticias-internacional-47152090

Esta notica de 5 semanas después, ya en plena vorágine de la invasión.
Un centenar de brujas rusas organiza una ceremonia para apoyar con «hechizos» a Putin
https://www.abc.es/sociedad/abci-centenar-brujas-rusas-organiza-ceremonia-para-apoyar-hechizos-putin-202203152008_noticia.html

Hace unos días, saltó la noticia del Kremlin, de que estaban siendo víctimas de 'brujería', pero no logro encontrar una sola noticia al respecto (en español)...  así que en este caso pongo una en inglés.
Esta noticia es de hace 2 días.
'Brujas y hechiceros': los medios rusos alegans er víctimas de magia negra en Ucrania
https://www.newsweek.com/witchers-sorcerers-russian-media-ukraine-black-magic-claims-1704224
152  Programación / Programación C/C++ / Re: Programa de taquilla de cine. Ayuda porfa en: 8 Mayo 2022, 23:32 pm
Cuando uno empieza puede costar ver las cosas de un modo diferente que como una enorme ensalada... un plato donde se sirve toda la comida.

Mejor si cada plato contiene un solo manjar...
Míralo bajo este prisma:

Tu programa contiene unos datos...
Imagina 5 cines, todos de 10 filas y 15 butacas que proyectan pelis en 3 horarios distintos.
Procede pues crear algún tipo de datos que mantenega ese conjunto...

Al empezar (el aprendiz) no controla las clases, así que ese tipo queda inicialmente descartado. Al empezar el 'tipo de datos de contenedor' reina suele ser el array (y al poco tiempo las estructuras y enumeraciones).
Una forma rápida... sería un array Cines, con dimensiones para 'salas, horarios, filas y butacas'. El orden de tales dimensiones, inicialmente no es tan importante, con la experiencia verás que surge naturalmente.

Los horarios, consíderalos como sesiones: 1,2,3 sean cuales sean sus horarios. Aunque luego ese valor conviene mantenerlo interno, cada sala podría tener su propio horario, y a la hora de imprimir el billete, conviene adjuntar bajo la sesión la hora exacta, asi como el día. Sin embargo la 'sesión' nos permite manejar cómodamente el array.
Una estructura con los datos: sala, sesión (incluye fecha y hora), fila y butaca resulta muy útil, para imprimir cada billete comprado.

Adjunto a cada sala y sesión puede haber asignado un precio por butaca.... o puede ser el mismo precio para todas las salas y sesiones. El precio debe imprimirse con cada billete. Igualmente se asocia con una película (el título de la misma que se proyecta), incluso una duración de la misma, aunque esto último no es obligatorio.

Ahora tu programa podría tener estos métodos:
1 - Crear sesion - (sala, sesión, horario, fecha, precio, pelicula): A la sala para esa sesión puede asignarse un precio por butaca y el título de la película, opcionalmente una duración para la misma y marcar todas las butacas de la sala como libres.
Al inicio del programa un bucle debería invocar la función 'crearSesion', para establecer sus horarios, fecha, etc... a cada sala.
2 - Vender Billete - (sala, sesion, fila, butaca) - Una vez se ha elegido una butaca en una sala y sesión libres, se marca como 'ocupada'. Comprueba además si quedan o no butacas libres. Al datallar esto más abajo se explica.
El array definitivamente puede contener un buleano (o si lo prefieres un int, byte o incluso char), donde 0 es libre y 1 es ocupada. o FALSE y TRUE, sírvete al gusto.
Esta función además de marcar la butaca como vendida, manda imprimir el billete comprado (incluído el precio de la butaca).
3 - Imprimir Billete - (sala sesion, fila, butaca). esta función imprime el billete de una única butaca, indicando la sala, la sesión (+ hora y día), la fila, butaca, precio, titulo y duración.
4 - Butaca ocupada - (sala, sesion, fila butaca) . Esta función preguntaría si la butaca deseada esta libre u ocupada.
5 - Buscar Butacas: (sala, sesion, fila, numbutacas, otrasFilas) . Esta función trata de ver si hay x butacas libres seguidas, en la fila deseada. Si no se encuentran libres esas x butacas libres, y el parámetros 'otrasFilas' es TRUE, está señalando que se busque si se localizan esas butacas libres en otra fila (mirará en el resto de filas mientra no se encuentre en la actual). Devuelve TRUE o FALSE, y por referencia la fila donde se localizan (solo si se encontró).
6 - Comprar billetes (sala, sesión, fila, numButacas). Esta funcion intenta comprar billetes para sala y sesión indicadas, en la fila deseada y la cantidad de butacas solicitadas. Esta función devuelve un buleano, indicando si se pudo comprar o no.
7 - Reservar Asientos. Esta función es la función principal de interacción con el usuario, la que solicita los datos al usuario... y va invocando al resto según se precise...
8 - Cerrar Sesion (sala, sesion). Llegada la hora indicada de inicio de la proyección en la sala (quizás más un margen de por ejemplo 15 minutos), se marca las butacas libres como ocupadas (en este caso no se imprimen billetes vendidos, pero puede imprimirse otro tipo de ticket asociado a la sala). También puede considerarse como sesión cerrada, si se han vendido todas las butacas de la sala, antes del inicio de su proyección.
Puede imprimirse un ticket donde se señale: sala, sesión, butacas vendidas, saldo recaudado.

Básicamente esas son las funciones principales, ahora explicar un poco el 'ritmo' (las dependencias y el flujo entre las funciones)...
0 - Abrir cine. Como se ha indicado más arriba, al empezar el programa, se crean-abren las salas:
Código:
funcion AbrirCine
    Por cada sala
        por cada sesión
            Crear sesion(sala, sesion) //sesion.Indice, sesion.horario, sesion.fecha, sesion.precio, sesion.Pelicula
        siguiente
    siguiente
fin funcion

Ves como a cada sesión ya se asocia una estructura de forma natural?. Un índice, que antes se concebía como el dato 'sesion' es quien lo referencia...
Ya esta abierto el cine, de hecho la función que crea todas las sesiones puede llamarse así ' Abrir salas-cine'.

La función Crear Sesión: pone a FALSE (ó 0), cada butaca de la sala, además establece el número de butacas totales libres, es decir si hay 10 filas y 15 butacas por fila establece: butacasLiberas = (filas * butacasxFila) = 150 (supuesto el mismo número de filas y butacas por fila para cada sala).

Ahora puede Reservar Asientos: Esta es la función princiapal... es como presentarse ante la taquila/ventanilla de ventas y interaccionar con el vendedor. La función tras recabar datos, invocará la función 'buscar butacas'.
Si un usuario elige esa función (reservar asientos), se le piden los datos de elegir sala, sesión, fila y numero de butacas... y se invoca la función 'buscar butacas', si se encuentran libres devuelve TRUE.  Si no se encuentran todas esas butacas se informa al usuario y se le pide si acepta buscarlos en otra filas... si dice que no, se aborta la operación diciéndole que no se encuentran todas esas butacas libres juntas en la fila solicitada... tendrá opción de intentar buscar o bien en otras filas o bien menos butacas en esa fila. Si acepta cambio de filas, se vuelve a intentar la compra pero ahora con el parámetro 'otrasFilas' = TRUE)...  el resultado ya está descrito.
Cuando se encuentran las butacas solicitadas libres, se invoca la función 'comprar billetes'... más abajo se detalla.

La funcion buscar butacas, consulta a la función 'Butaca ocupada', por cada butaca en numbutacas. Solo devuelve TRUE, si todas las butacas buscadas se encuentras libres, si no devuelve false.

La funcion Butaca ocupada, consulta si para la sala y sesión solicitada, se encuentra libre la butaca de la fila solicitada, es decir es una consulta y devuelve TRUE o FALSE (1 o 0).
No hace nada más, es quizás la función más simple pero fundamental de todas. Cuanto más importante es un función, tratar de que sea lo más simple posible, es crucial para el 'buenseguir' del resto de operatoria... no te sientas tentado de integrarla en una función más grande, solo porque ocupe 1-3 líneas de código.

Cuando se invoca la funcion Comprar Billetes (lo cual se hará sólo si 'buscar butacas' dio por resultado TRUE) calcula el importe y solicita el pago. Si se hace el pago total, se devuelve el cambio. En tal caso devuelve TRUE, si no devuelve FALSE. Si no se encuentran los asientos, también devuelve FALSE.
y entonces se invoca por cada butaca ahí, 'vender billete'...

Cuando se invoca la función Vender billete (se invoca desde 'Comprar billetes'), la cuenta de butacas se reduce en 1. Butacaslibres -=1 y comprueba si quedan butacas libres, en caso negativo, cierra la sesión. La venta de 1 billete supone invocar 'imprimir billete'.

Cuando se invoca la función Imprimir Billete, se imprime el billete de una única butaca, indicando la sala, la sesión (+ hora y día), la fila, butaca, precio, titulo y duración. No hace nada más.

Cerrar sesión, es una función que cuando se invoca impide vender más billetes para la sala y sesión actual.
Una sala ha finalizado una película, por tanto libera todas sus butacas, y dicha sesión queda libre para el día seguiente (es decir aumenta en 1 el día, según el mes). Si te complica el calendario y no se exige, elimina la fecha.
Teóricamente al cerrar sesión podría abrirse nueva sesión (invocar la función 'Crear Sesion'), para el día siguiente, esto permite la 'venta anticipada), o puede delegarse esa parte solo para la función 'Crear Sesion'. Cerrar seisón establece butacaslibres = 0, aunque ya tenga ese valor, y puede tener la funcionalidad extra, de imprimir un resumen del uso de la sala, básicamente indicar las butacasa vendidas y el total acumulado por la venta de dichas butacas...

Con toda esta descripción resulta sencillo hacer un pseudocódigo que describa toda la funcionalidad y luego es fácil ir implementando cada función e ir enganchándola (el código de la función que la llama) al resto...

Y eso es todo... Ahora, ¿puedes adaptar tu código para descibir toda esta funcionalidad?. Por simplicidad, puedes evitar las partes que no te hayan solicitado.

153  Informática / Hardware / Re: Disco duro Maxtor en: 8 Mayo 2022, 16:16 pm
Los discos duros Maxtor, son tan fiables como los Seagate. Ahora no salen (con esa marca), porque como bien se ha dicho, la empresa fue absorbida.

Si el disco era del 2007 y ha durado hasta el 2022, pués ha tenido una vida media interesante, es habitual ver discos duros que fallan tan solo tras 3-5 años.

Tiene solución si se lleva a una casa especializada en arreglar discos duros (que no abundan), pués el mecanismo interno es fácil de remplazar... pero su diseño, impide que sean reparados con frecuencia, así sea una tontería nimia lo que se haya dañado (pongamos una resistencia que controla el motor). El gran enemigo de los discos duros, son los golpes mecánicos y si se abren el polvo, por eso no es fácil arreglarlos en casa y requiere de una 'habitación limpia' de partículas suspendidas en el aire.
Disponer de un ambiente así es costoso, lo que impide que hayan proliferado tiendas especialidas en arreglarlos en cada ciudad, además el arreglo de la avería, no siendo costosa no daría beneficios a quien los arreglase, por lo que para ser rentable el precio sería basicamente el coste del tiempo dedicado, 1-2 horas... y al final sale más barato comprar un disco nuevo (al mismo precio de la reparación y de más capacidad).
...en defintiiva, arreglar un disco solo merece el gasto, cuando se han de rescatar datos cuyo valor supera ampliamente el coste de la operación de rescate...
154  Foros Generales / Foro Libre / Re: Lavadoras Bosch con tecnología i-Dos, alguien las ha usado? en: 8 Mayo 2022, 15:59 pm
Como detecta una lavadora la suciedad para dosificar el detergente?
 ¿Cómo lo averiguan?
Hay un sensor de peso (a través de los muelles que suspenden el bombo), hay algún sensor de imagen que procesa tramas de colores...
El tipo de tejido puede determinarse por el grosor, forma de las fibras y haces de fibras.

La suciedad... básicamente la ropa es de colores planos, cuyo brillo y contrase no varía significativamente, así las manchas y la suciedad puede estimarse con aproximación analizando varias fotogramas, especialmente si se va volteando la ropa en el bombo. Posiblemente tenga también algún sensor fuera del espectro, de modo que puedan determinarse la presencia de sustancias orgánicas, con infrarojos o ultravioleta, puede verse cambios en cuanto a la coloración del tejido que no aparecen en el espectro visible (se determina por umbralización, usando máscaras). ...no es muy distinto de la tecnología que 'distingue' rostros humanos, posiblemente tenga también una base de datos de inferencia, aunque esto es suficiente en el departamento de desarrollo de la tecnología, en la lavadora puede luego constar pasivamente en ROM.


realmente funciona?
Una lavadora, básicamente se dedica a dar vueltas al bombo. en un medio líquido a cierta temperatura con detegentes...
Tenga o no más tecnología, la diferencia dudo que sea mucha, a fin de cuentas el proceso de limpieza es químico.
La tecnología para determinar el grado de suciedad, no creo que venga a resolver gran cosas más que un ¿ahorro de detergente?. Al cabo del año, dudo que sea significativo... Y será bienvenido siempre que en efecto la ropa salga limpia.

Mi lavadora suele empeñarse en 'ahorrar agua', el resultado es que sale la ropa algo sucia (cuando lo que contiene son sábanas, mantas y en general si el bombo está lleno hasta el tope), el resultado es que exige poner otra vez la lavadora, con lo que al final en vez de ahorrar agua, supone un gasto extra (de agua, electricidad y detergente). Prefiero un botón que deje al usuario graduar la cantidad de agua, tiempo, temperatura y detergente a gastar en el proceso que uno pueda elegir, incluso aunque disponga de un modo automático, sería adecuaod que disponga también de un modo manual, que será especialmente útil cuando el modo automático, resulte ser chapucero.
155  Foros Generales / Foro Libre / Re: Impresora (robot) de firmas manuales en: 7 Mayo 2022, 18:15 pm
Esto me recuerda, que precisamente en el "caso Medina y Luceño" (para los de fuera de España, 2 tipos que hicieron de intermediarios durante el virus chino, para comprar mascarillas a precio de saldo en Asia y cobrar comisiones millonarias que vendieron a la alcaldía de Madrid).

Justamente una d elas pruebas de que han falsificado datos se constata porque en dos documentos distintos la firma en ambos es idéntica, siendo una firma manuscrita... Jamás eres capaz de hacer a mno dos firmas idénticas. Por la mañana te sale ligeramente distinto a por la noche, hoy que mañana, la semana que viene o el año que viene...

Al 'software' de 'tu impresora' habría que dotarle de algunas funciones de variabilidad aleatoria, para evitar que una firma sea idéntica (cuando se quiera hacer pasar por manuscrita).
156  Informática / Software / Re: AUDACITY en: 7 Mayo 2022, 18:01 pm
El programa es gratuito, no tienes que buscarlo en 'sitios raros'.

La última vez que lo bajé para instalarlo residía en https://sourceforge.net/projects/audacity/

Búscandolo allí (desde hace unos años, muchos proyectos se han ido moviendo por ejemplo a github, o a sus propias webs)... ahora se da el mensaje de que se aloja en su propia web, sigue siendo gratuito (aún).
http://www.audacityteam.org/download/
157  Media / Juegos y Consolas / Re: ¿Creeis que la industria del hardware se detendrá cuando se consiga alcanzar el fotorrealismo?. en: 7 Mayo 2022, 17:48 pm
Creo que hay pelis sci-fi sobre eso.
Si. Justamente, ese es el tema central de una peli de Bruce Willis, no recuerdo ahora como se llama... solo que el virtualismo había llegado a tal nivel, que era un robot, quien físicamente se movía y desplazaba por cada humano.
158  Sistemas Operativos / Windows / Re: ¿Bug W11?Sistema se congela completamente en: 7 Mayo 2022, 17:44 pm
Los síntomas que describías, no cuadran con el problema real hallado...

Al inicio, decías:
Citar
a veces sobretodo cuando estoy cerrando procesos el sistema se congela completamente sin darme opción siquiera a ctrl+alt+supr o algún derivado. Estoy hablando de un freezeo total
Si la corriente suministrada por la fuente de alimentación es insuficiente, o un molex está flojo en su conexión, el resultado es que el equipo se apaga. Sin suministro de energía, no procede que siga funcionando... 

Si ese es el problema real, tus síntomas debieran haber sido:
"...y de repente se apaga el equipo, en cualquier momento..." sin asociarlos a momentos específicos de 'apagar procesos', o escribir un fichero, o cambiar de ventana, etc... Síntomas así, hubieran apuntado directamente al suministro eléctrico en cualquier punto, desde el enchufe... incluso antes, por repentinas caídas de tensión en la red eléctrica.
159  Media / Multimedia / Re: ¿Me ha borrado un virus archivos DLL de vídeo? en: 6 Mayo 2022, 22:19 pm
Parece que tienes un windows XP...

Primero mira si la unidad de almacenamiento tiene errores, en tales caso, algunos ficheros pueden quedar dañados y los síntomas y sucesos son como mencionas.
ejecuta el comando:
chkdsk c: /f/v/r
donde 'c:' es la letra de la unidad dle S.O. Te pedira´confirmar si deseas que se ejecute al reiniciar, porque es la unidad de arranque, no puede analizarse ientras está en uso, le dices que sí y acto seguido reinicia... tardará algunas horas dependiendo del tamaño de la partición.

Luego si tras eso sigue habiendo problemas, sería acorde remplazar los ficheros dañados (del S.O.), para ello ejecuta el comando:
sfc /scannow
Deberás tener el cd de instalación introducido en la unidad, de donde rescatará los ficheros dañados.
Como sea que seguramente el CD de instalación tendrá un SP1, o SP2, convendrá luego aplicar (instalar) el SP3...

Si los problemas persisten, puede que haya actividad vírica, pero los antivirus actuales, ya no se dejan instalar en un windows xp, por lo que no podrás disponer (ni actualizarlos) a la últimas versión de firmas de virus, es decir que tu antivirus no será efectivo para los virus más actuales...

Llegado el caso (el tuyo particular), quizás sea preferible rescatar los ficheros personales, listar las aplicaciones instaladas, etc... y al final formatear y reinstalar todo de nuevo.

No descargues ficheros de cualquier parte, y si no existe otro sitio de donde bajar determinados ficheros, al menos antes de instalarlos, vuélcalos a la página web de virus-total, aunque no sea 100% efectivo, al menos te evitará la mayoría de virus y con ello, disgustos innecsarios.

El programa "dependency walker", no sirve para instalar librerías, tan solo para ver los nombres d elas funciones públicas.

Además, no todas las dll, necesitan ser registradas... muchas basta con depositarlas en su ubicación y ya.

Y por último la librería que intentas localizar de ATI, no tiene porqué residir en la carpeta de windows, perfectamente puede existir en alguna subcarpeta de 'Archivos de programa", sea en una carpeta ATI, o en una subcarpeta de 'Common files', etc...
160  Programación / Java / Re: Algoritmo Voraz en: 6 Mayo 2022, 13:10 pm
El problema se presta a resolverlo exactamente... es decir si se da una superficie exacta y las medidas de cada baldosa, puesto que admite que no se quieren 'romper' baldosas, debe tener solución exacta.

En el caso de no requerir exactitud, el problema se resuelve del siguiente modo:


Código:
baldosa(2) = x superficie
baldosa(1) = y superficie
baldosa(0) = z superficie
//donde baldosa(1) es menor que baldosa(2) y baldosa(0) menor que baldosa(1)

index = 2 // empezamos con la baldosa más grande
superficie = la que sea   // la superficie a cubrir
superficieOcupada = 0

Hacer mientras ((completo=FALSE) e (index >= 0))
    baldosa = baldosa(index)
    Mientras ((superficieOcupada + baldosa) < superficie)
        añadir 1 baldosa del tamaño index
        superficieOcupada += baldosa
    repetir

    Si ((superficieOcupada + baldosa) = superficie)
        añadir 1 baldosa del tamaño index
        completo= TRUE  //salir del bucle
    sino
        index -=1  //abordar con una baldosa más pequeña.
    fin
repetir

si (completo= FALSE)
   añadir 1 baldosa del tamaño 0  //sobrepasara la superficie total en este caso
fin si

 

Esta solución no es capaz de resolver con exactitud el problema, ya que puede darse el caso de que añadiendo la baldosa más pequeña, finalmente ocupe una superficie total mayor que la precisa para cubrir la deseada, pero es la mejor aproximación, la más óptima reduciendo el número de baldosas aunque existe la posibilidad de sobrepasar la superficie buscada, y por tanto cortar...

Al requerir una exactitud, debe considerarse un problema mucho más complejo, ya que cada baldosa tiene una superficie y si la superficie no se da en metros cuadrados, si no en largo x ancho, debe abordarse como dos bucles distintos, donde uno debe resolver el largo y otro resolver el ancho.
Y al solicitar una exactitud con baldosas enteras, exige una búsqueda con vuelta atrás, es decir que una baldosa grande añadida previamente sea retirada en favor de más de una pequeña.

Para dar un pseudocódigo, hace falta resolver la ambigüedad de si la superficie es teórica (dada en m²) o en ancho y largo...
de todos modos ahora mismo tengo que marcharme, pero si das respuesta, a la noche puedo mirarlo...


p.d.: Leyendo por encima tu código, observo que tanto la superficie como el tamaño de las baldosas se introducen por teclado y que además son cuadradas. Que sean cuadradas (y no rectangulares, o peor hexagonales, o culauiqer otro polígono) simplifica el caso...
...en cambio que se metan manualmente las medidas no garantiza que haya solución. Por ejemplo:
Si se introduce una superfice de 100cm x 100cm y 2 baldosas de 60x60 y 30x30, lo más aproximado será 90x90 y pasandose será 120x120.
El problema es similar a la devolución en monedas del cambio de una compra, solo que en el caso de las monedas (en su diseño), se ha previsto cubrir cualquier solución de cambio, pués suele haber monedas de 1 y multiplos de modo que es posible satisfacer siempre una solución exacta de devolución (salvo que se limite la cantidad de monedas existentes).

Un detalle que no ha sido precisado es si basta con conocer las baldosas que completan un área determinado, o si además se precisa saber la disposición de las baldosas sobre la superficie (esto último lo hac emás complejo). considera por ejemplo el juego del 'tangram', las piezas que lo componen rellenan la superficie que dan la spiezas, pero otro problema es emplazarlas para ocupar la superficie del puzzle', s decir la ubicación precisa de cada pieza respecto de la otra. No me parece haber leído en la descripción del problema si debe calcularse esto último o si basta con logras encontrar baldosas cuya suma de superficies equivalgan a la superfice que se desea rellenar. Nota que si cierto aspecto no se detalla en la descripción, no puede exigirse después como requisito (jamás a posteriori, para eso se da una especificación previa a la que hay que ceñirse).

Cuando te reportes (si te reportas y haces las preguntas precisas) se podrá avanzar en la solución, si todavía tienes lagunas...
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 420
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines