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

#1991
Citar¿Entonces para que pagar mas y atarse mas tiempo si al final el 100% de los resultados dependen solo de mi esfuerzo personal?...
Esa es la clave.

La universidad, hoy día se ha convertido, tan solo en una garantía de trabajo para los profesores. ...para los alumnos, es una pesadilla.

La tarea de un profesor nunca debiera ser otra que la de enseñar, sino es el caso, ni procede el título de profesor, ni tampoco su sueldo. Si los profesores simplemente se vana  remitir a: "En la págna x de la universidad están colgados los ejercicios de esta semana, se evalúan el lunes, así que poneros las pilas el fin de semana."
Entonces sería tremenedamente más barato e igual de vñalido para los alumos si todo eso, lo elbaorara un único profesor/persona para todas las universidades del páis, es decir bastaría un pequeño equipo de 20 personas para todo un país... pués al fin y al cabo, lo de un año vale para el siguiente con pocos cambios...
Y sería muy ahorrativo para los alumnos y el gobienro al ahorrarse miles de sueldos en profesores extravagos.

Y no, no creas que esto de la Universidad se aplica ahora disitno a décadas atrás... en mis tiempos, era igual, los profesores no enseñaban, solo mandaban tareas (algo que puede automatizarse), y a lo sumo exámenes de memorización, porque eso es para lo que servían tales exámenes para verificar la capacidad de tu memoria, no para demostrar los conocimientos adquiridos... de esto se salvaba casi siempre las matemáticas, donde en efecto siempre ha habido que aplicar los conocimientos.

Sobre si es una pérdida de tiempo... básicamente si. Sobretodo porque tiene unos horarios y unas fechas y materias que muchas veces no se requieren para el futuri profesional que elegiste. También porque el ritmo, lo marca el profesor, no el alumno... los que tienes dificultades, para ellos el ritmo va rápido. Para los espabilados el ritmo es cansinamente lento.
Decir que todo el mundo tiene que aprender sí o sí una carrera en 4-5 años, es una solemne tontería. Cada niño aprende a andar cuando aprende, no tiene un plazo fijo nadie para ello, del mismo modo aprender una materia, cada cual requiere su ritmo, resulta estúpido pretender que todo el mundo necesite exactamente el mismo tiempo.

En tiempos pasados parcelar los estudios según el alumno, era algo imposible. Pero hoy día con la comunicación a distancia en tiempo real, uno podría perfectamente estudiar en una universidad japonesa (por ejemplo), y en cambio vivir en una isla del Caribe... Y si uno tuviere un trabajo de 8 a 17, podría estudiar perfectamente en un horario nocturno, o viceversa... precisamente porque los profesores podrían grabarse en su propia casa dando la clase del día, y subirlo a la red, y el alumno, visionarlo cuando encuentre el momento que le vaya bien.

Por añadidura, la presencia en la propia universidad hoy día resulta superflua, tanto el alumno como el profesor pueden estar en su casa o de vacaciones en una ciudad cualquiera dle mundo, siempre y cuando tenga disponible conexión a internet. ¿Cuánto tiempo y cuánto dinero pierden un estudiante (o un profesor), en ir y venir cada día de su casa a la univesidad y vuelta a su casa????... Eso también es tiempo perdido, consumo perdido y desde el momento que no vayas y vengas andando o en bicileta, etc.. contibuyes a la contaminación, al usar vehículso de combustión interna.

Parece mentira que tengamos tecnología suficiente para determinadas cosas y siempre se insista en seguir viviendo (en este caso estudiando), de forma cavernícola... en realidad, desde mediados de los 90, se preveía que antes de 10 años las clases presenciales habrían llegado a su fin... y todos esos caso que a veces salen en las noticias sobre niños que viven aislados en invierno, que no puedne acudir a la escuela porque los accesos quedan impracticables o porque el autobús escolar no es rentable para 1-3 alumnos, serían cosa del pasado, cosas innecesarias...

"Heidi y Pedrito", podrían perfectamente sacarse su título universitarios desde las montañas, después de recoger el rebaño que sacaron a pastorear... Esa es la fuerza desaprovechada de internet.

