2Eva_IT2011_T3 Cuadrado semimágico

2da Evaluación I Término 2011, Agosto 30, 2011 /ICM00794

Tema 3 (25 puntos). Llamemos cuadrado «semi-mágico» a una matriz cuadrada conteniendo números de tal manera que cada suma parcial de la primera fila, última fila, primera columna, última columna y cada una de las dos diagonales, producen el mismo resultado.

Ejemplo:
1 3 6 2 = 12
7 4 1 4
1 6 4 3
3 4 2 3 = 12
 =  =  =
12 12 12 12

Escriba un programa que solicite: el tamaño n del cuadrado y el máximo de intentos a realizar, para llenar aleatoriamente una matriz de nxn con enteros positivos de una cifra, hasta que la matriz sea un cuadrado «semi-mágico».

Muestre la matriz resultante y la cantidad de intentos realizados, si se logró el objetivo.

Rúbrica: generación de matriz (5 puntos), determinar si es semi-mágico (15 puntos), control de intentos y resultados (5 puntos)

2Eva_IT2010_T1 Capacitación de empleados

2da Evaluación I Término 2010. Agosto 31, 2010 /ICM00794

TEMA 1 (30 puntos) El plan de capacitación de personal de una empresa consiste en impartir m cursos de varios temas para n empleados, quienes pueden participar en el orden que prefieran.

Al final del mes, la participación de los empleados se registra en una matriz como completado (1) y no tomado (0).Realizar un programa que registre la participación de los empleados en los cursos, determine y muestre:

a) ¿Cuáles empleados (número) tienen todos los cursos aprobados?, pueden ser varios empleados, y

b) ¿Cuál fue el curso con más participantes?, considere solo uno.

capacitacion (e,c) Curso
empleado 1 2 3 completados
1 1 0 0 1
2 1 1 1 3
3 0 0 1 1
4 1 1 1 3
n=5 0 0 0 0

Nota: Cada empleado participa una vez en cada curso.
Rúbrica: Ingreso de datos en matriz (5 puntos), parte a) (15 puntos), parte b) (10 puntos).

2Eva_IIT2009_T2 Transponer una matriz

2da Evaluación II Término 2009-2010. Febrero 02, 2010 /ICM00794

Tema 2 (15 puntos). Realizar una función transponer(matriz) para obtener la transpuesta de una matriz como se muestra en el ejemplo.

>>matriz

1 2 3
4 5 6
7 8 9
>> transponer(matriz)

1 4 7
2 5 8
3 6 9

NOTA: No use la operación de transpuesta definida en MATLAB con la tilde.
Rúbrica: Definición de la función (5 puntos), trasponer la matriz (10 puntos)

matriz = [[1,2,3],
          [4,5,6]]

2Eva_IT2009_T3 Mejores vendedores por categoría

2da Evaluación I Término 2009-2010. Septiembre 01, 2009 /ICM00794

Tema 3 (35 puntos). Para realizar el monitoreo del trabajo de ventas, una empresa registra las unidades vendidas de cada vendedor por producto.
Los mejores vendedores por categoría son aquellos que: mejor vendedor dibujo

a) Venden más unidades
b) Su monto total (en dólares) por ventas es el mayor

Realice un programa que:

  • Registre las ventas mensuales de n vendedores por m productos y la lista de precios para los m productos,
  • luego encuentre los mejores vendedores por cada categoría planteada. Monto = (Unidades vendidas de un producto)* (precio de un producto)
Lista de Precios
Prod 1 2 3 4 m
precio 10 20 30 40
ventas [,] Producto m
vendedor 1 2 3 4
1 10 0 12 7
2 6 4 13 19
3 2 17 8 9
4 4 19 16 13
5 9 14 14 11
n …

Rúbrica: Registro de datos (5 puntos), mejor vendedor/unidades (15 puntos), mejor vendedor/monto (15 puntos)

2Eva_IIT2008_T3 Crear un Calendario

2da Evaluación II Término 2008-2009. Febrero 10, 2009 /ICM00794

Tema 3 (25 puntos) Realice un programa que permita crear un calendario de un mes cualquiera, conociendo el día de la semana que inicia el mes y el número de días que tiene el mes.

Nota: suponga que el primer día de la semana es domingo, entonces el día jueves seria el día 5 de la semana.

>> creacalendar
 día de inicio del mes: 5
 días del mes: 28
 D  L   M  M  J  V  S
 0  0   0  0  1  2  3
 4  5   6  7  8  9 10
 11 12 13 14 15 16 17
 18 19 20 21 22 23 24
 25 26 27 28  0  0  0

Rúbrica: Rellenar con ceros los días antes del primer día del mes (5 puntos), mantener la secuencia de días entre semanas (5 puntos), crear semanas hasta completar los días (5 puntos). Solución integrada y funcional en una matriz (10 puntos).

2Eva_IIT2007_T2 Juego de memotest

2da Evaluación II Término 2007-2008. Febrero 12, 2008 /ICM00794

Tema 2. (25 puntos) Memotest es un juego de tablero que consiste en buscar las “parejas”. El tablero cuadrado de tamaño 4×4, donde se encuentran ubicados de forma aleatoria números del 1 al 8 en fichas “volteadas” que no muestran el número. memotest

  • El juego consiste en indicar las ubicaciones de dos fichas en el tablero (fila y columna), que muestran su número y de resultar “parejas” se gana 10 puntos.
  • El jugador tiene máximo 3 posibilidades de equivocación para tratar de descubrir las 8 parejas.

