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

#1141
Si emites/imprimes el valor cuando existe, no sería preciso un tercer array, salvo que se pida expresamente en el enunciado del 'problema'.

En cualquier caso, el sistema usado es subóptimo, aunque muy válido para pequeños arrays... Consume un tiempo n². Luego, cuando 'n' sea un número muy grande, te puedes imaginar lo lento que sería...

Algo muy óptimo sería ordenar ambos arrays (si se sabe de entrada que alguno está ordenado, puede omitirse para el mismo dicha operación), obviamente con un algoritmo rápido como quickSort (recurrir a uno lento como uno de burbuja no optimiza nada).
Una vez ordenados un simple bucle (lineal en 'n'), es suficiente para ir comparando...

La estrategia es entonces tomar uno de los arrays (sugiero tomar aquel cuyo último elemento sea menor), como referencia y tomar el ítem (del ciclo) actual, e ir indagando en el otro bucle mientras sea menor o igual al valor actual en el array de referencia...



// Se supone que ya se han ordenado los arrays al llegar a este punto, que quedan tal como se muestran:
Array1: 1,2,3,4,5
Array2: 0,0,1,2,4

// Bucle lineal.
Bucle para k desde 0 a array.lenght -1
  v = Array1(k)
  Hacer mientras (v<= Array2(n) )
      si v=(array2(n)) imprimir "El ítem de valor " + v + " está presente en ambos arrays."
      n +=1
      Si (n >= array2.lenght) salirdelafuncion
   Repetir
Fin bucle


OJO: No confundir que el bucle 'do' dentro del bucle 'for', es un bucle anidado, pués no lo es, son colineales... si se alcanza el final del array2, aún cuando se esté dentro del primer ítem del bucle 'for' la función acaba, cosa que no sucedería nunca con 2 bucles anidados.
Es decir el tiempo final será 'n' + 'm', que salvo para casos muy pequeños de 'n' y 'm' siempre será enromeneteme más óptimo que 'n'*'m' (n², si m=n).
#1142
No se ha construído nada (al menos de momento).

El vídeo que se muestra, tan solo se ve una escena caótica de unas 40-50 excavadoras, que de seguir así, al cabo de unas 6 horas poco más o menos se estorbarán entre sí... por lo que asumo que es un paripé.

Si de verdad quieren operar en el terreno y hacerlo rápido, 3-4 bulldozers de cierto tamaño, harían todo ese desmonte de tierras con más eficacia y eficientemente, y bastaría una sola persona para controlar los a todos... a los otros 50, será complejo darles órdenes si previamente los 4-8 que les rodean no tienen las instrucciones pertinentes...

Pero bueno, dejemos que pasen unos dias y esperemos que nos muestren otro vídeo (del mismo sitio y en tiempo real, sería feo que fueran vídeos grabados de alguna otra construcción y que se mostrara como si fueran de la supuesta construcción de un hospital)...

Claro que a lo mejor, es solo un hospital de campaña, es decir una explanada con tiendas de campaña y algunos generadores de energía, etc... es decir las infraestructuras mínimas, un diseño militar a fin de cuentas. ...claro que para esto, no hace falta venderlo como algo 'extraordinario'...
#1143
Cita de: El_Andaluz en 23 Enero 2020, 22:36 PM
Existe algún programa ... para PC para hacer fotos a la documentación tipo escaneada y convertir la imagen luego en pdf aunque me haga lo primero tengo bastante.
Típicamente se usa un scanner y luego tratas la imagen con algún programa de retoque las guardas como jpg (por lo común), y finalmente se comprime empaqueta en rar o zip y se cambia la extensión a *.cbr (parar *.rar) o *.cbz (para *.zip) ó *.cb7 (para *.7z), etc... después se puede visdualizar con cualquier visor de cómics, hay multitud de programas, tanto para PC, como para móviles...
Es importante que nombres adecuadamente las imágenes, para que luego el programa (el visor de cómics) las visualice en el orden correcto.

