3Eva_IIT2013_T4 Gestionar asientos en cine

3ra Evaluación II Término 2013-2014, Febrero 25, 2014 /ICM00794

Tema 4. (35 puntos) Realice un programa para una sala de cine que gestione la venta de boletos con asientos asignados usando el menú mostrado. sala de cines asientos

Menú
1. Vender Boletos
2. Mostrar asientos
3. Contar vendidos
4. Buscar libre
5. Salir 

Los asientos se identifican por un código formado por una letra y un número equivalentes a la ubicación en filas identificadas desde la A hasta la J, y las columnas de 1 al 20.

Ejemplo: asiento E3 corresponde fila 3, columna 5
  • Para vender un boleto se solicita el código del asiento, se valida que exista y que se encuentra libre para registrar el número de cédula del cliente, sino se indica que está ocupado.
  • Al mostrar estado de asientos se presenta una matriz con valores 0 como un asiento libre y 1 como ocupado.
  • Buscar un asiento libre muestra la ubicación del primer asiento disponible más cercano a la última fila.
Ejemplo de asientos
1 2 3 4 5 6 7 8
A 0 0 0 0 0 0 0 0
B 0 0 0 1 1 0 0 0
C 0 0 0 0 0 0 0 0
D 0 0 0 0 1 1 0 0
E 0 0 0 1 1 0 0 0
F 0 0 0 0 1 1 0 0

Sugerencia: puede usar buscarcadena(alfabeto,letra) del tema anterior, para transformar la letra al número de fila. Ejemplo: fila E es fila 5

Rúbrica: Menú (5 puntos), convertir código asiento a fila/columna (10 puntos), caso 1 (5 puntos), caso 2 y 3 (7 puntos), caso 4 (8 puntos).

3Eva_IIT2013_T2 Ordena por diagonal principal

3ra Evaluación II Término 2013-2014, Febrero 25, 2014 /ICM00794

Tema 2. (20 puntos) Uno de los pasos que se requieren en los algoritmos para resolver un sistema de ecuaciones lineales consiste en intercambiar las filas de una matriz cuadrada para colocar en la diagonal principal los elementos de mayor magnitud de cada columna.

Ejemplo:
[ 2 7 6 ]  [ 9 0 0 ]  [ 9 0 0 ]
[ 4 5 3 ] →[ 4 5 3 ] →[ 2 7 0 ]
[ 9 8 1 ]  [ 2 7 6 ]  [ 4 5 3 ]

Escriba una función prepara(matriz) que reciba una matriz cuadrada nxn, intercambie las filas desde arriba hacia abajo de tal manera que el elemento de mayor magnitud de cada columna se ubique en la diagonal, sustituya con ceros el resto de la fila hacia la derecha. La función entrega la matriz transformada, como se muestra en el ejemplo.

Nota: en el algoritmo puede usar la función del tema anterior.
Rúbrica: Definir función (5 puntos), seleccionar el mayor (5 puntos), describir procedimiento estructurado (10 puntos)

3Eva_IIT_2013_T1 Intercambiar filas o columnas en matriz

3ra Evaluación II Término 2013-2014, Febrero 25, 2014 /ICM00794

Tema 1. (20 puntos). Realice una función intercambiar(matriz, a, b, tipo), que al recibir una matriz intercambie las filas o columnas a y b.

El parámetro tipo con el valor 1 permite intercambiar entre las filas a y b, pero si tiene el valor de 2 se intercambian las columnas a y b.

matriz=
[ 2 7 6 ]
[ 4 5 3 ]
[ 9 8 1 ]
>>intercambiar(matriz, 1, 3, 1)
[ 9 8 1 ]
[ 4 5 3 ]
[ 2 7 6 ]

>>intercambiar(matriz, 1, 3, 2)
[ 6 7 2 ]
[ 3 5 4 ]
[ 1 8 9 ]

Rúbrica: Definir la función (5 puntos), intercambiar valores entre celdas (5 puntos), intercambiar toda la fila o columna (10 puntos)

2Eva_IIT2013_T1 Cable submarino para internet

2da Evaluación II Término 2013-2014, Febrero 11, 2014 /ICM00794

Tema 1 (25 puntos) Para disponer del servicio de internet con banda ancha en una isla turística, se proyecta instalar un cable submarino de fibra óptica desde la costa continental. Se dispone de una tabla con los datos (x, y, z) para el anclaje del cable en el lecho marino correspondientes a las coordenadas tipo rectangulares en kilómetros y la profundidad en cada punto en metros.