Sobran profesores, sobran universidade, sobran autobuses escolares, sobran libros... pero nuevamente son torres que se resisten a caer...
#1992
Si lo usas para imágenes, es la relacion de aspecto...

En inglés te quedaría: "GetAspectRatio"

Y más que la proporción darLa  en pocentaje, yo la daría en unidades:
640/480= 1'33
1024/768 = 1'33
Que como se ve, corresponde a 4/3
Es decir si incluso tienes que hacer algo más complejo y tratar con enumeraciones, considera algo como:

Enumeracion RelacionesDeAspecto
    RELACION_ASPECTO_4_3
    RELACION_ASPECTO_5_4
    RELACION_ASPECTO_10_9
    RELACION_ASPECTO_11_8
    RELACION_ASPECTO_16_10
    ...etc...
Fin enumeracion
#1993
Cita de: WHK en 30 Noviembre 2018, 21:33 PM
La realidad: Pantallazo azul en los lentes justo cuando te están disparando.
Exacto, el pantallazo azul de la muerte, nunca mejor dicho que en este caso.  :laugh: :laugh: :laugh:
#1994
En Venezuela quizás si, resulte aún rentable... básicamente en cualquier sitio, donde el coste energético, resulte prácticamente 0 (para el que mina).
#1995
Que irónico.
Un país que se ha pasado constantemente los derechos de autor de muchas películas de USA de las que han hecho refrito, por los eggs, ahora le preocupa que sus ciudadanos igualmente se pasen por sus eggs, sus derechos.
#1996
Java / Re: Listas simples (Insertar Buscar)
29 Noviembre 2018, 16:41 PM
CitarBuscar y Eliminar, el elemento buscado
Insertar elemento en la posición que indique el usuario.
Te ilustraré un poco sobre el tema...

CitarHe leido varios post, pero no he encontrado la solución.
Más bien, deberías decir que o bien no has sabido buscar o bien no lo has entendido. No te atrevas a decir que soluciones no existen... son temas demasiado recurrentes.

CitarEsto necesito hacerlo en listas simples y Doblemente enlazadas en JAVA
Yo te explico en pseudocódigo, queda a tu esfuerzo pasarlo a Java. En el foro, se ofrece ayuda, no se regalan trabajos hechos, el interesado tiene que poner de su parte...


Vamos con los temas:
Citar
public boolean BuscarElemento (int elemento){
   Nodo temporal=Inicio;
   while (temporal!=null&& temporal.Dato!=elemento)
   {
   temporal=temporal.Sig;
   }
   return temporal!=null;
   }
Aquí tu primer error es devolver un buleano.
La función que debe devolver un boleano sería: "ExisteElemento"
...pero no 'BuscarElemento". Buscar debe devolver un nodo, o bien algún dato contenido (se supone que distinto al buscado, porque paraeso es mejor llamar a la función "buleano = Funcion Existe(int dato) ..."

Así, mejor aún una función interna de búsqueda siempre debiera devolver el nodo, la función externa, invocaría a esa interna y devolverá el dato que interese, incluso el índice que ocupa en la lista.
Una cosa más sobre los nombres d elas funciones... Resulta cansino que las llames: BuscarElemento, Guardarelemento, AñadirElemento ... Sobra la palabra elemento.

No estas operando con cebollas, siempre son nodos, luego es redundante, señalar, nodo, elemento, dato. Basta el verbo...

La búsqueda en una lista simplemente enlazada, debe comenzar lógicamente en la raíz, o en el primero...
Cuando se usa una ráiz es un nodo oculto, con lo que una lista aparentemente vacía siempre contiene un nodo oculto y resulta muy útil para delimitar bucles. No obstante no lo usaré en el código, para no forzarte a modificar todo tu código ya hecho.

