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 - @XSStringManolo

#2371
Puaah, el kernel de windows debe ser una pocilga y un coladero de cuidado.
No puden publicarlo. El caos que se montaría por lo agujeros de seguridad que afectaría a millones, las críticas, los plagios...

Solo por el peso de los sistemas se puede hacer uno una idea. Parece que no podían tocar el nucleo sin que dejase de funcionar medio sistema. Y se dedicaron a meter software por encima para trabajar con lo que ofrecía el nucleo y mejorar los resultados.
Eso es una bola de nieve insostenible, cada vez hacen falta más capas, y como todo está montado sobre el nucleo, no se puede mejorar sin cargarse 20 sistemas de los cuales dependen otros 1000.

Asique ahora abrazan al opensource porque ya sale más rentable reconstruir esas capas en un kernel opensource haciéndolas independientes del nucleo que seguir destripando un sistema tan complejo que cada vez será más y más pesado.

A mi me gustaría que proponiesen algo inovador 100% suyo con su tecnologia.
Windows va a mejorar mucho pero ya no va a ser windows. Va a ser Win Linux o Wubuntu, Lindows, Winlux o cualquier cosa así.

Algún día lo publicarán cuando no rueden cabezas por la empresa y ya no quede nadie de eaa generación en la que se desarrollo.

#2373
Si Iran no tenía nada que ver, que hacían sus marines quitándole bombas a un buque? xD

Por otro lado me parece extraño que ante ataques tan graves en el mar se tomen imágenes de forma tan rápida. No se ametralle a todo lo que esté a la vista, y no se guarde en el cajón la noticia para no mostrar debilidades en tiempo de "guerra".

Dándole vueltas tengo la teoría de que Estados Unidos e Irán son más amigos de lo que quieren aparentar.

Venta de armas, subida del precio del petroleo, joder a los asiáticos y a los indios.

Trump ya ha jugado a esta ambiguedad para lucrarse anteriormente. Salió públicado en diversos medios que se dedicaba a invertir de su dinero personal en empresas de armamento antes de amenazar a un país y que eran precisamente esas empresas de armas las que subministraban a sus enemigos, con los que nunca se ha entrado en conflicto directo, solo pura charlatanería.

Esto me parece un teatro cutre de colegio. Pillaron a los Iranies quitando una bomba. Jajajaja. El presidente de Iran afirma que eran iraníes. Trump no hace nada.

Si fuese un ataque real sería ahora mismo el nuevo 11s, se le daría esa repercusión para poder atacar a Iran inmediatamente con apoyo internacional y acabar con todos esos terroriatas que amenazan Japón, Europa y America. Trump estaría blasfemando día y noche y no serían los asiaticos (china y japón) los mayores afectados. Pero vaia, tal y como lo pintan parece que los Iranies son unos bondadosos que no quieren causar problemas, solo jugar a undir la flota para pintar el mar de negro.

CitarEEUU aumenta sus exportaciones a Irán a pesar de sus propias sanciones
https://mundo.sputniknews.com/economia/201812121084092252-importaciones-exportaciones-estadounidenses-iran-sanciones/

CitarLa semana pasada, Pompeo anunció que no habría más exenciones para los ocho países a los que Washington permitió seguir comprando crudo iraní (China, la India, Italia, Grecia, Japón, Corea del Sur, Taiwán y Turquía) a pesar de las sanciones que entraron en vigor en noviembre.
https://www.lavanguardia.com/internacional/20190508/462120880379/pompeo-viaja-sorpresa-irak-escalada-tension-iran.html
#2374
Obviamente el peine con spam no va a poder competir con el peine de 2 euros.
Pero y si el peine fuese gratis porque tiene pintado en el mango www.productosdebelleza.inventado?
Sería molesto? No. Sería rentable? Pues a la larga bastante más que pagar 2 euros. Ya que en la web tendrán secadores, lacas, etc.

Acerca del opensource puedo usar una distro entera ya compilada con sus 40.000 ficheros o 300.000 gracias a que es open source. Puedo aprender a programar gracias a que no está todo el mundo cobrando por un hola mundo.

Si creo un software de calidad estaré encantado de ofrecerlo gratuitamente en mi web junto con un par de anuncios pequeños al lado de la descarga o un link con publicidad no invasiva. Qué la empresa lo venda como quiera. Abrá gente que lo busque gratis y acabe en mi web.
#2375
Lo primero que probaría es un live cd en un usb booteable.
Pueden ser muchas cosas distintas. Ram, placa, fuente, disco, sistema...

Una vez iniciado el sistema montaría una carpeta del sistema en ram y probaría a escribir un par de archivos grandes en la ram y en el disco. Con eso descartas bastantes posibilidades. Si alguno te va exageradamente lento ya sabes por dónde seguir buscando el problema.

Si todo va normal lo más fácil para seguir comprobando es cambiar piezas una por una e ir probando en cual de ellas está el problema.
#2376
Hardware / Re: GRÁFICA SUENA FUERTE
15 Junio 2019, 16:44 PM
60º-70º Temperatura iddle.
70º-75º Temperatura máxima recomendable.
80º-80º+ Temperatura crítica.

