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

#951
¿Controlas de programación web? Hazte una web, con login usuarios, y lo que tú quieras. A partir de ahí, irás viendo problemas que surgen. Además, buscando vulnerabilidades por ahí, entenderás mejor por qué ocurren.

¿No controlas de programación web? Es difícil entender seguridad de algo si no sabes qué es o cómo está hecho ese algo.
#952
Foro Libre / Re: diamantes de mirra
29 Octubre 2016, 12:00 PM
Cita de: BlackM4ster en 29 Octubre 2016, 01:04 AM
@Ivancea
Desconocía ese método, si alguna vez tengo el honor de recibirte en mi casa me gustaría que me lo enseñases.
Un saludo

Si algún día tengo esa suerte, me llevaré a tu casa una maza de pura fibra de carbono.Espero que vivas en un bajo, para así poder recuperar fácilmente los diamantes de tus ventanas.
#953
Foro Libre / Re: diamantes de mirra
28 Octubre 2016, 23:53 PM
Hay otro método. Si golpeas con un objeto pesado y tenaz y la suficiente fuerza una ventana (el vidrio), obtendrás un montón de diamantes. Quedarán algunos trozos grandes, que serán solo vidrio.

La explicación de esto es que la fuerza del golpe desplaza y apresiona los átomos de carbono y los separa de los de silicio. Tras esto, los átomos de carbono se juntan en las grietas formando pequeños diamantes, o polvo de diamante.

Es un proceso que se descubrió hace mucho, pero que las grandes productoras de diamantes tratan de ocultar por su sencillez, que les haría perder ventas.


Si no lo crees, solo prueba. A lo mejor la primera ventana no te da buenos resultados, la formación de diamantes es un proceso aleatorio en estos casos. Pero a la cuarta o quinta ventana probablemente lo logres.
Para probar, puedes hacerlo con un martillo, o con una piedra mismo. Si la piedra tiene una alta concentración de carbono, las probabilidades de que esto ocurra aumentan.

No te quedes insatisfecho con las primeras pruebas. A veces, hay que buscar bien entre los restos del vidrio para encontrar los diamantes generados.
#954
Si la compilación de los .o es correcta, puede deberse al directorio en el que se ejecuta el comando. Ten en cuenta que los .c se pasan como rutas absolutas mientras que los .o, como rutas relativas.

Aunque dudo que sea por eso.

¿Tiene permisos de escritura?
¿Puedes crearlos manualmente?
¿Es el primer proyecto que compilas?
#955
Ambas sirven, con unas pequeñas pautas:

Si no vas a usar punteros de ningún tipo dentro de la estructura, entonces la primera sirve bien.
Si utilizas algún puntero, la primera será incorrecta, pues no copiarás el contenido del puntero. En tal caso, tendrías que hacer una copia manual de lo apuntado por el puntero (si así lo requiere el programa).

Por cierto, en el código, aveces utilizas "struct s_nodo", a veces "struct s_nodo*", a veces "t_nodo" y a veces "t_nodo*". Ten cuidadado al andar mezclando estas estructuras. Yo de ti, ponía:
struct s_nodo
{
   struct s_persona prs;
   struct s_nodo *sig;
};
typedef struct s_nodo t_nodo;

Sin puntero en t_nodo. Ten en cuenta que tPers no es un puntero tampoco, así que o pones ambos como punteros, o ninguno. Sinó queda incongruente.
Además, se supone que el uso del typedef ahí es para evitar utilizar "struct s_nodo".
#956
C# trabaja sobre la maquinavirtual de :NET. No es un lenguaje compilado. No está pensado para acceder a la memoria. La memoria no la manejas tú, sino que la maneja la máquina virtual.
Que yo sepa, puedes ver la dirección de memoria de variables (En un entorno unsafe).
Unafunción, en .NET, según tengo entendido, puede o no estar en la memoria ensamblado.

Sea lo que sea lo que buscas, no olvides que C# no es compilado.
#957
Cita de: dato000 en 15 Octubre 2016, 21:39 PM
Eso es porque nunca te ha tocado usar Fortran, que pesadilla, o que decepción python, no sirve para nada.

