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

#361
Está pagina estaudinense, es la que usan los alumnos de allí para practicar para las olimpiadas de progamación. Son problemas muy interesantes:
http://cerberus.delos.com:790/usacogate

Tienes que subir el código del problema, allí un juez automático comprueba que todo va bien. El juez automático lo que hace es compilar el progama y meterles algunos casos de prueba para ver si da bien el resultado. Puede dar los siguientes errores:

- Error de compilación.
- Error de ejecución (el SO aborta el progama, mayormente por un mal uso de punteros entre otras cosas).
- Respuesta incorrecta (el resultado no coincide con el que él tiene).
- Sobrepasado el tiempo de ejecución.

Suponeos que teneís que calcular el máximo de un conjunto de números. El juez compila el código y le mete la siguiente entrada al progama:
Citar1 4 2 3 6 5 3 4 8 3 1 0 4

La salida que debería dar tu progama es:
Citar8

Ya que es el número máximo.

PD: Decir que la página no está orientada para principiantes, debes tener un mínimo de conocimiento para poder hacer algun problemilla ;)
#362
Cita de: vangodp en 14 Enero 2014, 01:43 AM
As veces ni miro si tiene traducción por que lo que traduce la mayoría de las paginas son los menús y todo ese rollo, luego el contenido sigue en ingles.
Por lo que se esta esta completita ^^
Gracias por la info.
Bueno es una wiki, puedes darle a "Editar" y traducirles algunas cosas.

Yo he traducido el menú de threads ^^
#363
Cita de: vangodp en 13 Enero 2014, 00:32 AMSi te da bien el ingles esta pagina será tu mejor amiga ^^
http://en.cppreference.com/w/
Hay traducción de la página:
http://es.cppreference.com/

Aunque no todo, pero puedes ayudarles a traducir lo que falta ^^
#364
Cita de: MatewElHacker en 12 Enero 2014, 01:14 AMNo es algo enorme estoy hablando de un nucleo desde cero un entorno grafico aceptable y poder crear carpetas abrir crear y borrar archivos instalar programas etc.
¿Y eso no es algo enorme? Además tendrás que hacer el entorno gráfico desde cero xD.
#365
Código (cpp) [Seleccionar]
ref class Diccionario

Cambialo por:

Código (cpp) [Seleccionar]
class Diccionario
#366
Yo no estoy molesto por nada ^^
#367
Cita de: vangodp en 10 Enero 2014, 20:26 PM
¡Hola amchacom! Tienes alguna pagina buena y facil para dumys como yo jaja sobre eso que comentas "hilos"?
Pues no he tenido ninguna favorita, todo lo que he aprendido ha sido racaneando de varios lugares.

Muchas páginas harán tutoriales con las pthread, pero yo os recomiendo que empezeís con las clases que nos da el nuevo C++11:
http://en.cppreference.com/w/cpp/thread
#368
A ver, cuanto te hice esa respuesta lo que quería transmitirte esque no te preocuparas por detalles muy rebuscados porque la ganancia es mínima y la posibilidad de provocar bugs es muy alta. Pero tampoco es llegar al otro extremo.

Lo más importante es el algoritmo, pero usando el mismo algoritmo, C/C++ son más rapidos que Java al estar compilados en código maquina. No hace falta que lo diga yo, puedes medir que tarda en ejecutarse el mismo código.

Y entre C y C++, generalmente es más rápido C porque tienes más control sobre el código. En C++ con los encapsulamientos y tal olvidas el coste que tiene algunas operaciones (por ejemplo la clase string, que es muy cómoda pero te incita a hacer muchas asignaciones, que en realidad son operaciones costosas en un array dinámico).

Lo ideal para máxima eficiencia es C con las partes más duras hechas en ensamblador. Pero eso muchas veces es casi-innecesario con los procesadores de hoy en día. Para usos militares probablemente se use C y a correr.

Cita de: SARGE553413 en 10 Enero 2014, 16:35 PM1 - A parte del hecho de que lenguajes como C,C++ al compilarse pasan a lenguaje máquina, ¿Su "compelgidad extra" puede aportar alguna mejora significativa del rendimiento con respecto a otros lenguajes de mas alto nivel como Java?
Es decir, si no podemos optimizar el código de C++ utilizando todas su posibilidades de "mas bajo nivel", porque el compilador ya optimiza hasta tal punto que (casi) no se puede mejorar, no es lo mismo hacer el programa en otro lenguaje de mas alto nivel? Porque el algoritmo va a se el mismo para los dos...
Porque lo que hace el compilador de C++, lo puede hacer el de java, y lo puede hacer el de cualquier otro lenguaje (compilado), ¿cierto?
El compilador optimiza las cosas evidentes. Aquí hay una lista de las que hace el gcc:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.htmlt
#369
CitarPero tengo entendido que esta libreria solo me da herramientas para llevar a cabo la parte gráfica de mi juego, pero por ejemplo, cómo puedo aprender la forma correcta de ejercer una animación eficiente en mi juego (con animación me refiero, a que mi personaje tenga una imagen distinta para atacar, caminar, saltar, recibir daño, etc). Claro, es parte de lo que yo mismo debo aprender a programar como programador, de hecho, actualmente tengo muchas ideas en mi cabeza de como hacerlo, pero me gustaría algun documento que me enseñe la forma correcta, para partir bien desde el comienzo y poder ir complementándolo luego, evitando un mal código.
Aprendetelo por tu cuenta, es mi consejo xD.

Eso si, es muy importante que aprendas a usar hilos. Para las animaciones son casi obligatorios.
#370
Citarint i = *((int*) argument);
argument es un puntero void, si quiero guardarlo en un entero primero tengo que hacerle un cast a puntero int* y después obtener el valor del entero con un *.

Para profundizar más, mirate explicaciones de punteros en C. Por cierto, son muy importantes.

CitarP = (int*)malloc(sizeof(int));

malloc reserva memoria de forma dinamica, he aquí una explicación de memoria dinámica:
http://foro.elhacker.net/programacion_cc/duda_memoria_dinamica_en_c-t391783.0.html

Ahí uso el new de C++, pero es lo mismo. Después de reservar la memoria guardo un puntero en P, previamente hay que hacer un cast a (int*) ya que P es un puntero a entero.

Citar*P = i;

P es un puntero, para cambiarle el valor a su contenido tengo que usar el operador *