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 - K-YreX

#141
He eliminado el otro tema pues era lo mismo que este.

Antes que nada decir que no se hacen tareas por lo que no te vamos a dar el trabajo hecho. Si tan solo dejas el código no te lo vamos a dar traducido al 100%. Como mucho te podremos dar alguna indicación de por dónde salir.

Si quieres ayuda más concreta será mejor que intentes tú traducir el programa y publiques las partes en las que tienes problemas.

PD: Puedes modificar un mensaje ya publicado en vez de crear uno nuevo si no hay respuestas de por medio. Normas del foro.
#142
Foro Libre / Re: No se como titular esto.
3 Diciembre 2020, 05:20 AM
Desde luego que tomarte la justicia por tu cuenta no es la solución. Eso sería una lucha interminable. Dentro de lo que cabe España no funciona tan mal en este tipo de casos y suelen ofrecer protección a familias en la misma situación por lo que mi recomendación como la del resto de usuarios es que tomes medidas legales.

Por desgracia estas situaciones se dan más de lo que pensamos y aunque desde fuera parece fácil acabar con ellas, desde dentro no es tan sencillo. Nadie aguanta estas situaciones por gusto y los afectados muchas veces no se atreven a dar el paso por todo lo que pueden perder si sale mal. Seguramente si vas a la policía o a algún organismo especializado en este tipo de casos te podrán aconsejar mejor que nadie.

Como ya te han dicho, en caso de juicio necesitarás cuantas más pruebas mejor (informes médicos, grabaciones, conversaciones, testigos) para que las acusaciones sean irrefutables y se asegure la mayor protección posible para vosotros. Recalco lo de testigos porque aunque no tengas pruebas tangibles, los testimonios también son una prueba. Si hay personas que puedan y quieran declarar que son conocedores de los hechos y que no se trata de una situación aislada es más fácil que la justicia esté de vuestro lado.

Otra opción, dependiendo de los recursos y posibilidades que tengáis, es hacer las maletas y marcharos. El problema es que mientras él tenga total libertad, no podréis vivir realmente tranquilos y tendréis que vivir mirando siempre hacia atrás.
Es por esto que lo mejor es llevarlo por lo legal y que se apliquen los métodos que se consideren oportunos para daros la mayor seguridad de vida.
En conclusión, infórmate en la policía o similares (no van a pasar de ti pues este es un tema muy serio) y escucha sus consejos que al final son los que conviven con estos problemas a diario y más te pueden ayudar. Una vez dado el primer paso todo es seguir para adelante y si el proceso va a ser largo llevarlo con el mayor sigilo posible para que él no sospeche nada.

Mucha suerte.
#143
Prácticamente cualquier IDE se puede adaptar para programar en C/C++ (mediante plugins) y teniendo un compilador como los proporcionados en MinGW o Cygwin.
Algunas de las opciones más conocidas pueden ser Visual Studio (o su versión Visual Studio Code) o Eclipse, pero como ya digo puedes probar con cualquiera.

No tengo mucha experiencia porque siempre que programo en C/C++ lo hago tan solo con un editor de texto y compilando/ejecutando directamente desde la Consola/Terminal. Si quieres usar un editor de texto para modificar el código fuente tienes opciones muy interesantes como Sublime Text, Gedit (en Linux), Notepad++, etc.
#144
Las tareas que quieres hacer no tienen requisitos muy especiales (un navegador y un reproductor de vídeo) por lo que yo creo que cualquier distribución puede suplir esos objetivos.

Una vez dicho eso, recomendaría algunas de las distros más populares (Ubuntu, Linux Mint, ...) más que nada por la compatibilidad y la cantidad de documentación que puedes encontrar en Internet.
De las dos mencionadas antes (que he probado ambas durante unos cuantos años), recomiendo Linux Mint sobre todo para personas que no tengan mucha experiencia en entornos Linux. Está basado en Ubuntu por lo que la documentación de esta distro también te servirá en la inmensa mayoría de los casos y me parece algo más sencilla de utilizar por personas que están acostumbradas a Windows.

