3Eva_IIT2012_T4 Registro de alquiler de canchas

3ra Evaluación II Término 2012-2013, Febrero 20, 2013 /ICM00794

Tema 4 (30 puntos). Para administrar el alquiler y reserva de una cancha deportiva privada, se requiere escribir programa que permita registrar las horas reservadas dentro de una semana, que cumpla con el menú siguiente:

  1. Registro de Cliente: solicita el nombre, cedula y teléfono del cliente y le asigna un número de cliente, llenando una tabla de clientes.
  2. Reserva de horario: El cliente seleccionará el horario para uso de la cancha proporcionando la hora, día y su número de cliente, con lo que registra la reserva en una matriz de Horarios. No se puede reservar un horario que ya esté ocupado.
  3. Mostrar bloque horario. Muestra el estado de alquiler y reserva de horarios. Los libres se muestran con cero.
  4. Mostrar Clientes: Lista los datos de los clientes que han reservado horas en la cancha.
  5. Mejor cliente: muestra cuál es el cliente que ha realizado más reservas durante la semana.
  6. Salir

Ejemplo:

Tabla de Clientes
i Nombre Cedula Teléfono
1 Juan 0987654321 2233441
2 Pedro 0976548123 2456578
3 María 1245689730 2694567
Ejemplo de Reserva:
Hora:10 (am),
dia:4 (Jueves),
Cliente número: 2 (Pedro)
Mejor cliente: 3
Tabla de Reserva Horaria. día
Lun Mar Mié Jue Vie Sab Dom
Horarios 1 2 3 4 5 6 7
Horas 7 3 3 3 3 0 0 0
8 0 0 0 0 0 1 0
9 4 0 4 0 4 1 0
10 0 0 0 2 0 0 4
11 0 0 0 0 0 0 0
12 0 0 0 0 0 0 0
21 0 1 0 1 0 3 0
22 0 0 0 0 0 0 0

Nota: Los horarios se pueden reservar de lunes a domingo desde las 7h00 a las 22h00. Puede usar las funciones para matrices del tema anterior

Rúbrica: Estructura menú (5 puntos), estructura de datos y su registro (10 puntos), reserva y validación (5 puntos), uso de funciones de matrices (5 puntos), mejor cliente (5 puntos).

3Eva_IT2012_T3 Tonalidad de colores en GIF

3ra Evaluación I Término 2012-2013, Septiembre 11, 2012 /ICM00794

Tema 3 (25 puntos). El formato GIF para imágenes digitales, usa la técnica de color indexado con 256 tonalidades de color por pixel [0-255] en una matriz de pixeles de tamaño nxm.

Se requiere separar los distintos colores, para identificar y determinar las cantidades de cada tonalidad de color mediante el uso de un vector de frecuencias [0-255].

Realice una función colorimg(imagen) que reciba la matriz de una imagen de tamaño nxm y presente como resultado el vector de frecuencias de los colores indexados.

imagen.gif
30 30 30 0 0
30 30 30 0 0
170 170 30 30 0
80 80 170 30 30
80 80 80 170 170
>>frecuencia=colorimg(imagen)
    color = [0, 1, 2, ..., 30, ..., 80, ..., 170, ...]
frecuencia =[5, 0, 0, ..., 10, ...,  5, ...,   5, ...]
usar para ejemplo en python:
matriz = np.array([[30, 30, 30, 0, 0],
                   [30, 30, 30, 0, 0],
                   [170, 170, 30, 30, 0],
                   [80, 80, 170, 30, 30],
                   [80, 80, 80, 170, 170]])

Nota: El rango de color es [0-255] y el indice de frecuencias es [1-256] en matlab
Referencia: http://www.ecured.cu/index.php/Color_indexado

Rúbrica: Definición de Función (5 puntos), manejo de tamaño de matriz (5 puntos), vector de frecuencias (15 puntos).

3Eva_IIT2012_T3 Funciones mayor y contar

3ra Evaluación II Término 2012-2013, Febrero 20, 2013 /ICM00794

Tema 3 (20 puntos).
a) Realice una función rangomayor(matriz), que recibe una matriz de números enteros y devuelve el número de mayor valor.

b) Escriba una función cuenta(matriz,k) que reciba una matriz de números enteros y cuente las veces que aparece el número k dentro de la matriz.

c) Realice una función contartodos(matriz), que recibe una matriz de números enteros y entrega un vector con las veces que se presentan cada número en la matriz. Ejemplo:

matriz
0 3 4
2 2 3
0 2 1
>> rangomayor(matriz) ans=4
>> cuenta(matriz,2) ans=3
>> contartodos(matriz)
Número 1 2 3 4
Veces: 1 3 2 1

Nota: Para este tema se requiere presentar las funciones y sus soluciones algorítmicas (no use las existentes en matlab), puede hacer uso de las funciones entre literales de este tema.

