3Eva_IIIT2004_T3 Elección de representante, cualquier candidato

Mejoramiento III Término 2004 – 2005. Marzo, 2005 /ICM00794

Tema 3. Un grupo de n personas: 1,2, 3, … , n, deben elegir su representante mediante una votación. votacion

Cualquiera de ellos puede ser candidato, pero para ganar la elección requiere tener más de la mitad de los n votos.

Escriba un programa que lea los n votos en un vector denominado votos y lo envíe a una función x=gana(votos), que usted debe escribirla, la cual entrega en x el número del candidato ganador.
Si no hay ganador, x contendrá 0.

Finalmente el programa debe mostrar en la pantalla el resultado de la elección.

3Eva_IIIT2004_T2 Control de sillas en auditorium

Mejoramiento III Término 2004 – 2005. Marzo, 2005 /ICM00794

Tema 2. Para control de uso de las sillas para un evento, se usará una matriz de tamaño nxm. sillasevento01

Para indicar usa silla libre, se escribirá ‘0‘ en el elemento correspondiente de la matriz, y para indicar una silla ocupada se escribirá ‘1‘.

Diseñe un programa interactivo que mediante un menú permita realizar las siguientes acciones:

1. Asignar silla
2. Devolver silla
3. Consultar silla
4. Salir

Inicialmente todas las sillas estarán vacias.

3Eva_IIIT2004_T4 Enmascara frase cambiando pareja de letras

Mejoramiento III Término 2004 – 2005. Marzo, 2005 /ICM00794

Tema 4. Un esquema simple para enmascarar un mensaje consiste en intercambiar cada par de caracteres.

Ejemplo: 
con la frase: 'TE SALUDO', 
se obtiene; ' ETSLADUO'

Escriba un programa que lea desde el teclado una línea de texto, enmascárela y almacénela en un archivo llamado ‘mensaje.txt’

Escriba un segundo programa que lea del archivo ‘mensaje.txt’ la línea de texto, la desenmascare y muestre en pantalla el texto.

3Eva_IIIT2004_T1 Carrera de ranas

Mejoramiento III Término 2004 – 2005. Marzo, 2005 /ICM00794

Tema 1. Dos ranas están en el inicio de una pista de 20 m.ranas carreras

En cada turno cada rana realiza aleatoriamente una de las siguientes acciones:

  1. No se mueve
  2. salta un metro
  3. salta dos metros

Escriba un programa que simule el recorrido de ambas ranas y determine cuál gana la carrera y cuántos saltos realizó.


Rúbrica: control de corredores (5 puntos), generar aleatorios (5 puntos), control de carrera (5 puntos), contrador de saltos (5 puntos), programa estructurado (5 puntos)

1Eva_IIT2004_T4 Matriz de paridad

Parcial II Término 2004 – 2005. Diciembre, 2004 /ICM00794

Tema 4. (25 puntos) Se necesita transmitir una matriz de 7 filas y 7 columnas conteniendo “bits” (ceros o unos).

Antes de transmitirla se debe agregar una columna a la derecha conteniendo ceros o unos, de tal manera que las 7 filas tengan paridad par, es decir que la cantidad de unos en cada fila sea par. Este cero o uno adicional se denomina bit de paridad.

Realice un algoritmo que genere aleatoriamente la matriz de 7×7 llena con ceros y unos, agregue el bit de paridad en cada fila y muestre la matriz resultante.

Ejemplo: Matriz
Datos Paridad
1 0 1 1 1 0 1 1
0 1 0 1 1 0 1 0
1 1 1 1 1 0 1 0
1 0 1 1 0 1 1 1
1 0 1 0 0 1 0 1
1 0 1 0 0 0 1 0
1 1 1 1 0 1 1 0

Ejemplo:
Para la primera fila: 1011101  1
La suma de los primeros 7 bits es 5, que es un resultado impar.

Para que la suma de toda la fila sea par se debe añadir un bit 1 adicional que es el bit de paridad.

Si suma ahora los 8 bits, incluyendo el bit de paridad, el resultado es 6 que es un número par, cumpliendo así con lo requerido.


Sugerencia: Resuelva primero para una fila, luego repita el resultado para las siguientes filas.
Referencia:
https://es.wikipedia.org/wiki/Paridad_(telecomunicaciones)

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

1Eva_IIT2004_T3 Estimar π por Montecarlo

Parcial  II Término 2004 – 2005, Diciembre, 2004 /ICM00794

Tema 3. (25 puntos) Encuentre un valor aproximado de la constante π con el siguiente procedimiento. circulo centrado en origen de radio 1

Considere un círculo de radio unitario, centrado en el origen e inscrito en un cuadrado:

Dado el valor n, genere las coordenadas x, y para n puntos.

Asigne valores aleatorios reales entre 0 y 1 y cuente cuantos puntos caen dentro del cuadrante de círculo.