Por último decir que cada versión de Linux Mint cuenta con varios entornos: Cinnamon, Mate, Xfce (ordenados de más pesados y personalizables a más livianos y simples). Cualquiera de ellas creo que podrá correr en tu máquina pero si tienes problemas de rendimiento siempre puedes pasar a un entorno más ligero que el actual.

PD: Existen muchas distros "alternativas" centradas en la sencillez y la optimización de recursos aunque no he probado ninguna por lo que no puedo recomendarte nada.
#145
Efectivamente es Chrome pero siempre he utilizado este navegador y nunca me había pasado esto.
Además en ambos ordenadores estoy utilizando Chrome y en uno se ve bien pero en el otro no.
Si alguien sabe por qué puede ser... :-X


EDIT: He descubierto que si accedía en modo incógnito la página se veía correctamente así que he borrado todos los datos de navegación y ya ha vuelto a la normalidad.
#146
Redes / Re: [VirtualBox] Adaptadores de Red
28 Noviembre 2020, 09:50 AM
He intentado probar todo desde una máquina virtual inmutable para tener siempre el mismo estado inicial pero tenía problemas para virtualizar dispositivos con Genymotion (que es lo que me da problemas). Así que al final he desinstalado VirtualBox y Genymotion de mi sistema anfitrión y he hecho todas las pruebas en este último.

Durante todo el proceso he ido mirando los registros del Visor de eventos pero no daban mucha información ni en la parte de detalles así que al final he sacado más información de los logs de cada programa (que no significa que la haya entendido toda  :rolleyes:).

La instalación de VirtualBox ha ido todo bien. La he realizado generando también los logs de instalación y no he visto nada raro. Se crea un adaptador host-only network (como es normal).
Sin embargo, al instalar Genymotion es cuando empiezan a crearse adaptadores nuevos. He revisado los logs de Genymotion también y las siguientes líneas son las que me resultan extrañas:

//...
[Genymotion:5412] [debug] [VBox] get "" from host.only.interface
[Genymotion:5412] [debug] [VBox] [findHostOnlyInterface] Looking for compatible host-only interface
[Genymotion:5412] [debug] [VBox] Call: ("list", "hostonlyifs")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] [getSavedHostOnlyInterface] Checking "VirtualBox Host-Only Ethernet Adapter" interface status ( QHostAddress("192.168.56.1") )
[Genymotion:5412] [debug] [VBox] Empty interface name
[Genymotion:5412] [debug] [VBox] [createHostOnlyInterface] Creating new host-only interface
[Genymotion:5412] [debug] [VBox] Call: ("hostonlyif", "create")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] [createHostOnlyInterface] Interface "VirtualBox Host-Only Ethernet Adapter #2" created with success
[Genymotion:5412] [debug] [VBox] Call: ("list", "hostonlyifs")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] Call: ("hostonlyif", "ipconfig", "VirtualBox Host-Only Ethernet Adapter #2", "--ip", "192.168.225.1", "--netmask", "255.255.255.0")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] Call: ("hostonlyif", "ipconfig", "VirtualBox Host-Only Ethernet Adapter #2", "--ip", "192.168.225.2", "--netmask", "255.255.255.0")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] Call: ("dhcpserver", "remove", "--ifname", "VirtualBox Host-Only Ethernet Adapter #2")
[Genymotion:5412] [critical] [VBox] Return code: 1
[Genymotion:5412] [critical] [VBox] Output command: "VBoxManage.exe: error: Failed to find DHCP server for host-only interface 'VirtualBox Host-Only Ethernet Adapter #2' (network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2')"
[Genymotion:5412] [warning] [VBox] 1 "VBoxManage.exe: error: Failed to find DHCP server for host-only interface 'VirtualBox Host-Only Ethernet Adapter #2' (network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2')\r\n" ""
[Genymotion:5412] [debug] [VBox] Call: ("dhcpserver", "add", "--ifname", "VirtualBox Host-Only Ethernet Adapter #2", "--ip", "192.168.225.100", "--netmask", "255.255.255.0", "--lowerip", "192.168.225.101", "--upperip", "192.168.225.254", "--enable")
[Genymotion:5412] [debug] [VBox] Return code: 0
[Genymotion:5412] [debug] [VBox] [createHostOnlyInterface] DHCP server created with success
[Genymotion:5412] [debug] [VBox] set "VirtualBox Host-Only Ethernet Adapter #2" to host.only.interface
[Genymotion:5412] [debug] [VBox] [createHostOnlyInterface] "VirtualBox Host-Only Ethernet Adapter #2" host-only interface is ready to use
[Genymotion:5412] [debug] [VBox] Restart adapter "VirtualBox Host-Only Ethernet Adapter #2"
[Genymotion:5412] [debug] [VBox] Execute "powershell" ("-WindowStyle", "Hidden", "-command", "start-process -verb RunAs -filepath wmic -argumentlist 'path', 'win32_networkadapter', 'where name=\"VirtualBox Host-Only Ethernet Adapter #2\"', 'call', 'Disable'")

