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 - AlbertoBSD

#502
Hola que tal, estos problemas tienen trampa, generalmente si los tratas de resolver de forma iterativa (Simulando con while la cantidad de dias transcurridos haciendo las operaciones de suma y resta del avance diario) tarda mucho, bueno si y no, con la velocidad actual de las computadoras no se siente, pero este tipo de problemas es para concursos donde miden el tiempo de uso del CPU y la cantidad de tiempo que tarda el programa en responder.

Por que la verdad es muy distinto, realizar un simple par de sumas, restas y una division a realizar un ciclo while con 1000000 repeticiones de sumas y restas.

La solución a este problema es de forma Matemática.

Ejemplo, si te dicen que Sube S cantidad de metros por dia, y de noche baja R cantidad.
En un ciclo completo cuantos metros T totales realmente sube?

T = S - R

Entonces tenemos que por dia avanza T metros. Entonces el minimo numero de D dias para completar una distancia P es de

D = P /T

D= P / (S-R)

Puede darnos un numero Decimal ? SI

Solo necesitamos la parte entera de ese numero, es decir redondeamos hacia el Entero mas Bajo

Por ejemplo un resultado de 9.9 se redondea a 9.

Saludos
#503
Programación C/C++ / Re: como ofuscar código
28 Octubre 2018, 08:35 AM
Para que ofuscar el codigo, cualquier que pueda decompilar el programa podra obtener las llaves, yo en lo personal prefiria utilizar algun sistema de cifrado asimetrico. pero no se cual sea el fin de tu programa.
#504
Foro Libre / Plan de Ahorro infalible
16 Agosto 2018, 23:44 PM
Plan de Ahorro infalible

Sea la moneda que usen en tu pais y estes donde estes puede ser desde 5 Dolares semanales, 5 Euros, 100 Pesos Mexicanos etc..

El unico punto es que tiene que ser SEMANAL y CONSTANTE

La mayoría de los países, si no es que todos, tiene un sistema de inversion en instrumentos Gubernamentales. En algunos casos esta accesible al publico en general.

Nos vamos a concentrar en instrumentos de inversion de liquides mensual.
Estos instrumentos pagan un %de interés al final del periodo de inversion y esta es la Ganancia

El ahorro es para aprovechar la ventaja del Interés compuesto

1ra Semana ahorramos la cantidad elegida en instrumentos a un mes
2da Semana ahorramos la cantidad elegida en instrumentos a un mes
3ra Semana ahorramos la cantidad elegida en instrumentos a un mes
4ta Semana ahorramos la cantidad elegida en instrumentos a un mes
5ta Semana ahorramos la cantidad elegida MAS la cantidad que ahorramos la primera semana ya que esta ya venció y se reinvierte
6ta Semana ahorramos la cantidad elegida MAS la cantidad que ahorramos la segunda semana ya que esta ya venció y se reinvierte
...

Asi sucecivamente

El patron de ahorro anteriormente descrito nos presenta una Liquides Semanal (Apartir del primer mes) hasta por 1/4 parte del total de tu ahorro cada una de las 4 semanas

Ejemplo para una persona de 20 años en mexico ahorrando 200 Pesos Mexicanos (10 USD) a la semana
- Se considera un aumento de ahorro de +25 pesos semanales año, esto para compensar la inflación y ajustando a los aumentos de sueldo que puede tener la persona año con año. Esto es 200 el semanales el primer año, 225 semanales el segundo año, 250 semanales el tercer año y asi sucesivamente.
- Se considera una taza de interes Fija al 7.75% (Ultima taza registrada en los CETES de vencimiento mensual)
- Se considera que las condiciones macroeconomicas del país no varían mucho a lo largo de los años.

A continuation se deja una tabla con la edad de la persona, el interés generado Semanalmente, la suma del interés en 4 Semanas (Un mes) y la cantidad total ahorrada en el periodo de 4 Semanas




El saldo mostrado es al finalizar el año marcado.
#505
No creo que exista algo ya hecho que implique lo que mencionas un comprador y de 1 a N vendedores diferentes.

Se tiene que programar de forma directa ya que es algo muy especifico.

Saludos
#506
Una no es C, es C++ por el codigo que estas utlizando.

cin>>Dan;

La variable Dan es es char (Un solo caracter) pero para almacenar un nombre  completo deberia de ser una de 3, Un arreglo char, un apuntador correctamente inicializado o un string

Código (cpp) [Seleccionar]

char Dan[20];


Código (cpp) [Seleccionar]

char *Dan; // Aqui tambien necestias inicializar el apuntador a un tamaño adecuado


Código (cpp) [Seleccionar]

string Dan;


Saludos
#507
Pense que si lo interpretaba como Octal.