a) Realice una función, que dada las coordenadas y la profundidad entre dos puntos, calcule el costo equivalente del tendido del cable entre los puntos. Suponga que costo de instalación de un cable submarino de fibra óptica se determina por:

  • La extensión del cable por kilómetro es $ 100, suponiendo que es en línea recta entre anclajes
  • La profundidad del punto más bajo entre los dos anclajes conforme a la tabla siguiente:

Costo por km de cable = $100

Profundidad (m) Costo anclaje($)
<10 $ 500
Entre 10 y 30 $ 1000
mayor de 30 $ 3000

b) Realice un programa para ingresar la tabla de datos de anclaje y usando la función anterior, calcule el costo total del tendido del cable entre el continente y la isla (puntos consecutivos). También encuentre y muestre cuál es el tramo que representa el mayor costo.

Nota: Suponga que las unidades de las coordenadas se encuentran en km y la profundidad en metros.

Distancia entre dos puntos en el espacio:

d = \sqrt{(x_2-x_1)^2+(y_2-y_1)^2+(z_2-z_1)^2}

Rúbrica: Definir función (5 puntos), cálculo con unidades (5 puntos), usar función en programa (5 puntos), Costo total (5 puntos). Tramo caro (5 puntos)

3Eva_IT2013_T4 Menú para administración de edificio

3ra Evaluación I Término 2013-2014, Septiembre 10, 2013 /ICM00794

Tema 4. (20 puntos) El administrador de un edificio de n pisos requiere controlar el uso de m apartamentos por piso mediante una matriz que registra:

  • Si está arrendado: el número de cédula del arrendatario,
  • Si está disponible: 0,
  • Si se encuentra en reparación: -1.

Escriba un programa que use una matriz para almacenar esta información y con un menú proporcione al administrador las opciones mostradas.

Menú
1. Consultar estado de un departamento
2. Alquilar un departamento. (Ingresar número de cédula)
3. Marcar un departamento para reparación
4. Marcar un departamento disponible. (luego de su reparación)
5. Mostrar reporte, de la cantidad de departamentos en cada estado por cada uno de los pisos.
6. Salir

Inicialmente todos los departamentos están disponibles.

Rúbrica: Menú , opción 1 y 2 (5 puntos), opción 3 y 4 (5 puntos), opción 5 (10 puntos)

2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

2da Evaluación I Término 2013-2014, Agosto 27, 2013 /ICM00794

Tema 2. (20 puntos). Para una tarde de bingo se usaran tablas generadas con las siguientes reglas:

  • Los 5 números en cada columna son aleatorios ordenados no repetidos de acuerdo al rango asignado por columna.
  • La casilla central de la tabla tiene valor marcado cero o ‘libre’.

Realice un programa para generar una tabla de bingo.

Columna /Rango:
B entre 1 – 15
I entre 16 – 30
N entre 31 – 45
G entre 46 – 60
O entre 61 – 75
Tabla de Bingo
B I N G O
2 16 32 46 61
4 19 34 47 63
6 22 libre 49 66
7 25 37 54 70
8 26 42 60 73

Nota: Puede hacer uso de la función del tema anterior sorteoentre(K,a,b). 2Eva_IT2013_T1 Función sorteoentre(k,a,b)

Rúbrica: Programa estructurado (5 puntos), uso de funciones (5 puntos), llenado de matriz (5 puntos), salida (5 puntos)

 

2Eva_IT2012_T4 Afiliados a partidos

2da Evaluación I Término 2012, Agosto 28, 2012 /ICM00794

Tema 4. (30 puntos) El Consejo Nacional Electoral requiere de un programa que permita administrar los datos de registros de los afiliados a partidos y movimientos políticos, presentados al inicio para un proceso electoral.
Los datos disponibles se encuentran listados en dos tablas de datos como las siguientes:

Tabla 1. Padrón Electoral
Cédula Nombre
0123456789 MARIA RODRIGUEZ
0234567891 JUAN PEREZ
0345678923 JOSE PARRA
Tabla 2. Ficha de afiliación a partidos
Cédula Nombre Partido Estado
0234567891 JUAN PEREZ 7 1
0123456789 MARIA RODRIGUEZ 9 3
0123456789 MARIA RODRIGUEZ 4 3

El programa debe permitir el ingreso de las tablas (1 y 2), luego validar y registrar el Estado final conforme a los criterios mostrados en la tabla 3.