Escriba un programa en Matlab que permita simular el juego memotest.

El programa pone parejas de números del 1 al 8 aleatoriamente en una matriz cuagrada de 4×4 equivalente al tablero de juego. Realice esta sección como una función tableroparejas(n) con n=4.

Se pregunta al jugador dos posiciones de fichas que desea jugar, es decir filas y columnas en el tablero. El  algoritmo verifica si se ha encontrado una pareja de números o si se ha equivocado, revisando que no se puede equivocar más de 3 veces.

Al final muestra la cantidad de puntos conseguidos.


>>tableroparejas(4)
[[3 5 8 1]
 [4 3 2 6]
 [8 7 2 4]
 [6 7 1 5]]
>>> 

Rúbrica: generar tablero (5 puntos), función estructurada (3 puntos), validar casillas del jugador (2 puntos), equivocaciones (5 puntos), control de aciertos  o puntaje (5 puntos). Algoritmo estructurado (5 puntos)

2Eva_IT2007_T4 Registrarse en curso fundamentos

2da Evaluación I Término 2007-2008. Agosto 28, 2007 /ICM00794

Tema 4. (30 puntos) Programe una aplicación para el registro de estudiantes en la materia Fundamentos de Computación, considere que se han abierto 5 paralelos con un cupo de 40 estudiantes. Se debe ofrecer el siguiente menú de opciones:

Fundamentos de Computación
 1) Registrar
 2) Consultar
 3) Anular
 4) Salir
  • En la opción 1), el estudiante ingresa su matrícula. El programa le indica en qué paralelos hay cupo disponible. El estudiante elige el paralelo. El programa registra su código en ese paralelo.
  • En la opción 2), el estudiante ingresa su matrícula. El programa le indica en qué paralelo está registrado.
  • En la opción 3), el estudiante ingresa su matrícula y el paralelo en el cual está registrado. El programa elimina este estudiante del paralelo.
  • Al escoger la opción 4), se termina la ejecución del programa.

Cada opción puede manejarse separadamente con funciones o en el mismo programa. Para almacenar los datos se debe usar un arreglo de estructuras.

2Eva_IT2007_T2 Verificar matriz triangular con Python

2da Evaluación I Término 2007-2008. Agosto 28, 2007 /ICM00794

Tema 2. (20 puntos) Escriba la función verifica(matriz) que reciba una matriz cuadrada y retorne:

  • 1 si es una matriz triangular inferior (todos los elementos sobre la diagonal principal son iguales a cero),
  • 2 si es una matriz triangular superior (todos los elementos debajo de la diagonal principal son iguales a cero),
  • 3 si es una matriz diagonal (todos los elementos sobre y debajo de la diagonal principal son iguales a cero).
Diagonal
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Ejemplo de algoritmo en Python

import numpy as np
A = np.array([[ 1, 0, 0 ],
              [ 0, 1, 0 ],
              [ 0, 0, 1 ]])

>>> verifica(A)
>>> 3

B = np.array([[ 5., 4. , 3. ],
              [ 0., 3.4, 6.8],
              [ 0., 0. , 5. ]])
>>> verifica(B)
>>> 2

C = np.array([[1, 0, 0],
              [2, 1, 0],
              [1, 1, 1]])
>>> verifica(C)
>>> 1

Referencia: Método de Gauss con Python

3Eva_IIT2006_T2 Generar triángulo de Pascal

3ra Evaluación II Término 2006-2007, Febrero 6, 2007 /ICM00794

Tema 2. (20 Puntos) El triángulo de Pascal, es un triángulo de números enteros, infinito y simétrico.

triángulo de Pascal

Se genera de arriba hacia abajo con la propiedad de que sus extremos siempre son 1, y que sus números interiores son la suma de los dos inmediatos superiores.

Escriba un programa en matlab que genere un triángulo de Pascal para n filas, y muestre la suma de sus números pares.


Sugerencia: Usando una matriz cuadrada, en la primera columna y la diagonal llene de unos. Luego realice las operaciones en la parte triangular inferior.

 

3Eva_IT2006_T4 Juego planta bombas (buscaminas)

3ra Evaluación I Término 2006-2007, Septiembre 12, 2006 /ICM00794

Tema 4. (30 puntos) Un juego de guerra consiste en delimitar el área del enemigo para ser explorada por paracaidistas en ejercicios de prueba y error.

El enemigo planta bombas en el área para protección a prueba de paracaidistas.

El juego consiste en enviar un paracaidista a una coordenada del área enemiga y si aterriza exitosamente, explore el área a su alrededor e informe al centro de comando, cuántas bombas existen alrededor de su coordenada.

a) Realice una función plantabombas(m, n) que dada una cantidad de m bombas, coloque en el área definida por una matriz cuadrada de tamaño las bombas de manera aleatoria y no repetida.
Considere que m siempre es menor que n2.

b) Realice un programa, que pida las coordenadas de aterrizaje de un paracaidista, utilice la función del tema anterior, valide si el paracaidista logro llegar a salvo, e informe de cuantas bombas existen a su alrededor.

Nota: Las coordenadas no pueden ser de los límites de la matriz.

x\y 1 2 3 4
1 0 1 1
2 0 paracaidista 0
3 1 0 1
4
Bombas cercanas a matriz[2,2]=4