Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ganar Dinero,siendo Un Programador De Videojuegos

Iniciado por Guirone, 08 de Diciembre de 2005, 04:28:31 PM

« anterior - próximo »

CoLSoN2

 Yo la verdad es que siempre me ha tirado para atrás los trabajos de programador, aunque es lo que me gusta, por este tipo de entrevistas. No creo que se me dieran muy bien, la verdad. Yo cuando programo siempre tengo a mano referencias, compilo continuamente cuando no me acuerdo si cierta cosa puede hacerse en C++ o no, etc. Y además detesto que alguien esté mirando mientras trabajo, así que tengo todas las papeletas para hacerlo fatal XD
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Ruben

 Hi,
Citar
NB: Lo de usar el carácter de terminación de la cadena, según el tío que hacía la entrevista, "no vale". Pero puso cara de sorpresa biggrin.gif
La verdad es que esa solucion es muy chula, usando todos los recursos de los que dispones  :rolleyes: . Por cierto la del xor he tenido que buscarla por ahi por que no caia..... <_<  Ahora si me preguntan las distintas formas de invertir una cadena en una entrevista de trabajo o en un examen en su defecto se lo voi a clavar  (ole)

Citar
String.Invert();
:D  :D

Citar
Yo la verdad es que siempre me ha tirado para atrás los trabajos de programador, aunque es lo que me gusta, por este tipo de entrevistas. No creo que se me dieran muy bien, la verdad. Yo cuando programo siempre tengo a mano referencias, compilo continuamente cuando no me acuerdo si cierta cosa puede hacerse en C++ o no, etc. Y además detesto que alguien esté mirando mientras trabajo, así que tengo todas las papeletas para hacerlo fatal XD
A mi me recuerdan a los examenes de ciertas asignaturas de la carrera. A mi tampoco me gustan y tampoco se me dan excesivamente bien por que yo soi de los que tienen mil libros, webs, etc... y estoy todo el dia consultando. Pero si te lo preparas, dentro de lo que se puede preparar una entrevista de trabajo, creo que puede ser sencillo y entretenido de hacer. Por lo menos a mi esta clase de problemas(p.e: la inversion de una cadena sin usar variables auxiliares) me parecen muy divertidos  :P

Un saludo,
Rubén

zupervaca

 ¿en el codigo que has puesto "printf" es un puntero a funcion o es la funcion de toda la vida?, por que esa linea no me cuadra

editado: es que no se ve ni la declaracion de ella <_<
editado: segun lo que veo puede ser un puntero a la cadena, pero es que esta en contra de todo el usar un nombre de variable como esa

Jikan

 

        Yo creo que printf no tiene nada que ver con el printf de la librería estandar. El código está sacado de una de las preguntas del test de n-space. printf debe ser una variable declarada en otra parte del programa.


        String.Invert() no vale :D. Había que hacerlo en C puro sin usar librería estandar.

        La mejor forma de entrevistar es hacer preguntas abiertas (no muy concretas, sino por ejemplo, "vamos a ver esto del producto escalar" ó bien "vamos a comentar sobre la herencia en C++"). También (previo aviso al candidato para evitarle un ataque de nervios) hacer una pregunta muy difícil con el objetivo de ver cómo se desenvuelve, cómo reacciona, qué preguntas hace. Por ejemplo: "vamos a diseñar un sistema de visibilidad de un engine 3D". O bien "diseña el algoritmo de visibilidad en un BSP usando coordenadas de Plücker" (ja ja ja).

        Preguntas del tipo ¿Cómo abordarías el estudio de un código fuente muy extenso?, ¿Cómo optimizarías un programa completo? son muy interesantes.

        Si es que los detallitos de C++ se los puedes enseñar en dos ratos :D. Decirle a alguien que programe una aplicación es absurdo.

        NB: Supongo que antes de invertir la cadena a alguien se le habrá ocurrido comprobar si el puntero es nulo...  ;)  