Si llamamos a este contador k, se puede establecer la siguiente relación aproximada suponiendo n grande:

\frac{k}{n} = \frac{\frac{1}{4} \text{del área del círculo}}{\frac{1}{4} \text{del área del cuadrado}} \frac{\frac{1}{4}\pi(1)^2}{\frac{1}{4} (2)^2}=\frac{\pi}{4} \frac{k}{n} =\frac{\pi}{4}

Donde se puede obtener el valor aproximado de π a partir de k y n.


Rúbrica: Puntos de coordenadas aleatorias dentro del cuadrado (5 puntos), verificar punto dentro del círculo (5 puntos), conteo de puntos dentro del círculo (5 puntos), calcular el valor de π (5 puntos). Algoritmo estructurado (5 puntos)

Referencia:  Fontana di Trevi, https://es.wikipedia.org/wiki/Fontana_di_Trevi

1Eva_IIT2004_T2 Apuestas a números con dados

Parcial II Término 2004 – 2005. Diciembre, 2004 /ICM00794

Tema 2. (25 puntos) Simule en un algoritmo el juego descrito entre dos personas: A y B. dado
Muestre cuál jugador gana el juego y cuántos turnos se tuvieron que jugar.

  • Inicialmente cada una tiene $20
  • En cada turno se lanza un dado
  • Si sale 6 o 4, A gana $3 y B pierde $3
  • Si sale 2, ninguno gana ni pierde
  • Si sale 1, A pierde $6 y B gana $6
  • Si sale 3 o 5, A pierde $1 y B gana $1

El juego termina cuando una de las dos personas pierde todo su dinero.

1Eva_IIT2004_T1 Nicómano de Gerasa

Parcial II Término 2004 – 2005. Diciembre, 2004 /ICM00794

Para cada tema describa un algoritmo con un Diagrama de Flujo, Seudolenguaje , o Matlab

Tema 1. (25 puntos) Nicómano de Gerasa descubrió la siguiente propiedad de los números naturales:

Al sumar el primer impar se obtiene el primer cubo: 1 = 1
Al sumar los dos siguientes impares se obtiene el segundo cubo: 3+5 = 8
Al sumar los tres siguientes impares se obtiene el tercer cubo: 7+9+11 = 27
Al sumar los cuatro siguientes impares se obtiene el cuarto cubo: 13+15+17+19 = 64 Etc…

Con esta propiedad, para un n dado, calcule y muestre los cubos de los primeros n números naturales.

3Eva_IT2004_T4 Manejar inventario de ferretería

Mejoramiento I Término 2004 – 2005. Agosto 31, 2004 /ICM00794

Tema 4. Escriba un programa en C/C++ que permita controlar las herramientas de una ferretería en el archivo C:\producto.txt, implementando el siguiente menú:

1. Ingreso de una nueva herramienta
2. Compra de una herramienta existente
3. Venta de una herramienta existente
4. Consulta Individual de una herramienta
5. Reporte de herramientas
6. Salir

Escriba la función en C/C++ que permita hacer la compra de una herramienta existente.

Suponga que las demás funciones ya están implementadas.

Utilice la siguiente estructura para la información:

No. de registro Nombre de herramienta Cantidad
1 Martillo 76
2 Sierra 21
3 Pinzas 18
4 Destornillador 106
5 Llave de tuerca 34

3Eva_IT2004_T3 Multiplicar con campesino egipcio

Mejoramiento I Término 2004 – 2005. Agosto 31, 2004 /ICM00794

Tema3. Para efectuar la multiplicación entre 2 números enteros p y q, se puede utilizar un método recursivo denominado el Campesino Egipcio:

mult(p,q) = \begin {cases} 0 , && q=0 \\ p ,&& q=1 \\ mult \Big(2p,cociente\big(\frac{q}{2}\big)\Big) , && q\ge 2 \text {, q es par} \\ mult \Big(2p,cociente\big(\frac{q}{2}\big)\Big)+p , && q\ge 2 \text{, q es impar }\end{cases}

a) Escriba la función recursiva mult(p,q) en C/C++ que reciba dos argumentos enteros p y q, y devuelva el resultado de su multiplicación.

b) Escriba un programa en C/C++ que, pida al usuario un número entre 0 y 12 y muestre la tabla de multiplicar de dicho número, utilizando la función anterior.

Rúbrica: función recursiva (8 puntos), validar número para tabla (4 puntos), tabla de multiplicar con función recursiva (4 puntos), salida ordenada (4 puntos)


Referencia:  Matemática egipcia. https://es.wikipedia.org/wiki/Matem%C3%A1tica_egipcia

Multiplicación por duplicación. https://es.wikipedia.org/wiki/Multiplicaci%C3%B3n_por_duplicaci%C3%B3n