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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 [333] 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 ... 431
3321  Programación / Programación C/C++ / Re: Duda sobre structs!!! en: 10 Enero 2018, 03:23 am
Una forma extraña de invocar una función. Pasas un estructura a una función, para luego devolver también sus dos elementos por referencia... no le veo el sentido, salvo que sea simplemente practicar... (aunque mala práctica).

Tu dilema se resuelve en evaluar tras la llamada el resultado...
Tu tienes:

Código:
Convocactoria1(array(j), cuali, cuanti)
mensaje cuali + cuanti

Pués evaluando a su regreso harías algo como:
Código:
Convocactoria1(array(j), cuali, cuanti)
Si (cuali = aprobado) luego
    mensaje cuali + cuanti
sino  //esto es, suspendido
    mensaje cuali  // omitimos cuanti, según tu propuesta de que no debe mostrarse.
fin si

Luego en la función preguntas por un valor, y tanto si es suspendido como aprobado, en ambos casos repites la línea... si debe ser así, esa línea basta ponerla fuera del condicional si, sí o sí, se va a consigar, o corrige eliminando la que no proceda...
Te lo marco en negrita.

void convocatoria1 (const Notas& n, int& cualitativa, int& cuantitativa){
    if (n.cualitativa1==suspendido){
        cualitativa=n.cualitativa1;    }
    else{
        cualitativa=n.cualitativa1;
        cuantitativa=n.cuantitativa1;    }
}
Es decir quizás quisieras hacer algo como esto (copio y pego y corijo in situ):
Código:
void convocatoria1 (const Notas& n, int& cualitativa, int& cuantitativa){
    cualitativa=n.cualitativa1;
 
    if (n.cualitativa1==aprobado){
        cuantitativa=n.cuantitativa1;    }
}
3322  Informática / Hardware / Re: ¿Como saber si una placa base esta rota? en: 9 Enero 2018, 23:11 pm
Cuando tienes problemas de funcionamiento, SIEMPRe, debes proceder en orden... y el orden correcto, es el que sigue la energía eléctrica...


Así que lo primero, es verificar que llega corriente al enchufe donde conectas y que él mismo manda la energía  suficiente y correctamente, luego conecta ahí otro aparato con un consumo similar al de tu pc y verifica que funciona correctamente, que no hay fallos de contactos y tal...

Lo siguiente en ese camino son los cables de alimentación, pruébalos en otro aparato, si funcionan, los sigueinte es la fuente de alimentación, remplázala  por otra que sabes que funciona (porque la acabas de ver funcionando en otro equipo). Asegúrate que la fuente de alimentación de remplazo tenga la potencia suficiente (si l tuya es de 1000w. una de 250w. seguramente no pueda con la demanda solicitada y tenga cuelgues).

