3Eva_IT2005_T2 Juego biológico

Mejoramiento I Término 2005 – 2006. Septiembre 13, 2005 /ICM00794

Tema 2. (30 puntos) Para simular un juego biológico se almacena en una matriz nxn números aleatorios 0 o 1. El 1 corresponde a un ser vivo.

a) Determine el porcentaje de seres vivos generados.

Ejemplo para a)
0 1 0 1
0 1 0 0
1 1 1 0
0 1 0 0
0 0 0 1
0 0 0 0

b) Para el primer ciclo de análisis, busque en la matriz si existen seres vivos rodeados en sus cuatro lados de otros seres vivos. En este caso, se considera superpoblación, por lo que se cambia el ser vivo de 1 a 0. Determine el nuevo porcentaje de seres vivos.

Ejemplo para a)
0 1 0 1
0 1 0 0
1 0 1 0
0 1 0 0
0 0 0 1
0 0 0 0

Rúbrica: Literal a (15 puntos), literl b (15 puntos)

3Eva_IT2005_T1 Determinar si corresponde a relación o función

Mejoramiento I Término 2005 – 2006. Septiembre 13, 2005 /ICM00794

Tema 1. (25 puntos) Dos vectores contienen n pares ordenados (x, y).

Realice un programa en Matlab para determinar si la correspondencia de x a y es una relación o una función matemática.

Sugerencia: Verifique que todos los valores de x sean diferentes entre si.

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)

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

3Eva_IT2004_T2 Realizar el producto vectorial

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

Tema 2. Escriba una función prod_vectorial(a,b) que reciba como argumento dos estructuras correspondientes a dos vectores a y b en IR3 y retorne otra estructura correspondiente al vector que representa su producto vectorial (producto cruz).

Ej: si a=(1,3,1) y b=(-2,1,0) entonces:
 La función debe retornar el vector (-1,-2,7)
i j k
1 3 1
-2 1 0
axb = i(3*0 - 1*1)-j(1*0-(-2*1)+k(1*1-(-2*3))
    = -i+2j+7k

Escriba un programa en C/C++ que pida al usuario las coordenadas de dos vectores (valores enteros) y muestre el resultado de su producto vectorial.

3Eva_IT2004_T1 Buscar número al lanzar el dado

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

Tema 1. Escriba la función al_fin(n,k) en C++ que reciba dos argumentos enteros:

  • n representa la cara de un dado (1≤n≤6), números aleatorios) y
  • k representa el número de éxitos que deben aparecer esa cara.

La función devolverá la cantidad de pruebas que se realizaron hasta conseguir los k éxitos.

Escriba un programa en C/C++ que llame a la función anterior m veces y encuentre las frecuencias en que aparecen los m resultados.