Usa GPU-Z para medirlas.
#2377
Es de una traducción al español que estoy haciendo del libro de Apress Learn C++ for game development.

Capitulo 18: La STL. bitset.

El bitset no es exactamente un contenedor, se parece mas a un tipo de dato de STL.
No es compatible con iteradores, bucles for basados en rango o algoritmos STL.
Se utiliza para seguir valores booleanos en un set combinado. El metodo tradicional
para conseguir el mismo resultado son las flags implementadas usando operadores
bitwise y shifts.

Una de las diferencias de bitset con respecto a los contenedores de la STL es que no
necesitas especificar un tipo para el bitset.

Especializando bitset:

#include <bitset>

using namespace std;

namespace
{
   const unsigned int NUMERO_DE_BITS = 5
}

using MiBitset = bitset<NUMERO_DE_BITS>;



Diferentes constructores para bitset:

MiBitset DefaultConstructor; //Inicializa todos los bits a 0.
MiBitset UnsignedLongConstructor{0x17}; //Valor literal
MiBitset StringConstructor{ string{ "11011"} };



Trabajando con bitsets.
Un biset proporciona metodos para realizar un buen numero de operaciones
diferentes. Estos pueden dividirse entre metodos que preguntan sobre el
estado actual del bitset, y metodos usados para alterar los bits.

cout << boolalpha;

cout << "Tamanho del bitset: " << StringConstructor.size() << endl;
cout << "Numero de bits asignados: " << StringConstructor.count() << endl;

cout << "Hay algun bit asignado? " << StringConstructor.any() << endl;
cout << "Estan todos los bit asignados? "<<StringConstructor.all() << endl;
cout << "No hay bits asignados? " << StringConstructor.none() << endl;

for (unsigned int i = 0; i < StringConstructor.size(); ++i)
{
   cout << "Bit " << i << " Valor: " << StringConstructor << endl;
   cout << "Bit " << i << " test: " << stringConstructor.test(i) << endl;
}

El metodo size retorna el valor que le pasamos en la plantilla. El metodo
count retorna el numero de bit a los que le asignamos true.



Hay tres metodos para alterar los valores almacenados en bitset:

StringConstructor.set(1, false);
StringConstructor.set(1);
StringConstructor.set();

StringConstructor.reset(0);
StringConstructor.reset();

StringConstructor.flip(4);  
StringConstructor.flip();


El primer ejemplo utiliza el index de un bit y el valor a asignarle a ese bit.
El segundo utiliza solo un index y asigna 1 al bit correspondiente.
El tercero asigna 1 a todos los bits en el set.
El metodo reset hace lo mismo pero en vez de unos, asigna ceros.
El metodo flip cambia los unos por ceros y los ceros por unos. En caso de
indicarle un index, solo cambiara el bit que se encuentre en ese index.
#2378
Lo puedes hacer de mucha maneras.
Guardas los bit en una cadena. Te inventas otra cadena para comparar. Recorres ambas cadenas con un bucle for y las comparas.
Ejemplo:
Código (cpp) [Seleccionar]
string cadena1 = "10001011";
string cadenaParaComprobar = "11111111";

for (int i = 0; i < cadena1.size(); ++i)
{
    if (cadena1[i] == cadenaParaComprobar[i])
     {
    cout << "El bit numero " << i << " esta set" <<endl;
     }
}


Puedes usar los operadores bitwise diseñhados para eso de 200 maneras distintas para hacer lo mismo. Se suelen usar para comparar los bits, sumarlos, restarlos, desplazarlos, etc.


Pd: Te pongo ejemplos de los operadores.
Citarresultado = X & Y;
X= 00001111
Y= 00011000

El resultado será:
00001000

Citarresultado = X | Y;
X= 00001111
Y= 00011000

El resultado será:
00011111

Citarresultado = X ^ Y;
X= 00001111
Y= 00011000

El resultado será:
00010111

Citarresultado = 1 << 1;

El resultado será:
00000010
Es decir, 2 en decimal.

Citarresultado = 1 >> 1;

El resultado será:
00000000
0 en decimal. Hechó al uno fuera y no había bits para guardar su valor. Se perdió.
#2379
Si haces ese programa, va a ser un bucle infinito ya que hay infinitos múltiplos comunes.

Busca en wikipedia el Minimo Comun Multiplo. Te acordará del colegio.

Tienes que hacer todos los múltiplos comunes de (n) y (m.n)

Me extraña que te pida todos los multiplos comunes...

Si un numero es multiplo de otro quiere decir que si multiplicas ese número por el número natural adecuado, vas a llegar a ese valor.

Por ejemplo n * m.
n = 10;
m = 20;

resultado = n*m;
Ahora resultado vale 200.
Como sabrías si 200 es múltiplo de por ejemplo 3?
3 * 66 = 198.
3 * 67 = 201.
200 no es multiplo de 3 porque ningún numero multiplicado por 3 da 200.

