Examen de Programación C++
Hay dos puestos para programadores en el equipo:
Programador de controles. Este rol es para programadores que hacen algoritmos avanzados, matemática y manejo de gráficos a bajo nivel. Requiere un conocimiento avanzado de matemática y algoritmos.
Programador de aplicaciones. Este rol es para programadores de aplicaciones de software, enfocados en integración de los controles usando APIs documentados para hacer interfaces con el usuario, producción de informes. Requiere un conocimiento avanzado de ingeniería de software, integración de componentes, generación de reportes procedurales.
Los postulantes deben poder aprobar uno de los dos examenes propuestos en esta página.
Envía tus respuestas con los archivos requeridos a jobs@bamtang.com
No olvides de anexar también tu hoja de vida con nombre, teléfono y estudios realizados.
Sobre los examenes
Solo completar uno de los exámenes, dependiendo en su enfoque de programación.
Cada problema a continuación tiene un puntaje asociado.
Para la solución emplea sólo C++
Cualquier nota u observación ponla como comentario al inicio del problema.
Sobre la Evaluación
Envía tus soluciones como un proyecto en Visual Studio
No enviar ejecutables, solo proyectos con el código fuente..
Por favor revisa bien tu proyecto antes de enviarlo y verifica que compila.
Después de aprobar este examen, se te tomará un examen similar en nuestras oficinas, aprobarlo sólo te servirá si lo resuelves personalmente.
Puedes usar cualquier referencia (Wikipedia, libros, blogs, etc) con tal que el código que envíes sea completamente tuyo y puedas explicarlo linea por linea.
Examen 1 - Programador de Controles
Este examen no esta disponible.
Examen 2 - Programador de Aplicaciones
Tarea Única
Hacer una aplicación usando Qt, Qwt y C++
No importa mucho la estética de los interfaces. Lo importante es que el código de manejo de ventanas, controles y data esté bien hecho.
Usar de base el código de este ejemplo: https://github.com/ex/qwt
y modificarlo para crear una aplicación como esta:
[3 puntos] Botón “Stop”: detiene el tiempo.
[6 puntos] Botón “Foto Actual” : Crea un ítem nuevo en un QListWidget, con un nombre cualquiera “item1”, “item2” ,... tal que al darle click a dicho ítem en el widget de la derecha [widget Vista de imagen se muestre esta imagen (Qimage)], y se muestre un texto simple “Imagen: ítem 1, Amplitude: 90, Frequency: 10Hz” con la información que fue creada.
[2 puntos] Boton “Change color”: Hace que aparezca un widget QcolorDialog para seleccionar color y cambiar el color de la curva que por defecto es verde.
[3 puntos] CheckBox “Legend” : Hace que sea visible o invisible una leyenda que indica la amplitud y frecuencia:
Algo Así:
5. [3 puntos] Widget para mover la curva verticalmente, por defecto siempre está centrada en 0, debería poder moverse entre [-100, 100 ]
6. [3 puntos] Botón “Save Image” : Para seleccionar un lugar en el disco duro para guardar un .png actual en la lista.