3Eva_IT2014_T4 Función siembra

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 4. (25 puntos) Realice una función siembra(tablero, fila, columna) que en un tablero de 2×8, siguiendo el sentido de las manecillas del reloj, distribuye la cantidad de fichas en la casilla indicada por fila y columna, equitativamente una a una entre las casillas contiguas.

Observe que dependiendo de la fila, la siguiente casilla es o a la izquierda o a la derecha de donde estaba.

Al redistribuir el valor:

  • Se empieza a partir de la siguiente casilla seleccionada.
  • Si la siguiente casilla está fuera del tablero, se cambia de fila, invierte el sentido entre izquierda o derecha, y se corrige regresando al tablero en el mismo extremo.
  • Se incrementa el valor de la casilla

Repitiendo el proceso hasta que no queden fichas.

>>tablero
0 4 4 4 4 4 4 0
0 4 4 4 4 4 4 0
>>siembra(tablero,1,5)
0 4 4 4 0 5 5 1
0 4 4 4 4 4 4 1
>>siembra(tablero,2,2)
1 5 5 4 4 4 4 0
1 0 4 4 4 4 4 0

Rúbrica: definir función (5 puntos), asignar sentido (5 puntos), añadir valor a casillas (5 puntos), control del valores, tamaños, validar extremos (10 puntos)

3Eva_IT2014_T3 Juego Poli-Mancala

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 3. (25 puntos). Poli-mancala es un juego de tablero con 2×8 casillas, 48 fichas y un movimiento denominado “siembra”.

  • Al inicio, se ubican 4 fichas en cada casilla excepto en los extremos izquierdo y derecho del tablero.
  • Se juega por turnos alternados para realizar un movimiento de siembra.
  • Suponga que existe la función siembra(tablero, fila, columna) que devuelve el tablero modificado.
  • La siembra consiste en tomar todas las fichas de una casilla de la fila del jugador, y depositar una a una en las casillas contiguas siguiendo el sentido de las manecillas del reloj.
  • Las casillas de cada jugador se encuentran diferenciadas por color en el tablero mostrado.
  • Cada jugador puede realizar jugadas solo sobre sus casillas excepto la de su extremo (entre columnas 2 y 7).
  • El jugador que acumule más de la mitad de fichas en las casillas de su extremo (Casa) gana el juego.

Realice un programa para dos jugadores del juego descrito de Poli-mancala.

Tablero inicial:
Jugador1 [0 4 4 4 4 4 4 0] Jugador2
   0     [0 4 4 4 4 4 4 0]    0

Jugador 1. ¿Casilla siembra?: 5
Jugador1 [0 4 4 4 0 5 5 1] Jugador2
   0     [0 4 4 4 4 4 4 1]    2

Jugador 2. ¿Casilla siembra?: 2
Jugador1 [1 5 5 4 0 5 5 1] Jugador2
   2     [1 0 4 4 4 4 4 1]    2

Referencia: http://www.ludoteka.com/wari.html
Rúbrica: Inicializar juego (5 puntos), control jugadas (5 puntos), control de puntajes (10 puntos), distribuir fichas (5 puntos)

3Eva_IT2014_T2 Gestionar Cocinas Inducción

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 2. (30 puntos)cocina04 Para implementar cocinas de inducción se requiere realizar un registro de los datos de los interesados, usando el menú mostrado.

Menú
1. Registro de datos del usuario
2. Verificar medidor eléctrico
3. Verificar instalación
4. Asignar incentivo tarifario
5. Reporte
6. Salir

El registro de datos de usuario requiere de los siguientes datos:

código medidor cédula nombre Tipo cocina Verifica medidor Verifica Instalación Asigna incentivo
54321 091234 Maria 2 0 0 0
  • Los tipos de cocina son de 2, 4 y 5 “focos” (hornillas), las verificaciones y asignación se realizan en los siguientes pasos, por lo que inician en 0.
  • Para cada interesado, la empresa eléctrica verifica que el medidor en la residencia sea de 220V.
  • Después de la compra de la cocina, se tiene que verificar la instalación eléctrica usada es apropiada (1, sino use -1).
  • Para asignar el incentivo tarifario a todos los interesados, deben haber cumplido satisfactoriamente los pasos de verificación.
  • El reporte del programa debe mostrar el número de registrados, medidores verificados, instalaciones correctas y cuántos ha cumplido con los requisitos para obtener el incentivo tarifario.

Realice un programa para gestionar los datos de este proceso.

Referencia: http://www.ecuadorcambia.com/ http://www.eluniverso.com/noticias/2014/08/28/nota/3574916/mas-11-mil-inscritos-plan-cocinas
Rúbrica: Menú (5 puntos), estructura de datos y uso (5 puntos), control de variables (10 puntos), verificación (5 puntos), reporte (5 puntos).

3Eva_IT2014_T1 Potencia recursiva

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 1 (20 puntos).La operación matemática de la exponenciación entera mostrada, permite la implementación de un algoritmo exponenciación rápida, al realizar menos multiplicaciones si se calcula sólo una vez el término a (b/2).

a^b = \begin{cases} a^{(b/2)}*a^{(b/2)}, & b>0 \text{ y b es par}\\ a*a^{(b-1)}, & b>0 \text{ y b es impar} \\ 1, & b=0 \end{cases}

Escriba una función recursiva potencia(a,b), considerando la exponenciación rápida y realice una prueba de escritorio para 34.

Rúbrica: Definir función (5 puntos), desarrollo función (10 puntos), prueba de escritorio (5 puntos)

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_T3 buscar cadena en una frase

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

Tema 3. (25 puntos) Realice una función en buscarcadena(frase, cadena) que entrega un vector con la posición inicial de todas las veces que aparece una cadena de caracteres en una frase.

>>frase= ‘cada proyecto tiene programas y compromisos’
>>cadena=’pro’
>> buscarcadena(frase, cadena) ans = 6 21 36

Nota: Se debe describir el algoritmo completo, NO use la función strfind() incluida en matlab,
Rúbrica: Definir función (5 puntos), buscar letra (5 puntos), validar cadena buscada (5 puntos) crear vector de resultados (10 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)

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)

3Eva_IT2013_T3 Menú de consejerías académicas

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

Tema 3 (30 puntos). Para administrar las consejerías por estudiante, se requiere un programa que administre mediante un menú los listados de consejeros y estudiantes.

http://www.vra.espol.edu.ec/content/estudiantes
Consejerias VRA-ESPOL
Menú
1. Ingresar datos de estudiante
2. Ingresar datos de consejero
3. Sorteo de consejeros/estudiantes
4. Mostrar lista de estudiantes por consejero
5. Mostrar consejero de un estudiante
6. Salir

El programa registra de los listados de estudiantes con su número de matrícula, nombre y correo electrónico;
para los consejeros se registra su cédula, nombre y correo electrónico.

  • En el numeral 3, una vez ingresado todos los datos, se procede al sorteo descrito en el tema anterior.
    Puede usar la función del tema anterior para la asignación
  • En el numeral 4, Un consejero solicita su lista con los datos de los estudiantes asignados dando su número de cédula; al final se muestra el número de estudiantes asignados.
  • En el numeral 5, Un estudiante puede solicitar los datos de su consejero ingresando el número de matrícula.

Rúbrica: Menú (5 puntos), definición y uso de estructuras (5 puntos), opción 3 (5 puntos), opción 4 (10 puntos), opción 5 (5 puntos)


Referencia: http://www.vra.espol.edu.ec/content/estudiantes