Rúbrica: definición de funciones (3 puntos), literal a (5puntos), literal b (5 puntos), literal c (7 puntos).

3Eva_IT2011_T3 Calcular comisiones por servicio técnico

3ra Evaluación I Término 2011-2012, Septiembre 13, 2011 /ICM00794

Tema 3 (30 puntos). Una empresa brinda cuatro tipos de servicio técnico con costos de 25, 50, 100 y 150 dólares respectivamente. La empresa dispone de n técnicos, que perciben una comisión del 5% sobre la tarifa del servicio realizado.
Al final del mes se obtiene la tabla de servicios prestados por técnico.

Tabla de Servicios:
Servicio 1 2 3 4
Precio $25 $50 $100 $150

Realice un menú que permita:

  1. Ingresar lista. Registra los Servicios prestados por técnico en el mes.
  2. Total Facturado. Calcula y muestra el total de dinero facturado por la empresa.
  3. Comisiones. Calcula y muestra las comisiones obtenidas por técnico.
  4. Servicio Estrella. Muestra el servicio el más requerido.
  5. Técnico del Mes. Busca y muestra el técnico que ganó la mayor comisión
  6. Salir.

Nota: Para el tema 2, puede utilizar la función del tema anterior para calcular la matriz de facturación.

Ejemplo:
Servicios Prestados Serv 01 Serv 02 Serv 03 Serv 04 . Comisión
Técnico 1 2 1 2 3 37.50
Técnico 2 3 1 0 2 21.25
Técnico 3 2 2 1 1 20.00
Técnico 4 1 0 0 3 23.75
Técnico n 3 5 1 1 28.75
• Total Recaudación: $2.625
• Servicio Estrella: Servicio 1
• Técnico del Mes: 1
• Técnico menos productivo: 3

Rúbrica: Menú (5 puntos), cálculo de recaudación (10 puntos), desarrollar los ítems del 3 al 5 del menú (5 puntos).

3Eva_IT2011_T2 producto de matrices

3ra Evaluación I Término 2011-2012, Septiembre 13, 2011 /ICM00794

Tema 2 (15 puntos). Dos matrices A y B se pueden multiplicar si el número de columnas de A coincide con el número de filas de B.

Am x n x Bn x p = Cm x p

El elemento Cij de la matriz producto se obtiene multiplicando cada elemento de la fila i de la matriz A por cada elemento de la columna j de la matriz B y sumándolos.

Realice una función producto(A,B) que permita realizar el producto entre una matriz A de tamaño de mxn y un vector B de tamaño n.

Ejemplo:
A B
2 1 2 3 25
3 1 0 2 x 50
2 2 1 1 100
150
C
2*25=50 1*50=50 2*100=200 3*150=450
= 75 50 0 300
50 100 100 150

Nota: Desarrolle el algoritmo que describa las operaciones para cada elemento Cij. No use las funciones de matlab para multiplicar matrices.

Rúbrica: Definición de función (5 puntos), algoritmo (10 puntos).


A = [[2,1,2,3],
     [3,1,0,2],
     [2,2,1,1]]
B = [25,50,100,150]

3Eva_IIT2011_T2 Registrar gastos en viaje por automóvil

3ra Evaluación II Término 2011-2012, Febrero 14, 2012 /ICM00794

Tema 2. (30 puntos) Juan y Pedro deciden separadamente recorrer en auto varias ciudades quedándose un día en cada una, arbol decision ejemplo

al siguiente día cada uno decide ir por la izquierda o derecha lanzando una moneda, hasta encontrar un punto en que ya no se pueda continuar (marcado por 0 en la tabla).

Los posibles recorridos por carretera se representan en la tabla, indicando:

  • el valor de gastos por estadía en una ciudad,
  • el número de la siguiente ciudad que se visitaría si se sigue en la dirección izquierda o derecha.
Ciudad Gastos Izquierda Derecha
1 200 3 2
2 150 4 5
3 70 7 4
4 140 7 6
5 90 6 0
6 300 7 0
7 50 0 0

Realice un programa que permita simular el viaje de Juan y el de Pedro, ingresando la tabla y al final muestre:

a) el recorrido realizado por Juan y Pedro en arreglos,
b) el total de gastos por estadía por cada el recorrido,
c) quién visitó mas ciudades y,
d) quién gastó menos en su recorrido.

Rúbrica: Ingreso de datos (5 puntos), arreglos de Recorridos (15 puntos), literal b) (5 puntos), literal c) y d) (5 puntos).

3Eva_IT2010_T3 Asignar de asientos en un avión

3ra Evaluación I Término 2010-2011, Septiembre 14, 2010 /ICM00794