En vez de ir probando 3*1, 3*2, 3*3, 3*4 ,3*5 hasta que el valor pase de 200 para comprobar si en algún momento alguna operación es igual a 200, lo puedes hacer de una manera más fácil y eficiente.
Divides 200/3.  Si dividiendo 200/3 la division no es exacta, no son múltiplos. Otra manera de expresar esto es: Si dividiendo 200/3 el resto de la divison no es igual a 0, entonces no es múltiplo.

Entonces para comprobar si un número es múltiplo de otro, solo necesitas hacer una division y comprobar el resto.

Una vez comprobado, si el resto es 0, lo muestras en pantalla.

En programación se suele utilizar el operador módulo % para obtener el resto de una division.

Ese operador no hace un porcentaje como estamos acostumbrados en matemáticas. En programación te da el resto. Se usa de la siguiente manera:

RestoDeLaDivision = m % n;

En tu ejercicio harías:

RestoDeDivison = (m*n) % n;

if (Resto de la división == 0)
{
Muestra en pantalla  m*n;
}

En ese caso te mostraría solo 1 número por pantalla en el caso de que este fuese múltiplo.
Para poder mostrar más múltiplos comunes, deberas sumarle 1 a m para que se compruebe el siguiente múltiplo y si este es comun comprobando el resto. Por lo que tendras que meterlos en un bucle.

Lo normal es que solo se busque un número determinado de números comunes, por ejemplo los 10 primeros y no dejar un bucle infinito en pantalla mostrando números cada vez más grandes hasta que te veas forzado a cerrarlo para que no pete el ordenador.

A parte los tipos de datos tienen unos bytes dsterminados de tamaño, asique una vez te pases de ese tamaño se dará la vuelta a los numeros y se empezará a comprobar números negativos. Por lo que deberías utilizar varias cosas extra para evitarlo.

Lo primero sería indicar un tipo de dato que no admita números negativos para guardar el resultado antes de mostrarlo. Siendo este el tipo de dato estandar más largo para almacenar números enteros. En caso de C o C++ unsigned long long nombreDeLaVariable =n*m;

Lo segundo dar tiempo al que observe el programa para ver los resultados por pantalla
Esto lo puedes hacer con la funcion Sleep(milisegundos); incluyendo <windows.h> y siendo milisegundos el tiempo que quieres que se detenga el programa en el bucle. Por ejemplo Sleep(500); para parar medio segundo trás mostrar un resultado.

debes meter todo eso dentro de un bucle while que segun tu pides es infinito.
Lo haces así:
while (1)
{
Aqui metes el codigo que quieras que se repita infinitas veces.
Mete tambien el Sleep(500); dentro del ifpara que no sea un caos de imprimir numeros sin parar.
}

Estoy seguro de que no te piden este tipo de programa. Te has confundido al leer, o al escribir el título. O tu profesor se confundio.

El título del hilo que has creado es de libre interpretación al no situar comas. Das pocos detalles, no has intentado hacer nada poe tu cuenta,
No se sabe si pides:
(n/n) y (m*n)
(n+m) * n
(n*m) y (n*m)
n y (m*n)


Pd: Mi codigo no te resuelve el problema, solo te explica lo necesario para que tu sepas como hacerlo con ejemplos. Piensa bien en que se te pide.  Y hazlo por tu cuenta. Cuando no sepas hacer algo, consultas el post. Antes de nada mira bien que es lo que se te pide y las comas que faltan en el título. Y si como dice el compañero de arriba no te piden el máximo común divisor, o como pienso yo, no te piden una funcion que calcule múltiplos a partir del mínimo común múltiplo. Puedes usar el algoritmo de nuneros primos para resolverlo, o utilizar uno propio haciendo 2 o 3 comprobaciones.

Si fue el profesor quien se equivoco, yo que haría un menu que te de a elegir entre 4 llamadas a funciones.
Una para el maximo comun divisor, otra para todos los divisores comunes, otra para el minimo comun múltiplo y otra para todos los múltiplos comunes.

Si no le haces nada porque no "entendias" no creo que le haga mucha gracia, ni a ti cuando el te de las notas por no esforzarte.

Tampoco dices en que lenguaje es.

Mira libros de programacion por tu cuenta y cursos online.
   


#2380
No puedes comparar una piedra puesta encima de otra a ojo con un edificio hueco por dentro con una altura que no ves desde el suelo, ascensores, bigas a cientos de metros de profuncidad y estructuras que se balancean a propósito de forma controlada teniendo en cuenta la elasticidad de los materiales para resistir terremotos y huracanes. Ni el coste, ni el tiempo empleado, ni nada.

Ahora que ya empezó la cuenta atrás es difícil parar el reloj, coincido contigo en practicamente todo.
Lo único en lo que discrepo es en que prefiero pagar 80$ por un móvil chino de fàbrica lleno de malware que pagar 500$ aquí por otro malware que voy a tener que desinstalar de todas formas. No les interesa mi vida privada y les vendo encantado los datos que van a manejar como un número más a cambio de no pagar 420$ más de lo que debería porque le pintaran una manzana a la carcasa.