Luego lo siguiente es la propia placa base, pero antes revisa los conectores de energia en la placa base... basta que estén flojos para que parezca que hay alguna avería, luego dentro de la placa base, revisa el procesador y luego el BIOS... Es conveniente al llegar aquí, hacer lo que te señala Simorg, retirar la placa de vídeo y probar con la que tenga la placa base-procesador. Retira cualquier otra placa periférica que pudieras tener, como una placa de sonido...
Asegúrate que los jumpers estén en su posición correcta, algo que debería ser así, si no los has tocado y antes funcionaba (hay quien se le ocurre la mala idea de cambiar mover jumpers, sin saber que hace y al final los deja mal desconfigurado o peor dañando la placa, por si suena la flauta, pero cn tecnología no convene jugar "a ver que pasa si... hago esto"...
Llegados hasta aquí, puedes afirmar que la placa base está dañada, el punto exacto es complejo, y carece de importancia si no se va a reparar.

Un modo rápido de ver si esta dañada, es cambiarla a otro equipo idéntico que funciona correctamente, usando los componentes de aquel... pero salvo que sea en una empresa, en casa va a ser complicado que alguien tenga dos equipos idénticos.
3323  Foros Generales / Noticias / Re: CEO de una criptomoneda porno se fuga con millones de dólares de los inversores en: 9 Enero 2018, 22:44 pm
Devolver lo invertido, cuando el precio se ha triplicado... resulta gracioso... ya quisiera ver si harían lo mismo se el precio se hubiera "trividido"...
3324  Foros Generales / Foro Libre / Re: Nomofobia. ¿Eres adicto al móvil? descúbrelo. en: 9 Enero 2018, 02:04 am
Curioso nombre, ¿se supone que "nomo" viene del latín como suelen hacer los científicos al ponerle nombre a las fobias y demás?, por que yo no le encuentro relación alguna entre "nomo" y teléfono móvil...

A ver si algún experto nos ilustra de donde viene eso de "nomo", creo que nisiquiera en la wikipedia hacen referencia a ello...

EDITO: pues si, si que lo explica en la wikipedia, y sabiendo ahora el significado, me parece una soberana gilipollez usar lo de "nomo" para describir una adicción de cualquier tipo...

Saludos
Curioso... en la wiki española pone algo muy distinto:

Citar
La nomofobia es el miedo irracional a salir de casa sin el teléfono móvil.​ El término, que es una abreviatura de la expresión inglesa "no-mobile-phone + phobia"

Vamos, que ahora los alcohólicos podrían llamarse: "noetilfóbicos"... siguiendo el mismo esquema... parece que desconocen el significado del sufijo 'filia'...
3325  Programación / .NET (C#, VB.NET, ASP) / Re: textbox con autocompletar desde la tercera letra? en: 9 Enero 2018, 01:43 am
En el evento 'changed' compruebas la cantidad de caracteres que lleva escritos, si es igual o mayor que la cantidad deseada (3 en tu caso), buscas en una colección de textos que quieras buscar (se supone que es una colección que mantienes internamente o externamente) y extraes una subcolección que coincide con ese patrón, si la colección devuelta contiene al menos 1 elementos, lo cargas en una lista que haces emerger ('popup'), debajo del textbox (en general, aunque también vale bajo el cursor si no está muy alejado del textbox).
Si no se usa un método popup, todavia puede ser fácilmente imitado, con una objeto invible con un alto para 5 ítems (o los que tu quieras, si son muchos mejor una lista, para que tenga scroll, sin tene rque porveerlo tú), en tal caso, si el patrón del usuario devuelve entradas, las pegas al control que actúa de contenedor, lo posicionas bajo el textbox, en primer plano y lo haces visible. Luego cuando el usuario seleccione un ítem de la lista, lo copias al textbox y haces invisible la lista. Un banderín debiera indicar 'seleccionado', para luego desactivar ya mostrar la lista, mientras no se borre la entrada, o bien ocultarlo simplemente cuando no coincida el patrón (no se encuentre coincidencias), y cuando se pulse en un ítem de dicha lista. y si se vuelve a cambiar el contenido del textbox, nuevamente operar como se ha indicado...


Al caso un control 'ComboBox' ya hace todo eso por tí mismo, con la salvedad que muestra la lista completa que contiene... es decir avanza hasta el ítem coincidente con la entrada en la caja de texto, pero muestra todos, incluso aunque no coincidan. Pero vamos te ahorra mucho trabajo usarlo (con respecto a montarlo por tu cuenta como te comentaba en el párrafo anterior). Tu solo debes encargarte de mantener la lista que debe contener la parte de lista del combobox (por ejemplo los messes del año, y luego el usuario escribe 'm' en la caja de texto, se selecciona marzo, cuando avance a 'ma' todavía sigue en marzo, pero cuando avance a 'may' ya se selecciona mayo.

Otra diferencia de este control, respecto de lo que tu quieres es que la selección busca con cada carácter entrado, no es posible indicar como preciso x caracteres... podría desactivarse la parte de lista del combobox, hasta que tenga 3 caracteres, pero eso exige subclasificar o bien modificar la herencia del control, en ambos casos es mucho trabajo para tan poca cosa. Si requieres que sea así, mejor acometer lo señalado en el primer párrafo...
3326  Programación / .NET (C#, VB.NET, ASP) / Re: Duda carga de objetos POO en: 9 Enero 2018, 01:31 am
No importa lo complejo de un sistema, la cuestión es que solo se 'carga' lo que se necesita usar. Por ello el diseño debe ser eficiente.

Las dependencias deben ser realistas... si es objetiva y realmente dependiente, se hace dependiente, si no, no.

Una rueda tiene atributos, como numero de radios, diámetro, ancho, número de tornillos, marca, etc... luego es razonable que todos esos atributos sean propiedades de las ruedas. Luego la cargar una rueda (crearla, referenciarla) todos sus atributos estarán disponibles. Y todo vehículo tiene una cierta cantidad de ruedas, luego las ruedas será algún tipo de colección, que tienen todos los vehículos, pero que cada implementación de vehículo tiene un valor diferente. Sin embargo si cambias una rueda, deberá del mismo tamaño que el resto, esto es debe encajar... así que debiera haber constructores específicos para cada tipo de vehículo.

Piensa con cosas cotidianas, manejables que puedas fácilmente entender el porqué de ello.
Un simple ejemplo:

Código:
Interfaz Vehículo
    atributo clase Motor
    atributo coleccion Ruedas
    atributo coleccion Puertas

    atributo Motorizado
    atributo TienePuertas
    atributo Velocidad
    atributo EstaEnMarcha
    atributo NumeroRuedas
    atributo VelocidadMaxima
    atributo Color

     metodo Acelerar
     metodo Frenar
     metodo Parar
     metodo Arrancar
Fin interfaz
Una interfaz (es una clase que) define una plantilla básica y que luego cada implementación puede particularizar.


Código:
Clase Bicicleta Implementa Vehículo
    atributo clase Motor
        Read = Nada
        Mensaje "El vehículo bicicleta no tiene motor"
    fin atributo

    atributo coleccion Ruedas
        Read(i)
            Si ((i=0) ó (i=1)) luego
                Devolver Ruedas(i)
            Sino
                Mensaje "El vehículo bicicleta solo tiene 2 ruedas, no puede proporcionarse la rueda" + i.Tostring
            fin si
        fin Read
    fin atributo

    atributo coleccion Puertas
        Read = Nada
        Mensaje "El vehículo bicicleta no tiene puertas"
    fin atributo

    atributo Motorizado
        Read = p_Motorizado
    fin atributo

    atributo TienePuertas
        Read = p_TienePuertas
    fin atributo

    atributo Velocidad
        Read = p_Velocidad
    fin atributo

    atributo EstaEnMarcha
        Read = p_EstaEnMarcha // ó: (p_velocidad>0)
    fin atributo

    atributo NumeroRuedas
        Read = p_NumeroRuedas
    fin atributo

    atributo VelocidadMaxima
         Read = p_VelocidadMaxima
    fin atributo

    atributo Color
        Read
            devolver p_Color
        fin read
        Write (c)
            p_color = c   
         fin write
    fin atributo


    metodo Acelerar
        Si (p_velocidad = 0) luego p_EnMarcha = TRUE
        p_velocidad +=1
     fin metodo

     metodo Frenar
        Si (p_Velocidad >0) luego
            p_Velocidad -=1
            Si (p_Velocidad = 0) luego p_EnMarcha = FALSE
        fin si
    fin metodo

    metodo Parar
        p_Velocidad = 0
        p_EnMarcha = FALSE
    fin metodo

    metodo Arrancar
        Si (p_EnMarcha = FALSE) luego
            p_Velocidad = 20  //por ejemplo...
            p_EnMarcha = TRUE
        fin si
    fin metodo

     metodo Nueva(color)  // Crear
         p_VelocidadMaxima = 65
         p_NumeroRuedas = 2
         p_Motorizado = FALSE
         p_TienePuertas = FALSE

         p_Color = Color

         Ruedas = nueva coleccion
         r = nueva Rueda(diametro=650, radios=50, ancho=5, ...etc..)
         r.Situacion = Delantera
         Ruedas.añadir(r)

         r = nueva Rueda(diametro=650, radios=50, ancho=5, ...etc..)
         r.Situacion = Trasera
         Ruedas.añadir(r)
   
       
         ...etc...
     fin metodo

     atributo NumeroDePiñones
     atributo NumeroDePlatos
fin clase

Como se puede ver algo simple, pero fácil de entender y seguir el ejemplo... tiene varios atributos de solo lectura, y tan solo el color es lectura y escritura. Como es una bicie, no tiene motor ni puertas, además fuera de la interfaz que implementa se han añadido dos atributos aparte, NúmeroDePiñones y NumeroDePlatos... faltaría a la interfaz un método 'cambiarDeMarcha' y añadir un atributo 'NumeroDeMarchas'... la bicileta también tiene...

Como ves cuando se 'carga' un vehículo, con él se carga todo lo necesario, porque forma un 'objeto', todo englobado en la clase, un único objeto engloba a todo, pero puede estar formado por varios objetos, un motor podría ser otro objeto en sí mismo, lo mismo que las ruedas y las puertas... básicamente cualquier cosa que sea más compleja que una mera propiedad. Fíjate como aunque no hemos definido una clase Rueda, al crearla sin embargo le estamos pasando algunos atributos necesarios para crearla, y tras ello, incluso modificamos un atributo (donde está situada la rueda), que no se incluye en el 'constructor'... en cambio al crear el objeto bicicleta, solo se reclama el atributo color, el número de ruedas es prefijado por el diseño propio de la bici, lo mismo sucede con 'motorizado' y 'tienepuertas'.  Un diseño mejor sería tener un atributo llamado NumeroDePuertas, en sustitución de 'TienePuertas', ya que 'número identifica cuantas son, y al caso '0', es lo mismo que 'no tiene'. Es decir una primera aproximación se define y luego de repensarlo haces cambios y ajustes...

Como ves no es necesario cargar nada más que lo que respecta al vehículo... pero eso está en su propio diseño. si ahora creas un objeto ciudad, tendrás por un lado objetos calle, objetos edificios y objetos vehículos, incluso objetos garaje.
Cada uno de ellos sería una colección, pero incluso así, una ciudad tendría atributos como 'nombre', 'extension', 'ubicacion', etc... pero es necesario cargar todos los vehículos de la ciudad?... No, tan solo los de la calle actual.
Siendo calles una colección de la clase 'Calle', y poseyendo cada calle una colección vehículos (que circulan por ella), bastaría cargas solo esos. A su vez cada vehículo podría tener un atributo 'calle', para referenciar al objeto calle en el que se encuentra.
Cuando se cambia de calle (otra distinta), se descarga la previa para cargar la nueva...
Intenta diseñar un objeto calle, edificio y ciudad.

Una colección es una lista de objetos que puede ser tanto homogéneos como heterogéneos, el diseño estbalece lo deseable y al caso, suelen abundar las colecciones cuyo contenido son del mismo tipo "Colección de tipo x"... una colección tiene métodos tales como: añadir (al final), eliminar (del final), insertar (en cierta posición), Borrar (de cierta posición), vaciar (por completo), listar (desde x hasta y), enumerar (todos), Devolver (el enésimo objeto en la colección), y algunos más complejos como 'UnirAOtraColeccion, Clonar, Copiar, etc...
y suele tener atributos del tipo: Vacia, Cantidad, Tipo para señalar si la colección está vacía, cuantos objetos contiene y el tipo de objetos que aloja. Incluso puede hacerse uno como actual y tener un atributo IndiceActual, que puede ser leído y cambiado...
Según la necesidad se crea o no, por ejemplo en una bicicleta, la colección ruedas, no precisa un atributo 'indiceActual', además siendo sólo 2 es fácl acceder a una y saber cual de ellas es (trasera, delantera), pero (por ejemplo) en una ciudad saber el nombre de la calle actual seleccionada, si resulta conveniente... ya que por ejemplo podría ser deseable 'conducir' un vehículo a dicho destino.
Así, un método Conducir (a la calle x)... movería un vehívulo hacia dicha calle, haciéndolo más complejo, debería encontrar el trazado desde su ubicación actual hasta el destino, y al llegar allí detenerse  y avisar...

Piensa en objetos de la vida real y trata de 'visualizarlo' todo desde esa perspectiva de la manipulación, propiedades que tienen y lo que se puede hacer con ello...
3327  Foros Generales / Noticias / Re: Firefox 59 simplifica el control de notificaciones y tu privacidad en: 8 Enero 2018, 15:32 pm
Es lo que vengo aconsejando a muchos conocidos desde hace la tira de años, que tapen la cámara con un simple post-it, de esos semitranslúcidos.

...sin embargo es enormemente criticable que el propio hardware, no traiga una simple ventanita deslizante, giratoria, etc... que imposibilite que incluso aunque un intruso llegara a activar la cámara, pudiera enfocar al usuario. Y dado lo sencillo y barato dle sistema, cabe preguntarse por qué... por qué no lo hacen. Es simple y llanamente: negligencia.
Si un día utilizan tu cámara sin tu permiso, desde luego yo pondría una denuncia al fabricante, precisamente por negligencia, es algo tan simple y lógico de prever, que no ponerle remedio responde exclusivamente a negligencia.

...pero la gente se ha acostumbrado (YA) a tragar por el 4N0...  :laugh: :laugh: :laugh:
3328  Foros Generales / Noticias / Re: La Raspberry Pi es inmune a Meltdown y Spectre, os explicamos por qué en: 8 Enero 2018, 15:24 pm
Cuántas vueltas...
Bastaba decir que se basa en la arquitectura ARM Cortex-A53, que no se ve afectada por dichos problemas (exactamente la misma que mi tf. y otros muchos modelos), tal y como publicó ARM.
3329  Foros Generales / Foro Libre / Re: Nomofobia. ¿Eres adicto al móvil? descúbrelo. en: 8 Enero 2018, 15:20 pm
mmm... "nomofobia"?. Ese palabro parecería tener sentido para un significado tipo: "fobia a los gnomos de jardín". aunque al caso, mejor si fuera gnomofobia.

En cualquier caso, el sufijo 'fobia' es miedo... sería la antítesis a la adicción...

Quizás la palabra adecuada fuera mejor algo como: "fonoadicto".
3330  Foros Generales / Noticias / Re: Grave error de MediaMarkt vendiendo móviles a precio de derribo de forma errónea en: 8 Enero 2018, 04:54 am
Sin llegar a acusación, si no solo sospechas... Creo que Mediakarkt, realiza ofertas falsas con la única finalidad de captar clientes...

En dos ocasiones este año pasado, me ha sucedido ver una oferta que me pareció interesante y justo el mismo día de la oferta (o al día siguiente, pero en ofertas que duran entre 7 y 15 días)), intentar hacer la compra, con un subsiguiente mensaje de: "Stock agotado"... que sería la forma en que limitan la posibilidad de que alguien acceda a dicha oferta falsa, irreal...
...en esa línea es que creo que se encuentra este caso que se comenta en la noticia, solo que al poner la 'oferta falsa', han fallado  (olvidado desviar) en dirigir el pedido a la respuesta de: "stock agotado"... lo habrán procesado y solo cuando se han dado cuenta de que no frenaron para esa 'oferta', es cuando han decidido liquidar por las malas el asunto...
Páginas: 1 ... 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 [333] 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines