Tarea 1
Durante el entrenamiento de los días 23, 24 y 25 de mayo, se impartieron diversos temas de matemáticas: divisibilidad, congruencias, conjuntos y principio de las casillas.
La tarea se encuentra basada en los problemas de la OMI de Jalapa (Disponible en nuestra página). Cada tarea debe realizarse en pseudocódigo y de ser posible programarlo. Les recordamos que la entrega a tiempo de las tareas formará parte de su clasificación para su asistencia al nacional. La tarea 1 se entregará este viernes 30 de mayo.
Problema 1:
Tienes un grupo de N palancas y todas inicialmente se pueden "bajar". Decimos que una palanca esta activa si no la han bajado e inactiva si la han bajado. Existe una manera de proceder para bajar las palancas y consiste en: Seleccionar una palanca y se baja, después cuentas una palanca activa y la bajas. Luego Cuentas dos palancas activas y bajas la correspondiente y así sucesivamente. Cuando llegas al final de la lista de las palancas sigues tu conteo desde el inicio de la lista de palancas.
Escribe el psedocódigo de una función F que recibe como parámetros un entero N y un entero P. N > 0, indica cuantas palancas hay y P < N indica en donde comenzaras el conteo. La función debe de regresar un arreglo A de N enteros, donde el elemento A[i] contiene el valor del número de la palanca que fue bajada en la posición "i" en la secuencia. La primera palanca es considerada como la palanca "cero".
Ejemplo:
F(5,1) = {0,1,3,4,2}
F(9,4) = {5,6,8,2,0,1,7,3,4}
Solución del problema: Palancas
Problema 2:
Estas en un plano coordenado y puedes mirar al Norte, Este, Sur y Oeste. Recibes 3 instruciones diferentes: "D" significa que giras 90 grados a tu derecha, "I" giras 90 grados a tu izquierda y "A" que significa que avanzarás. Después de una "A" siempre viene un número que son la cantidad de unidades que te desplazas a la dirección hacia donde estabas mirando.
Escribe un programa que reciba un conjunto de 0 < n < 100 instrucciones y regrese las coordenadas del punto en donde terminas después de las n instrucciones. Siempre inicias en (0,0) y mirando al norte.
Entrada (Archivo input.txt):La primera línea contiene al entero n seguido de un salto de línea. n representa que hay n instrucciones. La segunda línea contiene las n instrucciones separadas por un espacio. Después de la instrucción Avanza (A) siempre viene un entero 0 < k < 100 separado por un espacio.
Salida (Archivo output.txt):Debes escribir dos enteros separados por un espacio que determinan las coordenadas X y Y respectivamente, de la posición final después de seguir las n instrucciones.
Entrada | Salida |
7
D A 2 D A 2 I D A 5 |
(2,-7)
|
Problema 3:
Una puerta se cierra y se abre en M pasos intermedios. La puerta recibe "ordenes" de cambiar de estado cierto grado. Si la puerta esta totalmente cerrada entonces comienza a abrirse y si esta totalmente abierta comienza a cerrarse. Puede recibir una orden tal que termine por cerrarse y además se empiece a abrir con la misma orden. Cada "orden" consiste en un número R que indica cuantos cambios debe tener la puerta.
Escribe una función que recibe un entero M que indica el número de pasos intermedios que tiene la puerta y una lista de N ordenes. Tu función debe regresar un entero entre 0 y M+1. Donde 0 indica que la puerta esta totalmente abierta y M+1 que la puerta esta totalmente cerrada. Siempre comienzas con la puerta totalmente abierta.
Entrada | Salida |
5 3
3 7 1 |
1
|
3 6
1 5 6 2 2 4 |
4
|
Última actualización: 8/Abril/2004
Por Marte Ramírez