No sé muy bien a qué hace referencia el host.only.interface de la primera línea del log pero parece que no obtiene ningún adaptador de ahí y por eso aparecen varias ventanas de control de cuentas de usuarios para permitir la ejecución de VirtualBoxInterface (que es lo que crea el nuevo adaptador). Aparecen 3 ventanas seguidas de VirtualBoxInterface y después una de WMI (última línea del log anterior) y si das permiso a esta última vuelven a aparecer otras 3 ventanas de VirtualBoxInterface.

Después de muchas pruebas he descubierto que para que funcione tengo que permitir la ejecución de las ventanas de VirtualBoxInterface y cuando aparece la de WMI cancelar esta última (porque vi que estaba deshabilitando el adaptador). Así ya no aparecen más ventanas de permisos de ejecución y el dispositivo virtual se inicia correctamente.
Logs generados en una ejecución correcta:

[Genymotion Player:8316] [debug] [VBox] get "VirtualBox Host-Only Ethernet Adapter #3" from host.only.interface
[Genymotion Player:8316] [debug] [VBox] [findHostOnlyInterface] Looking for compatible host-only interface
[Genymotion Player:8316] [debug] [VBox] Call: ("list", "hostonlyifs")
[Genymotion Player:8316] [debug] [VBox] Return code: 0
[Genymotion Player:8316] [debug] [VBox] [getSavedHostOnlyInterface] Checking "VirtualBox Host-Only Ethernet Adapter #3" interface status ( QHostAddress("192.168.157.2") )
[Genymotion Player:8316] [debug] [VBox] [getSavedHostOnlyInterface] "VirtualBox Host-Only Ethernet Adapter #3" Interface seems compatible
[Genymotion Player:8316] [debug] [VBox] Call: ("list", "dhcpservers")
[Genymotion Player:8316] [debug] [VBox] Return code: 0
[Genymotion Player:8316] [debug] [VBox] [checkIfInterfaceHasValidDhcp] "HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #3" DHCP server is associated with "VirtualBox Host-Only Ethernet Adapter #3" interface
[Genymotion Player:8316] [debug] [VBox] [checkIfInterfaceHasValidDhcp] "VirtualBox Host-Only Ethernet Adapter #3" interface is compatible

Como se puede ver en este caso, la primera entrada obtiene el adaptador #3 de host.only.interface y entonces ya no tiene que crear más adaptadores y funciona todo bien.
Al momento de hacer las pruebas, noté que el adaptador #3 no aparecía en los adaptadores como Host-Only Network #3 (Host-Only Adapter #3) sino como Ethernet #3 (Host-Only Adapter #3). Pero ahora sí aparece como Host-Only Network #3.