zupervaca

 
CitarYo creo que printf no tiene nada que ver con el printf de la librería estandar. El código está sacado de una de las preguntas del test de n-space. printf debe ser una variable declarada en otra parte del programa.
pues a mi me ponen ese codigo delante y me levanto diciendo que no tienen ni idea de lo que es claridad de codigo ya que una de las leyes basicas es que nunca se deben de usar nombres de variables que puedan crear confunsion

seryu

Cita de: "Jikan"Yo creo que printf no tiene nada que ver con el printf de la librería estandar. El código está sacado de una de las preguntas del test de n-space. printf debe ser una variable declarada en otra parte del programa.


        String.Invert() no vale :D. Había que hacerlo en C puro sin usar librería estandar.

        La mejor forma de entrevistar es hacer preguntas abiertas (no muy concretas, sino por ejemplo, "vamos a ver esto del producto escalar" ó bien "vamos a comentar sobre la herencia en C++"). También (previo aviso al candidato para evitarle un ataque de nervios) hacer una pregunta muy difícil con el objetivo de ver cómo se desenvuelve, cómo reacciona, qué preguntas hace. Por ejemplo: "vamos a diseñar un sistema de visibilidad de un engine 3D". O bien "diseña el algoritmo de visibilidad en un BSP usando coordenadas de Plücker" (ja ja ja).

        Preguntas del tipo ¿Cómo abordarías el estudio de un código fuente muy extenso?, ¿Cómo optimizarías un programa completo? son muy interesantes.

        Si es que los detallitos de C++ se los puedes enseñar en dos ratos :D. Decirle a alguien que programe una aplicación es absurdo.

        NB: Supongo que antes de invertir la cadena a alguien se le habrá ocurrido comprobar si el puntero es nulo...  ;)
Tío, que razón tienes.

Deberíamos enmarcar este post en Stratos.

garrofi

 
Cita de: "Jikan"
Citar
What does this code block do?

{
    u_int *source, *end;
    u_int addr_printf, addr_scePrintf;
    int    counter = 0;
    
    addr_printf     = ((u_int) printf & 0xFFFFFF) / 4;
    addr_scePrintf  = ((u_int) scePrintf & 0xFFFFFF) / 4;
    
    source  = (u_int *) sceGsSyncPath;
    end     = source + 195;
    
    while (source < end)
    {
        if ((*source & 0xFF000000) == 0x0C000000)
        {
            // Function call...
            if ((*source & 0xFFFFFF) == addr_printf)
            {            
                *source = 0x0C000000 | addr_scePrintf;
                counter++;
            }
        }
       
        source++;
    }
}

 
curiosa funcion. La funcion se encarga de cambiar  todas las llamadas a printf por scePrint en las 195 primeras instrucciones de la funcion sceGsSyncPath. El truco esta en saber cual es el opcode de la instruccion jal q en los 6 bits superiores es 00011b y los 26 bits inferiores es la direccion del call dividida por 4.

A la funcion le faltaria hacer un flushCache para ser del todo correcta :D

Jikan


ethernet


ethernet

 La cuestión no es tomarse los test como si fueran una prueba para detectar si eres bueno o malo programando. Hace algo menos de dos años pregunté a un español que entró a MS qué le habían preguntado y me comentó que cosas como hacer un memcpy,strlen, etc, pruebas realmente tontas para alguien que lleva años programando. Lógicamente a este señor no le cogieron por que supiera hacer un strcpy.

zupervaca

 fijo que se olvido de optimizar el tema de las direcciones impares :P

¿se lo mandaron hacer en asm?


zupervaca

Cita de: "Lex"Invertir una cadena sin usar memoria intermedia de ningun tipo... ¿alguien puede poner el algoritmo por ahí?
no creo que puedan :lol:  

CoLSoN2

 Bueno, sin una variable como índice de un bucle tampoco lo creo, supongo que se refiere a lo del XOR, que no usas ningún buffer a parte del string.
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

seryu







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.