Muchas gracias Engel, con eso quedo, eres una maquina!!  ;-) ;-) ;-)
#508
Migrar una funcion de un lenguaje a otro no debería de ser problema, sin embargo estoy algo atorado con los resultado que me arroja una vez migrado.

En teoria deberia de ser el mismo resultado en ambos casos, sin embargo no es asi.

Codigo en C (Original sin depuracion)

#include<stdio.h>

unsigned short CRC(unsigned char *s, int len, unsigned short crcval);

int main() {
unsigned char *test = "\x01\x55\x00\x00";
printf("CRC: %u\n",CRC(test,4,0));
return 0;
}

unsigned short CRC(unsigned char *s, int len, unsigned short crcval) {
register unsigned c,q;
for (; len; len--) {
c = *s++;
q = (crcval ^ c) & 017;
crcval = (crcval >> 4) ^ (q * 010201);
q = (crcval ^ (c >> 4)) & 017;
crcval = (crcval >> 4) ^ (q * 010201);
}
return (crcval);
}


Codigo en C (Con depuracion)


#include<stdio.h>

unsigned short CRC(unsigned char *s, int len, unsigned short crcval);

int main() {
unsigned char *test = "\x01\x55\x00\x00";
printf("CRC: %u\n",CRC(test,4,0));
return 0;
}

unsigned short CRC(unsigned char *s, int len, unsigned short crcval) {
register unsigned c,q;
printf("Depurando CRC\n");
for (; len; len--) {
printf("len: %i\n",len);
c = *s++;
printf("c: %u\n",c);
q = (crcval ^ c) & 017;
printf("q: %u\n",q);
crcval = (crcval >> 4) ^ (q * 010201);
printf("crcval: %u\n",crcval);
q = (crcval ^ (c >> 4)) & 017;
printf("q: %u\n",q);
crcval = (crcval >> 4) ^ (q * 010201);
printf("crcval: %u\n",crcval);
}
return (crcval);


Salida del codigo en C para el ejemplo Dado:


Depurando CRC
len: 4
c: 1
q: 1
crcval: 4225
q: 1
crcval: 4489
len: 3
c: 85
q: 12
crcval: 50964
q: 1
crcval: 7408
len: 2
c: 0
q: 0
crcval: 463
q: 15
crcval: 63379
len: 1
c: 0
q: 3
crcval: 16122
q: 10
crcval: 42725
CRC: 42725


Codigo en C#

Código (csharp) [Seleccionar]

static void Main(string[] args)
{
byte[] test = new byte[] { 0x01,0x55,0x00,0x00 };
Console.WriteLine("CRC: "+CRC(test,test.Length,0));
}

public static ushort CRC(byte[] s,int len,ushort crcval) {
ulong c, q;
uint i = 0;
while(len > 0)
{
Console.WriteLine("len: "+len);
c = s[i];
Console.WriteLine("c: " + c);
q = (crcval ^ c) & 017;
Console.WriteLine("q: " + q);
crcval = (ushort)(((uint)crcval >> 4) ^ (q * 010201));
Console.WriteLine("crcval: " + crcval);
q = (crcval ^ (c >> 4)) & 017;
Console.WriteLine("q: " + q);
crcval = (ushort)(((uint)crcval >> 4) ^ (q * 010201));
Console.WriteLine("crcval: " + crcval);
len--;
i++;
}
return crcval;
}



Salida del programa en C#


len: 4
c: 1
q: 1
crcval: 10201
q: 17
crcval: 42772
len: 3
c: 85
q: 1
crcval: 11688
q: 1
crcval: 9475
len: 2
c: 0
q: 1
crcval: 9609
q: 1
crcval: 9601
len: 1
c: 0
q: 1
crcval: 9601
q: 1
crcval: 9601
9601


El problema creo que se encuentra en la conversion de variables de 16 bits a 32 bits, pero e tratado de reasignar los valores con ANDS ( & 0xffff) para que queden de 16 bits y ni aun asi funciona.

Alguna ayuda.

Saludos!
#509
Asi es para solucionarlo tuve que modificar el cable y agregar otra terminal RS232 con su respectivo adaptador USB para poder leerlo desde la laptop.

Quedo funcionando perfectamente ahora distingo la communication de cada dispositivo.

Saludos!
#510
No creo que se viable. Necesitas alguna otra tecnología diferente de las Wireless 802.11 a/b/g/n

Estas son solo para espacios muy reducidos y se ven seriamente afectadas por la distancia y obstáculos.

Se puede realizar una extension de la distancia, si tines 2 antenas direccionales apuntadas una a la otra, con eso si podrías lograr mas de 100 metros tal vez unos 500 metros o algo asi pero no kilómetros.