También podrías pasarlo a pdf, pero resulta mucho más cómodo dejarlos empaquetados con un programa típico que uses en tu pc, para comprimir (a futuro será muy sencillo editarlas, añadir, eliminar, extraer).
Nota que como son imágenes jpg, y si se guardaron adecuadamente, comprimirlas no reducirá significativamente su tamaño (en caso de hacerlo), pero en cambio ralentizará su acceso, pues exige descomprimir, en vez de desempaquetar...

Si no tienes escáner, a lo pobre, puedes sacar fotos con el móvil y pasarlas luego al PC...
#1144
La eliminación del último nodo, suele ser la eliminación más sencilla (detrás de eliminar el último cuando además es el único).

Piensa en forma manual e imagina que fuera una cadena (si, con eslabones metálicos), cada vez que quieras quitar un eslabón piensa cuantas manos necesitas para agarrar la parte que interesa... considera todos los pasos que hay que hacer y el orden correcto de los mismos.

Para eliminar un nodo en cualquier posición, debes posicionarte en la posición previa, para establecer su nodo siguiente a nulo... si además está intermedio (antes establecer la referencia siguiente de él a nulo), se requiere tener acceso al siguiente a eliminar... para luego poder volver a conectar la 'cadena rota' (ha quedado rota por culpa de él) por el nodo eliminado...

En la lista enlazada, hay que pensar además si está doble o simplemente enlazada. El caso más sencillo es empezar con listas simplemente enlazadas, que e slo que se asume mirando tu código...

* Nota: Aquí se supone a Raiz como un nodo oculto, que no contabiliza en la lista, cuando no conviene que sea el caso, puede considerarse como nulo y entenderse raiz.siguiente como el nodo raiz.
* Nota: Que si no se mantiene una cuenta de los nodos que existen en la lista, cambia ligeramente, pués no hay forma de saber a priori si un nodo es el último, salvo llegando a él desde la raíz, o un 'nodo actual', es decir un sobrecoste en eficiencia a causa del recorrido, que siempre deberá hacerse y que por tanto es desconocido.
funcion EliminarNodo(x)
   Si numNodos = 0 salir   // la lista está vacía...

   Si (x = numNodos) //equivale a eliminar el último
       Si (x = 0)  // además es el único
              raiz.Siguiente = nulo
       sino
           p = raiz
           n = p.siguiente
           Hacer  mientras (n.siguiente <> Nulo)
               p = n
               n = n.siguiente      
           repetir
           n = nulo
           p.siguiente = nulo
       fin si
   Sino   // en estos casos, al eliminar uno exige conectar los que vienen detrás con el previo.
       Si (x = 0) // elimina el primero, pero hay más detrás
           Si numNodos = 1
               raiz.siguiente = nulo  // lista vacía
           SiNo
               n = raiz.siguiente
               raiz.siguiente = n.siguiente  // el nodo en raíz será el que antes era el 2º.
               n.siguiente = nulo // eliminar la referencia a la que apunta el que se pretende eliminar
               n = nulo   // se elimina el que antes era el 1º
           fin si    
       sino
           y = 0
           n = raiz.siguiente
           hacer mientras (y < x)
                y +=1
                p = n   // mantener el previo (agarrar con una 'mano' el eslabón previo al que se desea eliminar)
                n = n.siguiente
           siguiente
           //(a estas alturas) sabemos que no es el último, por eso esto no
dará error
           n = n.siguiente  // agarrar con 'otra mano' al eslabón siguiente al que se quiere eliminar
           p.siguiente.siguiente = nulo  // eliminar el enlace del eliminado al siguiente
           p.siguiente = nulo // eliminar el deseado
           p.siguiente = n  // atar la cadena por los dos eslabones sueltos
       fin si
   fin si

   numNodos -= 1 //la cuenta hay que actualizarla adecuadamente siempre que se eliminen o añadan nodos.
fin funcion


* Nota: Que se puede optimizar, pero es más sencillo entender cuando no hay 'abreviaciones y omisiones por optimización', cuando el código es canónico, es más fácil seguir los pasos dados...

