Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. (10 puntos) Escriba código fuente para el cual pueda resolver la siguiente situación: Dado n ∈ N, dibujar un
cuadrado con los números del 1 al n2 , como se muestra en el siguiente ejemplo para n = 4.
tipo 2
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
3. (10 puntos) Indique y agrupe los tipos de datos básicos o primitivos tanto en C como en Java.
4. (20 puntos) Escriba código fuente para el cual pueda resolver la siguiente situación: Considere un conjunto
de hasta 32 elementos enumerados del 0 al 31, eliga el tipo de datos básico o primitivo para representar a tal
conjunto. Dados dos conjuntos A y B desde la entrada estándar (se debe indicar qué número entre 0 y 31
pertenece al conjunto en cuestión), escriba en la salida estándar cada uno de los conjuntos leı́dos, ası́ como su
unión, intersección y complemento.
5. (20 puntos) Note que para k ≥ 1, 6k, 6k + 2, 6k + 3 y 6k + 4 no pueden ser números primos. En cambio, 6k + 1
y 6k + 5 tienen la posibilidad de ser números primos, por lo que se tendrı́a que verificar si no son divisibles entre
algún número primo previamente encontrado y almacenado, puede iniciar con los números primos que conoce
menores que√6. Por cierto, recuerde que si n es un número compuesto, existe un número primo p que lo divide
tal que p ≤ n. Escriba un programa de nombre factoriza y extensión de acuerdo al lenguaje empleado. El
programa debe leer dos enteros n y m con 1 ≤ n, m ≤ 106 , escribir la factorización de n en un renglón y la
Programación I Examen (continúa)
de m en un siguiente renglón empleando números primos calculados como se mencionó anteriormente. Utilice
la representación de la factorización encontrada para escribir, en cada uno de los siguientes dos renglones, la
factorización del máximo común divisor y la del mı́nimo común múltiplo de m y n.
6. (20 puntos) Considere aritmética en polinomios Zp [x]. Escriba un programa de nombre Zpx y extensión de
acuerdo al lenguaje empleado. El programa debe leer de la entrada estándar un número p (el cual se garantiza
que quien lo ingrese dará un número primo), un entero no negativo n1 seguido de n1 + 1 enteros (esos enteros
deben tratarse de tal forma que queden en el residuo correspondiente entre 1 y p − 1, ambos inclusive), seguido
de un entero no negativo n2 seguido de n1 + 1 enteros (con el tratamiento ya descrito para estos enteros). El
programa debe escribir en la salida estándar cada uno de los dos polinomios, su suma, su producto, un máximo
común divisor (mcd) de los dos polinomios, ası́ como una combinación lineal del mcd de los dos polinomios en
término de los mismos, ası́ como la evaluación del primer polinomio en los valores 0, 1, ⌊p/2⌋ y p − 1.
7. (20 puntos) Consideremos conjuntos cuya representación se realizará mediante bits en un arreglo de bytes. Si
el universo consta de 8 × n elementos (n bytes), se puede considerar una numeración desde 0 hasta 8n − 1 y un
conjunto A se puede representar por un arreglo de esos 8n bytes donde el i-ésimo elemento (con 0 ≤ i < 8n) se
encuentra en el conjunto A si el i-esimo bit es 1. Con esta representación desarrolle un programa de nombre
conjuntos y extensión de acuerdo al lenguaje empleado que lea tres enteros n, a y b donde n es el número de
bytes para representar el conjunto universo, a y b las cantidades de elementos a ingresar para cada uno de los
dos conjuntos A y B, seguido de a y luego de b enteros entre 0 y 8n − 1 para representar los elementos del
conjunto A y B. El programa debe escribir en la salida estándar la cardinalidad seguida de los elementos de
cada uno de los siguientes conjuntos, uno por renglón: A, B, A ∪ B, A ∩ B, Ac , A \ B, B \ A, A△B (diferencia
simétrica de A y B).
Pregunta: 1 2 3 4 5 6 7 Total:
Puntos: 20 10 10 20 20 20 20 120
Puntaje:
Página 2 de 2