Tema 3. (50 puntos) Una aerolínea requiere de un programa para administrar la ocupación de un vuelo por medio de las siguientes opciones en el menú mostrado.

  1. Compra de Boleto.- Registra datos de cada pasajero: cedula y nombre, siempre que exista disponibilidad de asientos. Puede usar la función ocupados() del tema anterior.
  2. Asignar asiento.- Se solicita la identificación del pasajero y la ubicación deseada por fila y columna, asignando la posición solo si está disponible. En el caso que la ubicación deseada este ocupada, se le asigna una libre usando función ubicalibre() del tema anterior. La ubicación final del pasajero se debe registrar también en la estructura de datos del pasajero.
  3. Mostrar ocupación de asientos.- permite revisar cuáles asientos se encuentran ocupados (1) o vacios (0).
  4. Lista de Pasajeros en el vuelo.- Muestra la información de pasajeros confirmados (con asiento asignado).
  5. Salir
Pasajero
Cedula Nombre Fila Columna
8765 Juan 3 4
6543 Pedro 0 0
2345 María 4 2
….

Sugerencia: Para el control de asientos, usar una matriz asientos(n,m) que indica: ocupados (1) o vacios (0). Al inicio se consulta el número de filas y columnas de asientos en el avión.

Rúbrica: Estructura de Datos (10 puntos). Menú estructurado (5 puntos).Opción 1(10 puntos). Opción 2 (10 puntos). Validación de asientos (5 puntos). Pasajeros confirmados (5 puntos). Uso de funciones (5 puntos).

3Eva_IIT2010_T3 Juego de rompecabezas

3ra Evaluación II Término 2010-2011, Febrero 15, 2011 /ICM00794

Tema 3. (30 puntos). Un rompecabezas numérico se compone de fichas marcadas del 1 al 8 y colocadas aleatoriamente en un tablero de 3×3. Para la solución, se debe ordenar las fichas, dejando vacía la esquina inferior derecha, siguiendo las siguientes reglas:

  • En cada turno, el programa debe permitir al usuario mover una ficha a la casilla vacía si esta se encuentra en la misma fila o columna.
  • El juego se repite hasta formar la solución, mostrando la cantidad de turnos utilizados.

Realice un programa que simule el juego de rompecabezas.

Rompecabezas: :

Solución: rompecabezas solucionado

>> resolver
¿Tamaño del tablero?: 3
 Turno: 1
8 2 6
5 4 0
1 7 3
¿Ficha a mover?:5
Turno: 2
8 2 6
0 4 5
1 7 3
¿Ficha a mover?:8
Turno: 3
0 2 6
8 4 5
1 7 3
¿Ficha a mover?:1
Turno: 4
1 2 6
8 4 5
0 7 3
¿Ficha a mover?: …

Nota:

  • Se recomienda utilizar una matriz solución para validar si se ha resuelto el rompecabezas.
  • Para generar el tablero del juego, puede hace uso de la función desordena(n) del tema anterior
  • Para validar si se puede mover una ficha, puede utilizar la función ubica(matriz,k) del tema anterior.

Rúbrica: Generación de rompecabezas y solución (5 puntos), control de turnos (5 puntos), validación de movimiento de ficha (10 puntos). Validación de solución del juego (10 puntos)

3Eva_IT2010_T2 Funciones ocupados y ubica libre en matriz

3ra Evaluación I Término 2010-2011, Septiembre 14, 2010 /ICM00794

Tema 2. (25 puntos) La matriz asientos(n,m) corresponde a la pre-asignación de asientos de una avión administrado por una aerolínea, que utiliza la nomenclatura de Ocupado(1) y vacio(0).

Asientos(i,j)
ventana pasillo pasillo ventana
1 2 3 m=4
Fila 1 0 0 0 0
2 0 0 0 0
3 0 0 0 1
4 0 1 0 0
19 0 0 0 0
n=20 0 0 0 0

Realice una función ocupados(matriz asientos) que reciba una matriz de asientos y entregue la cantidad de asientos ocupados.

Realice una función ubicalibre( matriz asientos) que entregue la ubicación del primer asiento desocupado en el caso de que existan.

Rúbrica: Definición de función (5 puntos). Procedimiento de función ocupados (8 puntos).Procedimiento de función ubicalibre (12 puntos)


matriz = [[1,1,1,1],
          [1,0,0,0],
          [0,1,0,1]]

ocupados:  7
primer libre encontrado:  [1, 1]
>>>

3Eva_IIT2010_T2 Ubicar número dentro de una matriz

3ra Evaluación II Término 2010-2011, Febrero 15, 2011 /ICM00794

Tema 2 (15 puntos). Escriba una función ubica(matriz,k) que dada una matriz de tamaño n, entregue la ubicación de fila y columna del número k.

Ejemplo siguiendo el resultado del tema 1:

>>> matriz = np.array([[8, 2, 6],
		       [5, 4, 0],
                       [1, 7, 3]])
>>> ubica(matriz,7)
array([2, 1])
>>> 
usando el ejemplo del tema anterior

Observación: Considere que las filas y columnas se numeran desde 0

Rúbrica: Definición de función (5 puntos), búsqueda de k (5 puntos). Algoritmo estructurado (5 puntos)