Nodo = funcion Buscar(int Dato)
   nodo n
   Si (s_Nodos > 0)  ' s_nodos es un contador de los nodos que contiene la lista...  cuando se añade uno, se suma uno, cuando se elimina 1 , se resta uno...
       n= primero
       Hacer mientras ((n.Dato <> dato) y (n.Siguiente <> null))
           n = n.siguiente
       Siguiente
       Si n.Dato = dato
           devolver n  // hacemos esta comprobación, porque el bucle también acaba al llega al final de la lista.
       sino
           devolver null
       fin si
   Sino
       devolver null
   Fin si
Fin funcion


Esa, si quieres puede ser la función privada, y crear una pública:
Buleano = Funcion Existe(int Dato)
   Si Buscar(dato) <> null
       devolver True
   sino
       devolver false
   fin si
fin funcion


Eliminar el elemento:
Una vez somos capaces de buscar y encontrar un nodo, estaremos en condiciones de poder eliminarlo.

buleano = Funcion Eliminar(int Dato)
   nodo n

   n = Buscar(dato)
   Si (n<> null)
       Si n.siguiente = null  // si el que queremos eliminar es el último
           n= null  // borramos el nodo.
       Sino   // no es el último, antes de eliminarlo, tenemos que 'atar' el anterior con el siguiente
               // pero esto sólo podrmeos hacerlo en una lista simple, si tenemos acceso al nodo previo... como es justo el anterior al buscado, no nos vale... exige modificar la función o crear otra...
             // ????. HOP, que pasó...? lee bajo el código de la función  que luego reharemos esta función... con el código que aquí falta.
       fin si
   Sino
       devolver False  // no se encontró, no hay nada que eliminar...
   Fin si
Fin funcion


Una solución para poder eliminar el nodo de una lista simplemente enlazada, sería modificar la función Buscar, para que devuelva de alguna manera también el nodo previo...
Esta función busca un nodo, y si lo encuentra por referencia devuelve el previo. Nota que si el buscado es el primero, el previo sería null.
nodo = Funcion Buscar(int Dato, nodo Anterior)
   nodo n

   Anterior = n   //esto es, lo hace null, por si a la entrada ya contuviera un nodo.
   Si (s_Nodos=0)  // s_nodos es un contador de los nodos que contiene la lista...  cuando se añade uno, se suma uno, cuando se elimina 1, se resta uno...  
       //devolver null
   Sino
       n = primero    
       // Nota que ahora le preguntamos por 1, esto nos simplifica el bucle 'while'...
       Si (s_Nodos > 1)                    
           Hacer
               si n.Dato = dato
                   devolver n  // 'Anterior' se devuelve por referencia con el valor que YA contiene
               si no
                   Anterior = n
                   n = n.siguiente
               fin si
           Siguiente mientras (n.Siguiente <> null)
           //devolver null
       Sino                    
           si n.Dato = dato
               devolver n
           //Sino
               //devolver null
           fin si
       Fin si
   Fin si
   // basta una sola línea para devolver null... si se localiza, se devuelve desde donde se localiza, si no null, desde aquí.  se dejan comentadas donde irían en cada caso
   devolver null
Fin funcion


Con esta función AHORA SI podemos eliminar un nodo dentro de unalista SIMPLEmente enlazada, porque AHORA SI podemos atar de forma sencilla y fácil el anterior y posterior al que se desea eliminar.

Rehacemos la función Eliminar que antes dejamos a medio terminar...
buleano = Funcion Eliminar(int Dato)
   nodo n, p    // nodo a eliminar y nodo previo

   n = Buscar(dato, p)
   Si (n<> null)
       Si n.siguiente = null  // si el que queremos eliminar es el último
           n= null  // borramos el nodo.
       Sino   // no es el último, antes de eliminarlo, tenemos que 'atar' el anterior con el siguiente
              p.siguiente = n.siguiente
              n.siguiente = null   // tiene una referencia a siguiente si no se eliminan todas las referencias de un objeto aún reside en memoria (ocupando espacio aunque no tengamos acceso al objeto. el nodo 'n' quedaría oculto en memoria si esta línea no apareciera).
              n = null
       fin si
       devolver true
   Sino
       devolver False  // no se encontró, no hay nada que eliminar...
   Fin si