Para revisar cada registro por cada criterio, solo se validaran los registros con Estado “1”,
Si luego de revisar y validar, el Estado del registro se mantiene en “1”, éste se considera válido.
Al final presente una tabla de “Resultado” que liste cuántos registros por estado tiene cada partido.

Tabla 3. Criterios
Estado Descripción
1 Aceptado al inicio como válido, sin revisar “errores”
2 No empadronado.- La cédula de la ficha no se encuentra en el padrón
3 Afiliación duplicada.- El registro de cédula en la ficha se encuentra más de una vez
4 Nombres errados.- por no coincidir entre la ficha y el padrón
Resultado Estado
Partido 1 2 3 4
1
2
3 …. …. …. ….

Nota: para comparar cadenas de caracteres, puede usar la función strcmp(cadenaA, cadenaB)
Referencia: “El sistema del CNE permitió la confusión de identidades”, 6 –Agosto-2012, www.expreso.ec

Rúbrica. Ingreso con estructura de datos (5 puntos), validar empadronados (5 puntos), validar duplicados (5 puntos), validar nombres (5 puntos), Contador de registros por estado (5 puntos), Algoritmo estructurado (5 puntos)

2Eva_IT2012_T3 Consumo de tinta y negativo de foto

2da Evaluación I Término 2012, Agosto 28, 2012 /ICM00794

Tema 3. (25 puntos). En los contextos de fotografía digital, una imagen puede ser representada en una escala de grises, corresponden a un conjunto de colores en tonalidades entre el blanco y negro.

Se emplean 8 bits para representar cada píxel lo que sólo permite una escala con 256 intensidades o escalas de gris [0,255].

a) Realice una función totaltinta(matriz) que para una imagen representada en una matriz de nxm, muestre el equivalente numérico de las unidades de tinta a consumir en la imagen.

Suponga que en una impresora de inyección de tinta, el consumo de tinta corresponde al número escrito en la casilla de la matriz escala de gris.

matriz
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
>>totaltinta(matriz)
 ans=1550

b) Realice una función imgnegativa(matriz) que cambie la imagen a negativo, invirtiendo los valores en la escala [0,255] que contiene cada pixel (casilla). Tal como se muestra en el ejemplo.

imgnegativa(matriz)
225 225 225 255 255
225 225 225 255 255
85 85 225 225 255
175 175 85 225 225
175 175 175 85 85

Referencia: http://es.wikipedia.org/wiki/Escala_de_grises

Rúbrica: definición de funciones (5 puntos), literal a (10 puntos), literal b (10 puntos)

2Eva_IIT2011_T2 Ubicar ficha en tablero

2da Evaluación II Término 2011-2012, Enero 31, 2012 /ICM00794

Tema 2. (15 puntos) Escriba una función ubicaficha(m, n) que ubique aleatoriamente m números entre 2 y m+1 dentro de una matriz de nxn.

ubicaficha(6,8)
3
2
6
5
4
7

Nota: No se deben repetir las posiciones de los números y las casillas vacías se llenan con ceros.

Rúbrica: Definición de función (5 puntos), ubicación aleatoria no repetida (5 puntos), resultado y algoritmo integrado (5 puntos).

2Eva_IIT2011_T3 Movimientos del caballo en ajedrez sobre una matriz/arreglo

2da Evaluación II Término 2011-2012, Enero 31, 2012 /ICM00794

Tema 3. (25 puntos)

En un tablero de ajedrez (8×8 casillas), la ficha del caballo puede moverse entre casillas, siguiendo las siguientes reglas:

  • Las direcciones se consideran horizontales o verticales.
  • Se mueve dos casillas en una dirección, y luego una casilla en cualquier dirección perpendicular al movimiento anterior.

En la figura se muestra un ejemplo de la ubicación del caballo con el número 9 y las casillas donde se puede mover se marcan con 1.

muevecaballo(5,4)


a) Realice una función muevecaballo(f,c) que reciba las coordenadas de la ubicación del caballo en el tablero de ajedrez, asigne el valor de 1 a las casillas en las cuales puede moverse y entrega la matriz resultante.

Nota: considerar los límites del tablero y que el tablero esta ocupado solo por el caballo.

b) Escriba un programa que:

  • genere una matriz contrincante con la función ubicaficha(6,8) del tema anterior,
  • solicite las coordenadas f y c del caballo en el tablero,
  • genere otra matriz tablero con la función muevecaballo(f,c), y
  • simule el juego contando y mostrando los números que el caballo puede atacar en la matriz contrincante.

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


Referencia: Ajedrez – El caballo – 02: Explicación del movimiento del caballo