He borrado todos los adaptadores de VirtualBox que se me habían ido creando durante las pruebas y he dejado únicamente el primero que se crea al instalar VirtualBox y este (el #3) que es el que funciona.
No entiendo por qué con el primer adaptador falla y con este funciona bien. He comprobado que el adaptador 1 estuviese habilitado y con el DHCP habilitado (resumiendo: misma configuración que el #3).
#147
Desde que he accedido al foro (hace unas 12 horas) he notado que en mi ordenador no se visualiza bien la página principal (portada) de elhacker.net. La barra superior de: Inicio | Foro | Blog | WarZone |... se ven correctamente pero la imagen superior aparece cortada (solo se ve "cker net").
Además el contenido central de la página aparece dispuesto en vertical (primero la parte que aparecía normalmente a la izquierda: elhacker.NET | Servicios | Descargas | Participa |..., debajo de lo anterior: el tablón de novedades | últimas entradas... | últimas noticias... |..., y debajo de estos últimos: Buscador | Boletín mensual | Estadísticas del Foro |...).

He probado a recargar la página varias veces y siempre se ve igual.
Me parece raro puesto que no he modificado ninguna configuración de mi ordenador. Sin embargo, si bajo el zoom del navegador al 80%, se vuelve a ver como siempre pero si lo dejo al 100% (como lo he tenido siempre) se ve como menciono arriba.

He accedido desde otro ordenador y en este se ve todo correctamente.
¿Alguien sabe por qué puede ser?
#148
Programación C/C++ / Re: Necesito ayuda con un for
27 Noviembre 2020, 01:53 AM
Bueno, echando un vistazo por encima, veo que ya está algo mejor.
De todas formas empiezo desde el principio:

CABECERAS: Sólo tienes que incluir las cabeceras necesarias, es decir, las que contengan las funciones que tú vas a utilizar. En este caso tienes:
  • stdio.h -> Contiene las funciones de entrada/salida típicas de C (printf()/scanf() /Funciones sobre ficheros en C/...) -> No lo utilizas.
  • iostream -> Contiene las "funciones" de entrada/salida típicas de C++ (cout <</cin >>/...) -> Sí la utilizas.
  • string -> Contiene el tipo de dato std::string, entre otras cosas. -> Sí la utilizas.
  • conio.h -> Contiene entre otras cosas la función getch(). Esta librería no pertenece al estándar y está desaconsejado su uso. Un buen sustituto de getch() en C++ es cin.get() (que pertenece a <iostream>) y en C es getchar() (que pertenece a <stdio.h>). -> No la utilizas y no creo que lo necesites.
  • stdlib.h -> Contiene funciones como system()/srand()/rand() /conversores de tipos/... -> No la utilizas.
    Todas las bibliotecas que no utilizas es mejor eliminarlas. Primero para ahorrar espacio ya que cada include lo que hace es copiar el contenido de cada uno de esos ficheros. Y segundo, para sabe cuándo necesitas una u otra biblioteca.
    Además todas las que terminan en ".h" son propias de C. Estas también funcionan en C++ pero las propias de C++ se denominan igual pero quitando el ".h" del final y añadiendo una "c" al principio -> cstdio/cstdlib/...


    VARIABLES/CONSTANTES GLOBALES/LOCALES
    No es recomendable utilizar variables globales. Las variables es mejor crearlas locales a una función y utilizar los parámetros cuando sea necesario para enviarlas a otras funciones.
    Sin embargo, es mejor creas constantes globales como si fueran valores de configuración antes que colocar números sueltos por ahí. Así es más fácil modificar el programa. Aunque si se va a inicializar un array al momento de la declaración, no es necesario determinar su longitud ya que esta será la que tenga una vez inicializado.
    Además el método tradicional de crear arrays en C/C++ dice que si son estáticas, deben declararse con constantes y no se permiten variables. Para crear arrays con tamaños definidos en tiempo de ejecución hay que usar memoria dinámica.

    Por convenio, los nombres de variables/funciones se definen en lowerCamelCase (primera palabra en minúsculas y a partir de ahí cada palabra con la primera letra en mayúsculas) y los nombres de constantes en SCREAMING_SNAKE_CASE (todas las letras en mayúsculas y las palabras separadas por guión bajo _).
    Código (cpp) [Seleccionar]

    const int NUM_ALUMNOS = 2; // Este valor deberia usarse tambien para el array de nombres para asegurar la misma longitud
    const int NUM_MATERIAS = 4;



    FILTRO DE DATOS
    Cuando se quiere pedir un dato hasta que éste sea válido se suele utilizar un filtro do-while(). La estructura do-while() primero ejecuta lo que hay dentro y luego comprueba la condición. Se diferencia del while() en que el código que hay dentro del do{} al menos se ejecutará una vez.
    Código (cpp) [Seleccionar]

    int numero;
    bool valido;
    do { // Hacer esto...
      cout << "Introduce un numero positivo: ";
      cin >> numero;
      // Si se quiere mostrar un mensaje es mejor crear una variable para guardar la comprobacion
      // Sino tambien se puede poner la condicion directamente en los parentesis del while()
      valido = (numero >= 0);
      if(!valido)
        cout << "El numero debe ser positivo" << endl;
    } while(!valido); // ...mientras el numero introducido no sea valido



    OTROS ERRORES
  • Las variables i y j de la línea 14 nunca se utilizan. En los bucles de las líneas 20 y 32 estás declarando otras dos que solo existen hasta que acabe cada uno de los for().
  • El bucle de la línea 32 está dentro del if() de la línea 24 por lo que solo se ejecutará bien si de primeras introduces un número de materias no válido. Cuando apliques el filtro do-while() tendrás que poner el for() de la línea 32 después del do-while() para que se ejecute siempre que se tenga ya un número válido.
  • No estás utilizando la matriz notas[][]. Deberías utilizarla para guardar en cada fila las notas de un alumno y en cada columna la nota de una materia. Esto se haría así:
    Código (cpp) [Seleccionar]

    for(int i = 0; i < NUM_ALUMNOS; ++i){
      for(int j = 0; j < NUM_MATERIAS; ++j){
        cout << "Introduce la nota " << (j+1) << " del alumno " << (i+1) << ": ";
        cin >> notas[i][j];
      }
    }


    Ahora tienes que revisar todas estas cosas que no son pocas e introducirlas en tu programa correctamente.
    Suerte. :-X

    PD: El bucle for() de la línea 32 debería estar identado al mismo nivel que el bucle while() de la línea 27. No se trata de identar cada fragmento de código más a la derecha sino de mantener una estructura de orden para saber qué cosas están dentro de qué otras cosas y cuáles están al mismo nivel.
#149
Programación C/C++ / Re: Necesito ayuda con un for
26 Noviembre 2020, 23:38 PM
Lo primero de todo, el código debes publicarlo entre etiquetas de Código GeSHi. Para ello debes seleccionar el código e ir al desplegable que dice Código GeSHi (encima del cuadro de texto) para seleccionar el lenguaje correspondiente.
También puedes agregar las etiquetas manualmente.


Ese fragmento es una locura de código y la identación de las llaves lo hace todavía más complicado:
  • Líneas 4/5/8/11 -> Utilizas una variable j que no aparece por ningún sitio.
  • Línea 13 -> Declaras una variable j que interferirá con la que tenías antes declarada (en caso de que así fuese).
  • Línea 13 -> Utilizas una variable <materias> que tiene toda la pinta de no estar declarada o inicializada. -> Esto da que pensar que la variable <alumnos> igual tampoco lo está.
  • Utilizas la matriz notas[][] tanto para guardar el número de materias como las notas. Unos datos están sobrescribiendo los otros.
  • El bucle de la línea 13 solo se ejecuta cuando se cumple la condición de la línea 5.
  • La condición de la línea 5 y el bucle de la línea 8 son redundantes. Ese funcionamiento se puede conseguir tan solo con un bloque do-while()

    Ahí tienes los errores que veo en ese fragmento.
    Intenta solucionarlo y si no lo consigues coloca el código completo (al menos el de esa función) para poder ver lo que está bien y lo que no. Recuerda publicar el código entre etiquetas de Código GeSHi. También puedes explicar con detalles lo que estás intentando hacer.
#150
Programación C/C++ / Re: ayuda con vectores
26 Noviembre 2020, 21:19 PM
Esto es porque el prototipo de la función posicion() no tiene parámetros.
La función posicion(string, vector<string>) está implementada después de main() y no está definida antes por lo que no puedes utilizarla dentro del main().


EDIT: En vez de utilizar una variable global <lugar>, haz que la función posicion() devuelva la posición:
Código (cpp) [Seleccionar]
int posicion(string, vector<string>);