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

#1161
Java / Re: Ejercicios de Interesantes
25 Junio 2016, 15:48 PM
El test de primalidad es bueno para comenzar se necesitan algunas operaciones de exponenciacion modular y solo necesitas comprobar que los resultados ahi expuestos sean 1 con 4-5 numeros distintos.

https://en.m.wikipedia.org/wiki/Primality_test#Probabilistic_tests
#1162
Dudas Generales / Re: Dudas iphone
25 Junio 2016, 15:42 PM
Para el iphone yo usaba el programa Wonder share Dr.Phone for IOS.

El cual me ayuba a sacar mas imagenas del backup

Saludos
#1163
Java / Re: Ejercicios de Interesantes
25 Junio 2016, 12:20 PM
Hola hace unas semanas abri un topic del tema.

Numeros Primos

Se mencionan metodos matematicos para determinar si un número es probable primo.

He probado varios de ellos y son muchisimo mas rapidos que los metodos por fuerza bruta.

Yo en lo personal antes realizaba ese metodo por fuerza bruta pero solo lo realizaba contra una lista previa de numeros primos, el detalle que ai.quieres determinar al 100% de seguridad que X numero es primo tenias que tener una lista de al menos todos los numeros primos menores que la raiz de X

Y si el numero era muyyyy grande tarabas una eternidad en comprobarlo. Y es ahi donde entrar loa metodos de probables primoa donde solo tienes que realizar unas cuantas operaciones modulo (unas 5) y una que otra comprobacion adicional

Saludos
#1164
Desarrollo Web / Re: Consejo para una Web.
25 Junio 2016, 02:04 AM
Hola, es un hosting con PHP y MYSQL basico  :xD Y por lo demas yo programe todo desde 0, entonces es una App Casera o mejor dicho artesanal xD jajajajaja

Saludos!
#1165
El codigo orignal viene de que es posible usar el operador igual para copiar una estructura completa de una variable A a una variable B ejemplo:

#include <stdio.h>
#include <string.h>


struct X {
int A;
int B;
int C;
};

int main() {
struct X variable1, variable2;
variable1.A = 1;
variable1.B = 10;
variable1.C = 100;
variable2 = variable1;
printf("%d,%d,%d\n",variable2.A,variable2.B,variable2.C);
return 0;
}


salida:

1,10,100

La linea responsable por la copia completa del bloque de memoria de la variable1 a la variable2 es:

variable2 = variable1;

Y de ahi el codigo mostrado en los post anteriores.

lo que tu realizaste fue lo mismo pero  solo con el tamaño de un apuntador.

Saludos!
#1166
*(char **)&cadena2 = *(char **)&cadena1;

;-) ;-) ;-) ;-)

Esa si que no me la sabia, hay que ver que codigo de ASM produce para ver si hay diferencia.

Aun asi ese ejemplo solo copia 4 u 8 bytes no? Digo por el tamaño de un apuntador

Deja hago pruebas y lo veo.

Saludos!




Efectivamente solo copia bytes igual al tamaño de un apuntador:

#include <stdio.h>
#include <string.h>

int main() {
char cadena1[16];
char cadena2[16];

memset(cadena1,'A',15);
*(char **)&cadena2 = *(char **)&cadena1;

fprintf(stdout, "%s\n", cadena1);
fprintf(stdout, "%s\n", cadena2);
fputc('\n', stdout);
fprintf(stdout, "%p\n", cadena1);
fprintf(stdout, "%p\n", cadena2);

return 0;
}


Salida

AAAAAAAAAAAAAAA
AAAAAAAA


000000000060FE40
000000000060FE30

#1167
El libro menciona una funcion al estilo de memcpy llamada blockmove

#include <stdio.h>
#include <string.h>

#define BLOCKSIZE 256
void blockmove(dest,src,count)
register unsigned char *dest,*src;
register unsigned count;
{
struct mblock{
char a[BLOCKSIZE];
};
while(count >= BLOCKSIZE){
*(struct mblock*)dest = *(struct mblock*)src;
dest+=BLOCKSIZE;
src+=BLOCKSIZE;
count -= BLOCKSIZE;
}
while(count--)
*dest++ = *src++;
}

int main() {
char A[1048],B[1048];
memset(B,'C',1048-1);
blockmove(A,B,1048);
printf("%s\n",A);
    return 0;
}


Saludos!
#1168
El router del ISP claro. Si el usuario tiene otro router solo podremos saber la mac de ese router. Pero no la de las computadoras que esten detras del router del usuario.

Saludos.
#1169
Hola no he encontrado el erro sin embargo cambie la forma de acceder a los apuntadores y funciono bien, aun asi estoy intrigado.

Te dejo el codigo.

void funcion(char ***arg1, char *arg2, char *arg3){
*arg1= (char **)malloc(2*(sizeof(char *)));
arg1[0][0] = (char *)malloc(5*sizeof(char)); //"HOLA\0"
arg1[0][1] = (char *)malloc(6*sizeof(char)); //"ADIOS\0"
copia(arg1[0][0],arg2);
copia(arg1[0][1],arg3);
}

int main(){
char **ptr;
funcion(&ptr,"HOLA\0", "ADIOS\0");
printf("%s\n",ptr[0]);
printf("%s\n",ptr[1]);
}


Saludos!
#1170
Hola.

Te dejo unos videos que he hecho al respecto:

[youtube=640,360]https://www.youtube.com/watch?v=8wKRS9TGplQ[/youtube]

[youtube=640,360]https://www.youtube.com/watch?v=DOqtEMW1Nqk[/youtube]

Saludos!