Fin funcion


La función Insertar, igualmente es dependiente de la función buscar... Y como ahora tenemos una función 'buscar' OPTIMA, podrmeos además insertar un eleemnto delante o detrás del deseado.

buleano = Funcion Insertar(int DatoInsertar, int DatoReferencia, buleano Detras)
   nodo b, p, n    // nodo a buscar, nodo previo y nodo nuevo

   b = Buscar(DatoReferencia, p)
   Si (b<> null)
       n.Dato = DatoInsertar
       Si detras = False   // es decir se pide colocar delante del nodo de referencia. Exige comprobar que 'b' no sea el primero.
           Si (p <> null)  // si previo es nulo, es porque 'b' sería el primero...
               p.Sigueinte = n
               n.Siguiente = b  
           Sino
               n.Siguiente = b
               primero = n
           Fin si
       Sino   // se pide colocar detrás del nodo de referencia, hay que comprobar que no sea el último.
           Si (b.Siguiente <> null)
               p = b.Siguiente
               b.siguiente = n
               n.Siguiente = p  
           Sino
               b.siguiente = n
               // Ultimo = n
           Fin si
       Fin si
       devolver TRUE  // el nodo de referencia fue encontrado y el nuevo dato insertado donde se pedía...    
   sino
       devolver FALSE  // no se encontró el nodo deseado para insertarlo. Cabría esperar que si no se localiza se añada al final. Eso a tu esfuerzo y consideración...
   fin si
fin funcion


Llevando la cuenta de nodos que contiene la lista, puede además especificarse una inserción en una posición concreta... pero queda a tu esfuerzo, solo nota que al buscar... ya no buscas verificando si el nodo es null, si no, si no se alcanza la cantidad total de ítems, y en cada ciclo se suma uno.

En una lista doblemente enlazada, es más sencillo. La búsqueda vale como la primera (función que puse de búsqueda). No se precisa devolver previo, porque al nodo encontrado, se le puede reclamar el previo no solo el siguiente.
Lo importante con la lista DOBLEmente enlazada es que al eliminar un nodo, primero hay que atar sus dobles referencias, y luego eliminar ambas referencias del nodo a eliminar... antes de eliminar el propio nodo.

Sea 'n' el nodo a eliminar ya localizado en una lista doblemente enlazada, que ni es el primero, ni el último...

   nodo n

  ..... operaciones previas de búsqueda, etc...

   n.previo.siguiente = n.siguiente   // ata al previo el siguiente, ya que 'él dejará de existir,
                    // es necesario, para que la lista siga conectada con siguiente, siguiente, siguiente...
   n.siguiente.previo = n.previo // ata al siguiente con el previo, para que
                   // se pueda seguir recoriendo hacia atrás con x.previo.previo.previo...

   // y se autoelimina, pero primero se 'desata' de sus referencias (de sus vecinos).
   n.siguiente = null  
   n.anterior = null
   n = null  / y finalmente 'se muere' él...
#1997
Yo guardo todavía algnas pesetas, pero no tantas como para pagar la consola.
Entre otras cosas porque solo conservo monedas, no billetes...
#1998
Maldita tentación del poder legislativo (políticos) de querer saltarse siempre el poder judicial (jueces)...

...porque es lo diferencia básicamente un país democrático de uno bananero, con el dictador de turno al frente, dictando leyes y sentencias por igual, o mejor dicho sin distinción de donde acabo uno y empieza lo otro.
#1999
Me parece fenomenal...
El título dado al artículo, no es fielmente descriptivo (como ocurre con demasiada frecuencia).

Y esto me parece sensacional:
      "Al cambiar la contraseña WiFi no se nos debe mostrar una barra de "fuerza" de la contraseña ni instarnos a usar caracteres especiales"

Que a ellos les parezca fuerte, no implica que lo sea, y que te obliguen a usar contraseñas de determinada manera limita las posibilidades de la contraseña, y señala a cualquier posible atacante qué puede descartar y en qué centrarse.
#2000
....si al final las pelis de "Fumanchú", no iban mal encaminadas...