3Eva_IIT2014_T2 última sílaba

3ra Evaluación II Término 2014-2015, Marzo 10, 2015 /ICM00794

Tema 2 (20 puntos) Realice una función ultimasilaba(palabra) que al recibir una palabra retorne los dos o tres últimos caracteres.
Si la última letra es una vocal, la respuesta serán las dos últimas letras, si es consonante la respuesta contiene las tres últimas letras.

>>> ultimasilaba('casa')
'sa'
>>> ultimasilaba('color')
'lor'
>>> ultimasilaba('examen')
'men'

Referencia: http://www.wikilengua.org/index.php/S%C3%ADlaba

Rúbrica: definir función (5 puntos), determinar vocal o consonante (8 puntos), repuesta condicionada (7 puntos).

3Eva_IIT2014_T1 Ubicar estudiantes en aula

3ra Evaluación II Término 2014-2015, Marzo 10, 2015 /ICM00794

Tema 1. (25 puntos). Se dispone de una lista con los números de matrícula para k estudiantes que darán un examen. El salón donde se desarrollará el examen tiene sillas distribuidas de forma ordenada en n filas y m columnas. dandoexamen

Realice un programa que permita ingresar en un vector los números de matrícula, luego usando una matriz, asigne las sillas de forma aleatoria para cada estudiante.

El resultado se debe mostrar de dos formas:

a) una matriz que contiene en las casillas los números de matrícula.
b) un listado con números de matrícula, y la posición de fila y columna de la silla asignada al estudiante.

Considere que:

  • k siempre es menor que la capacidad de sillas en el aula (nxm),
  • Una silla sin estudiante asignado, contiene valor 0.
  • Las ubicaciones de los estudiantes son únicas.
>>> cantidad de estudiantes: 50
filas en el aula: 5
columnas en el aula: 4
**Hay más estudiantes que las sillas en el aula
cantidad de estudiantes: 5
filas en el aula: 5
columnas en el aula: 4
matricula[1]:123
matricula[2]:234
matricula[3]:345
matricula[4]:456
matricula[5]:567

Distribución del aula
[[ 0  567 0   0  ]
 [ 0  0   0   345]
 [ 0  0   123 0  ]
 [ 0  0   0   0  ]
 [ 0  0   234 456]]
Listado de sillas
matricula, fila, columna
123 3 3
234 5 3
345 2 4
456 5 4
567 1 2

Rúbrica: Ingresar y validar (5 puntos), literal a (10 puntos), literal b (5 puntos). Algoritmo estructurado. (5 puntos)

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. sillasevento01

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)