2Eva_IIT2012_T1 Recursiva Multi

2da Evaluación II Término 2012-2013, Enero 29, 2013 /ICM00794

Tema 1 (20 puntos). La siguiente definición recursiva permite calcular la multiplicación de dos números enteros no negativos.

multi(p,q) = \begin{cases} 0, & q=0\\ p+multi(p,q-1), & q>0\end{cases}
  • Escriba una función recursiva multi(p,q).
  • Desarrolle una prueba de escritorio para multi(3,5)

Rúbrica: literal a (15 puntos), literal b (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_IT2012_T2 Número de tecla en cifrado musical con Python

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

Tema 2. (25 puntos) El cifrado musical americano deriva de la notación griega que nombraba las notas musicales desde la letra alfa hasta la gamma; piano octava numera tecla

siendo alfa la nota “la” actual y gamma la nota “sol“ actual, tal como se muestra en el teclado del piano en la figura.

Realice una función teclanum(canción), que permita recibir una canción en cifrado americano mediante una cadena de caracteres, y la transforme en un arreglo que represente el número de la tecla a ser usada en secuencia.

Ejemplo:
>> cancion = 'EFGGFEDCCDEED'
>> teclanum(cancion) 
ans= 5 6 8 8 6 5 3 1 1 3 5 5 3

Nota: Considere un arreglo de letras y símbolos ordenados por posición, al implementar # observe que le añade una posición (+1) a la tecla anterior.

Referencia: http://es.wikipedia.org/wiki/Cifrado_ingl%C3%A9s ,
http://www.bgfl.org/custom/resources_ftp/client_ftp/ ks2/music/piano/index.htm

Rúbrica: Definición de función (5 puntos), selección de numero de tecla (10 puntos), determinar tecla con dos caracteres (10 puntos)

2Eva_IT2012_T1 BAnd y BOr lógicas

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

Tema 1 (20 puntos)
a) Escriba las funciones denominadas:
band(A,B), que devuelve resultado “A∧B” entre 2 variables enteras y otra función
bor(A,B) que devuelve el “A∨B” entre 2 variables enteras.
Ambas funciones retornan 1 si es verdadero y 0 si es falso, deben validar los datos de A y B, de existir un error devuelven -1.

b) Escriba un programa que solicite valores para las variables A, B y C, usando las funciones anteriores evalúe las siguientes ecuaciones:

X = (A ∨ B) ∧ (A ∧ C)
Y = (A ∧ B) ∨ (B ∧ C)
Z = A ∨ (A ∧ B)
W = C ∧ (A ∨ B)

Rúbrica: funciones band (5 puntos), bor (5 puntos), Programa estructurado y uso de funciones creadas en operaciones (10 puntos)

2Eva_IIT2011_T4 Inscripción universitaria SNNA

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

Tema 4. (40 puntos) Realice un programa para gestionar el proceso de inscripción como postulante universitario en el “Sistema Nacional de Nivelación y Administración” (SNNA), donde se deben registrar los datos y gestionar el proceso de acuerdo al siguiente menú:

  1. Registrar Postulante. – Ingresando los datos del postulante: Cedula, Nombre, Año Nacimiento, Provincia, Carrera a la que se postula.
  2. Consulta Día de prueba.- Ingresa la cédula y le muestra el día conforme al penúltimo dígito: 1 y 2 lunes, 3 y 4 Martes, 5 y 6 Miércoles, 7 y 8 Jueves, 9 y 0 Viernes.
  3. Postulantes por provincia.- Muestra la cantidad de postulantes por cada provincia (24 en Ecuador).
  4. Postulantes por carrera.- Muestra la cantidad de postulantes por carrera (considerar solo 5).
  5. Salir

Nota: Las provincias se podrían registrar por numero, ejemplo: 1 (Guayas), 2 (Manabí), 3 (Los Rios), etc. De la misma forma se podría proceder con las carreras, ejemplo: 1 (Ingeniería) 2 (Medicina) 3 (Leyes), etc.
Referencia: “Con problemas en sitio web se inicia registro de ingreso a universidades” www.eluniverso.com – 13.Enero.2011

Rúbrica: Menú (5 puntos), definición y uso de estructura datos (5 puntos), caso 1 (5 puntos), caso 2 (10 puntos), caso 3 mostrando tabla (10 puntos), caso 4 mostrando tabla (5 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

 

2Eva_IIT2011_T1 Algoritmo de Euclides MCD

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

Tema 1 (20 puntos). El Algoritmo de Euclides es considerado el más antiguo y no trivial para encontrar el “máximo común divisor” (mcd) entre dos números a y b.
El paso esencial que garantiza la validez del algoritmo consiste en mostrar que el mcd de a y b es:

  • considerar que a > b  y b≥0
  • si b es cero, mcd es igual a a
  • en otro caso, si b>0, es igual al mcd entre b y el residuo de a dividido por b

Realice una función recursiva mcdeuclides(a,b) siguiendo el algoritmo de Euclides, y muestre una prueba de escritorio para a=15 y b=6.

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


Prueba de escritorio:

>>> mcd_euclides(15,6)
a:  15 b:  6 residuo: 3
a:  6 b:  3 residuo: 0
3
>>> mcd_euclides(72,16)
a:  72 b:  16 residuo: 8
a:  16 b:  8 residuo: 0
8
>>>

2Eva_IT2011_T4 Números Romanos a decimal

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

Tema 4 (25 puntos). Realice un programa que reciba una cadena de caracteres, que representa un número romano y la convierta a número en base decimal.

El equivalente de números romanos se muestra en la tabla, y para la conversión considere solo las siguientes reglas:

 Tabla de equivalentes
Romano I V X L C D M
Decimal 1 5 10 50 100 500 1000
  • Si a la derecha de una cifra romana de escribe otra igual o menor, el valor de ésta se suma a la anterior.
  • Si entre dos cifras romanas cualesquiera existe otra menor, ésta restará su valor a la siguiente. Casos para I, X y C
  • En ningún número se puede poner una misma letra más de tres veces seguidas.
  • Suponga que la cadena de caracteres corresponde a un número romano válido.
Ejemplos:
Romano: CLXIII C L X I I I
Decimal: 163 +100 +50 +10 +1 +1 +1
Romano: CXLIX C X L I X
Decimal: 149 +100 -10 +50 -1 +10

Rúbrica: cálculo de equivalencias aditivas (10 puntos), equivalencias con signo menos (15 puntos)