* Nota: Que aunque la función elimina por índicie, si se precisa puede ocultarse (dicha función, haciéndola privada) y crearse exprofeso funciones para eliminar el último nodo, etc...

// Como se ve, simplemente se llama al último, por el índice que tiene.
funcion EliminarUltimo
   EliminarNodo(numNodos-1)
Fin Funcion

Funcion EliminarPrimero
   EliminarNodo(0)
Fin Funcion

...


* Nota: También como la simple adicción a la lista de un valor que mantenga la 'cantidad' total de nodos (aquí llamada numNodos), simplifica bastante las cosas y mantener actualizado dicho valor no es complicado.
Cuando:
--- Se crea la lista: numNodos = 0
--- Se añade un nodo: numNodos += 1
--- Se elimina un nodo: numNodos -= 1
--- Se vacía/elimina toda la lista: numNodos = 0
Igualmente resulta útil por tanto proveer una propiedad de lectura de la cantidad de nodos...

* Nota: Por último que también suele ser muy útil disponer de un nodo 'Actual' (comporta nodo e índice 'NodoActual' e 'IndiceActual'), que facilita el acceso, así si el que se quiere eliminar está antes del actual se accede desde raíz, si está después del actual, a través del actual... lo mismo al añadir cuando puede elegirse una posición arbitraria. Actual es aún más útil cuando la lista es doblemente enlazada, pues ya hay 4 puntos entre los que elegir iniciar el acceso (desde el primero --->, desde el actual <---, desde el actual --->, desde el último <---- ). Por lo mismo, que la 'cantidad' de nodos, se hace publico como propiedad de lectura, en tal caso también interesa tener público 'Actual', que en este caso puede además ser también de escritura. Así el acceso a un nodo de la lista es más eficiente (casi siempre) al coste de añadir código extra para mantener con vigencia el nodo actual y su índice (dicho índice puede variar según la posición que tenga cuando se añadan o eliminen nodos anteriores a dicha posición. El coste más caro de eliminar o añadir es cuando se elimina precisamente el actual, pero se contrarresta con el coste de acceso al mismo, que es tal caso es 0, por ser conocido...

Para pasarlo a código, te tocará leerlo y entenderlo... algo de esfuerzo por tu parte tendrás que poner, ¿no?.
#1145
Están siendo atacados por lobbys audiovisuales de Hollywod (presumiblemente).

Explicaciones de lo que está sucediendo en el foro de emule:
-https://forum.emule-project.net/index.php?showtopic=152519&view=findpost&p=1102753

A mi me conecta a estos servidores, pero la descarga me van muy lenta.
PEERATEs.NET --> ed2k://|server|62.210.28.77|7111|/
Peerbooter ------> ed2k://|server|212.83.184.152|7111|/
WEB -------------> ed2k://|server|183.136.232.234|4244|/
Alington ---------> ed2k://|server|185.209.57.98|62347|/

Recuerda tener activada y conectada la red KAD....
#1146
...y si todo fuera un 'cuento chino' (nunca mejor dicho)... propongo un par de escenarios posibles (al margen por supuesto, del oficial que ofrece el gobierno chino, y que todos aceptan sin rechistar, y para los que ya hay amplia info en la red y por tanto prefiero omitir, para dejar espacio a la improbable (pero no imposible) alternativa conspiranoica  :laugh: :laugh: :laugh:):

- Deshacerse de 'indeseables' a criterio del gobierno. Se les lleva al hospital, se les hace una analítica, 'et-voilá', le dicen que tiene el virus, luego lo envenenan de cualquier manera y con la excusa del riesgo de contagio lo incineran y nadie puede decir ni 'mu', al respecto. Pos supuesto los médicos serán reales, pero quizás quienes estén a un lado del asunto, no lo sean o estén bajo coacción y amenazas...

- Un experimento sociológico (a lo bestia, que es la forma que tiene el gobierno chino de hacer las cosas), para experimentar y estudiar la psicología de las masas bajo determinadas condiciones críticas...
#1147
Dice el dicho: "...el movimiento se demuestra andando..."
#1148
Programación C/C++ / Re: Algorismo Sudoku
19 Enero 2020, 02:00 AM
No hace falta bscar en google, basta con buscar en el foro...

Hará como dos años o así, alguien preguntaba por lo mismo (pero al menos traía algo de código), el pseudocódigo que puse resuleve todo lo referente a la creación del sudoku, queda a tu esfuerzo pasarlo al lenguaje de tu interés así como facilitar toda la operatoria de la interfaz de usuario:
https://foro.elhacker.net/java/codigo_para_crear_sudokus-t472924.0.html
#1149
El problema básico, no es tanto que sea eléctrico o a gas... si no el volumen de agua que puede acumular el calentador.

En uno eléctrico: En éstos, el agua caliente dura, lo que tarde en vaciarse el depósito, el cual lógicamente depende del volumen total que acumula el depósito y el caudal del grifo, ambas cosas determinan el tiempo lo que tarde en vaciarse.
El tiempo que tarda en calentarse, depende también del volumen y d ela potencia d ela resitencia. A menudo viene fijado, pero si se desmonta se observa que la potencia es regulable...

El calentador de gas: Su principal ventaja es que el depósito es básicamente inexistente, se limita al agua que quepa en el serpentín. Y teóricamente mientras esté encenddido el gas debería salir agua caliente. Si no sucede cabe alguna explicación.
Probablemente tenga pérdidas de calor debido a la distancia entre el calentador y el grifo final y dado que (creo recordar/asumo que tu vivienda era vieja), las tuberías de agua no van protegidas térmicamente, por lo que hay una buena pérdida de calor en toda esa distancia.

La ventaja del gas, es la inmediatez.. no dependes de horarios, llegas a casa lo encendes y en lo que tardas en desvestirte y meterte en la ducha ya tienes agua caliente. El eléctrico puede necesitar hasta media hora (o más, ya dije de qué depende), con horarios fijos uno podría conectarlo con un programador horario, de modo que 30 minutos antes de que llegues a casa se ponga en marcha, etc...

Probablemente en tu caso, dado las tuberías e instalación viejas, la mejor opción sería añadir un segundo calentador, dedicado en exclusiva para el baño (lavabo y ducha/bañera), así lo montas lo más cerca posible del baño, así limitas las fugas de calor por donde discurre la tuberia... a su vez habría entonces que desconectar del otro calentador (dedicado ahora solo para la cocina), las tuberías del baño.

Si sucede que ahora mismo el calentador estuviera muy cerca del baño, tal que pueda asumirse que la périda de calor por la distancia y falta de protección térmica es mínima, entonces cabría suponer que el aparato no esté funcionando de forma adecuada. Cabe la posibilidad de que tenga algún atasque del agua caliente (incluso de gas, pero el atasque del agua e slo más frecuente) y entre más agua fría al caudal que agua caliente (que sería un hilillo), esto puede verificarse a la salida del calentador... poniendo un termómetro se podrá ver si la temperatura del agua es o no la esperada. Igualmente si la instalación dispone de un grifo conectado directamente al calentador (ahí mismo), puede verse si el caudal del agua caliente es la adecuada y si alcanza la temperatura que toca.

El mal de los calentadores (y tuberías de agua en general), en las zonas costeras es el salitre que se deposita y atasca las tuberías por culpa del agua salada que circula por ella... reduciendo el caudal poco a poco y necesitando cada x años, verse obligados a desatascar e incluso remplazar aparatos porque la vida es más corta en estas zonas para todos estos aparatos.

Si te decides por poner un calentador eléctrico, y te quejas de ese problema (del tiempo) aconsejo tener un tanque de unos 120 litros... (según quien 60 litros es suficiente para que una persona se duche (son unos 5-6 cubos de agua), peor claro eso siempre es algo que depende de costumbres. Yo acostumbro a cerrar el grifo mientras me enjabono y froto, eso hace que te dure un poco más).

El de gas suele decirse que sale más económico, pero el precio siempre es variable así que lo que un día es cierto, al cabo de 2-5 años, puede no serlo ya.
Si es 'gas ciudad' pués más cómodo que si es gas de bombonas... que tienes que esta rpendiente cuando se acaba  de traer o llamar para que te trraigan ota, o ir a comprarla uno mismo... en este caso habría que contar como coste del agua caliente, el gasto en combustible para ir a comprarla (la distribución por casas por parte del distribuidor suele ser gratuita, pués es el modo de 'fidelizar' al cliente, el ofrecerle esa comodidad).

En cualquier caso, una instalación de gas, exige ciertos requisitos, como tener ciertas rejillas de ventilación que dén al exterior (superior e inferior) y por lo general exige una certificación de que es apto para ser colocado ahí (es decir si hablamos de una instalación adicional). el gas ciudad además exige llevar la tubería de gas desde su ubicación actual hasta el baño (si queda lejos), e igualmente tiene su normativa...

Como siempre, pregunta precios para la instalación de cada caso.


p.d.: No había leído esto:

CitarGiro la llave de agua caliente -> Sale agua congelada -> se vuelve caliente 1 minuto despues -> el calor se incrementa hasta que el agua quema literalmente, así que tengo que abrir la llave de agua fria (muy poquito) para equilibrar la temperatura -> el agua se pone fria del todo al cabo de un rato -> ya no se vuelve a poner caliente a menos que cierre las llaves y vuelva a intentar equilibrar la temperatura.
(o el mismo procedimiento pero girando primero la llave de agua fria para luego equilibrar la temperatura con la llave de agua caliente)
Esto suele deberse al problema de manipular adecuadamente el caudal de cada grifo... un pequeño giro, por muy pequeño que sea, modifica el caudal tan drásticamente que resulta muy complicado equilibrarlo...
La solución a este problema es un pequeño depósito intermedio, donde se mezclan ambos caudales y da más capacidad de regulación en menos tiempo.
Esto que comentas solía pasar en la cada de mi madre, lo solucioné a la perfección instalando un set de dicha con termostato, manejado  con un monomando, algo ocmo esto:
-https://www.leroymerlin.es/fp/81883756/columna-hidromasaje-monomando-gris-plata.banos_accesorios-ducha_columnas-hidromasaje solo 75neuros

Si la instalación actual, no tiene esos problemas de pérdidas de calor y se ve el calentador en buen estado sin atasques, esta sería la solución adecuada, e n vez de gastarte dinero en un remplazo que posiblemente no solucione el problema. Date cuenta que yo solo he buscado algo para que te hagas una idea, pero los hay de todo tipo de precios... En el caso del ejemplo que te he puesto dice que tienes hasta 100 días para devolverlo (no aclara si sin usarlo o no), asumo que usado... con lo que te da la posibilidad de probarlo y ver si en efecto soluciona tu problema.
#1150
CitarJennifer R. Rider, autora del estudio,
Digamos aquel tópico de: "Mujer tenía que ser",  :laugh: :laugh: :laugh: :laugh:

Si el estudio resuelve que minimiza ese tipo de cáncer pués vale, pero me pregunto si ha constatado el aumento de otros tipos de cáncer o de padecer alguna otra enfermedad.

El semen es prioritario en el cuerpo, agotada las reservas, el cuerpo se empeña en reponer las reservas retirándolo de otras partes del cuerpo las sustancias que precisa, lo que un uso continuado puede suponer eliminar las reservas de minerales y vitaminas (ciertos oligoelementos, en resumen), que no precisamente abundan en el cuerpo pero que son muy necesarios para una buena salud...

En fin, yo lo que digo es que si uno tiene pensado convertirse en un onanista, haga caso del consejo de Superratón:
"...Y no olviden amigos, supervitaminarse y supermineralizarse"