He usado FORTRAN, y es un lenguaje como otro cualquiera ._.
Y Python, pues es un lenguaje abstante especial. El tema de controlar los ámbitos con identación es fantástico y obliga a identar bien. Es como si a otro lenguaje le quitas las llaves y los BEGIN/END. Queda identado, igual que Python. Y por linea de comandos, es bastante veloz para necesidades puntuales (sea cual sea el lenguaje que manejes).
#958
Cita de: dato000 en 15 Octubre 2016, 14:51 PM
La sintaxis entre C# con Basic es terriblemente diferente, tanto que cambia completamente el esquema de trabajo, odio basic con todas mis fuerzas, es difuso y actualmente las librerias .NET no ofrecen un total adaptabilidad a los nuevos paradigmas de trabajo, un ejemplo perfecto es MVC, no conozco a nadie, repito, a nadie que use esta tecnologia con Basic, simplemente porque su trabajo se volveria una pesadilla al usar ese lenguaje, lo mismo ocurre al usar otros lenguajes interpretados que pueden soportar .NET como F# o Visual C++, su uso solo esta limitado a ciertas tecnologias y ambientes de desarrollo.

No digo que sea diferente. Digo que ambos terminan en CIL, para .NET. Con ambos se puede hacer lo mismo, salvando la diferente sintaxis y diferentes estructuras que tiene cada uno.
Cada lenguaje en su momento, y si alguien prefiere uno frente a otro, tendrá sus razones. Ninngún lenguaje es 'malo', simplemente tienen sus limitaciones y sus ventajas. Y cada uno le sabrá sacar lo mejor de cada parte.
#959
Programación C/C++ / Re: Programa con letras c++
15 Octubre 2016, 13:54 PM
Los caracteres, los char, se almacenan como datos numéricos. Normalmente, en C++, en código Ascii: http://ascii.cl/es/

En C++, si haces:
Código (cpp) [Seleccionar]
cout << (int)'a';
Verás el valor de la letra 'a' en ascii.

En programación, todo son datos numéricos. Un int normalmente es un número de 32 bits, 4 bytes. Un short, de 16 bits, 2 bytes. Un char, de 8 bits, 1 byte. Realmente es solo un número.
La razón de que al sacarlo por pantalla se vea una letra, es que cout,cuando le pasas un caracter, en vez de mostrar el número que le corresponde (que sería lo normal), hace una excepción y te muestra el caracter que representa.

Dicho esto, solo falta hacer cálculos numéricos. Como un char en C++ es un número, puedes hacer:
Código (cpp) [Seleccionar]
char nuevoChar = 'g' + 3;
nuevoChar = nuevoChar - 3;

Así que, solo tendrásque comprobar si es mayor que 'z'.
#960
Bien, un detalle.

Código (cpp) [Seleccionar]
void Print(){
if(first == NULL) return;
curr = first;
while( curr  )
{
cout << "Value is : "<< curr->date<<endl;
curr = curr->next;
}
}

Al acabar esa función, curr queda siendo igual a NULL. Eso te dará un error si luego tratas de hacer un insert, al tratar de hacer curr->next. Utiliza una variable a parte:
Código (cpp) [Seleccionar]
void Print(){
if(first == NULL) return;
Node<T> *temp = first;
while( temp  )
{
cout << "Value is : "<< temp->date<<endl;
temp = temp->next;
}
}

Y como dato, el if lo puedesobviar si quieres (si es NULL, simplemente no entrará al while)
Código (cpp) [Seleccionar]
void Print(){
Node<T> *temp = first;
while( temp  )
{
cout << "Value is : "<< temp->date<<endl;
temp = temp->next;
}
}


Citartoma el first pero en la funcion Insert la que se lleno fue curr por que first tiene el link de first, alguien podria explicarme eso por favor.
No se si estoy entendiendo muy bien. En la función Print, quieres recorrer toda la lista. Así que, empiezas desde el primer elemento (first), y vas avanzando al siguiente (temp->next) hasta que sea NULL (final de la lista).

Perdona si no entendí bien la pregunta.