2Eva_IIIT2003_T3 función distancia de Hamming

Final III Término 2003 – 2004. Abril 23, 2004 /ICM00794

Tema 3. Dados dos vectores U y V, se define la distancia de Hamming, d(U,V), como el número de posiciones en las cuales difieren los vectores U y V.

Por ejemplo:
U 2 0 0 0 1
V 1 0 1 0 3

d(U,V) = 3, ya que existen tres posiciones (la primera, la tercera y la quinta) en las cuales los dos vectores tienen diferente valor.

>>> U='20001' 
>>> V='10103'
>>> dHamming(U,V)
 3

a) Escriba una función, denominada Hamming(), que reciba como parámetros dos cadenas de caracteres y retorne un entero que indique la distancia Hamming entre ellas. Si las cadenas no tienen longitudes iguales la función retornará -1.

b) Escriba un programa que pida al usuario el ingreso de una clave (cadena de caracteres), que a continuación lea otra cadena almacenada en un archivo denominado ‘clave.dat‘ ya existente en la unidad de disco ‘C:\’.
Luego, después de llamar a la función Hamming(), muestre por pantalla un mensaje indicando si la cadena ingresada coincide o no con la cadena almacenada en el archivo ‘clave.dat‘.

1Eva_IIIT2003_T3 Coordenadas enteras en un círculo

Parcial III Término 2003 – 2004. Abril 02, 2004 /ICM00794

Tema 3. (25 puntos) Escriba un algoritmo en seudo-código para determinar el número de puntos del plano cartesiano con coordenadas de valores enteros que pertenecen al círculo limitado por la circunferencia de ecuación

x^2 + y^2 = 100

(centro en el origen y radio 10).

Muestre también el promedio de las distancias de dichos puntos al origen de coordenadas.

Rúbrica: Manejo de índices enteros como coordenadas (5 puntos). control de intervalos de coordendas en dos dimensiones (5 puntos), manejo de contadores y condicionales (10 puntos), promedio de distancias (5 puntos).

1Eva_IIIT2003_T2 Verificar números triangulares

Parcial III Término 2003 – 2004. Abril 02, 2004 /ICM00794

Tema 2. (25 puntos) Considere la secuencia de números triangulares, cuyo nombre refleja su ley de formación:

1, 3, 6, 10, …


Escriba un algoritmo en seudo-código que indique si un número natural t, ingresado por teclado, es triangular.

Esto es, si es de la forma:

t = \sum_{i=1}^{n}i

para algún número natural n

Rúbrica: identificación de piso en operación (5 puntos), cálculo de usados (5 puntos), control de pisos construidos (5 puntos), validar s es triangular (5 puntos), algoritmo estructurado (5 puntos)

Referencia: Número triangular. Wikipedia

2Eva_IIIT2003_T2 Raíz cuadrada por Newton, recursiva

Final III Término 2003 – 2004. Abril 23, 2004 /ICM00794

Tema 2. La raíz cuadrada de un número real x mayor que 0 se puede obtener a través de una aproximación n-ésima de una función f según el método de Newton, el cual establece lo mostrado:

f(1) = \frac{x}{2} f(2) = 0.5\Bigg(f(1) + \frac{x}{f(1)}\Bigg) f(3) = 0.5\Bigg(f(2) + \frac{x}{f(2)}\Bigg)

f(n) = 0.5\Bigg(f(n-1) + \frac{x}{f(n-1)}\Bigg)

a) Escriba una función recursiva f que reciba dos parámetros:

  • x (el número del cual se desea calcular la raíz cuadrada) y
  • n (el número de aproximaciones).

Esta función debe retornar la raíz cuadrada de x para la n-ésima aproximación.

b) Escriba un programa que permita el ingreso de un número real x y que, mediante sucesivas llamadas a la función f, muestre los resultados del cálculo de la raíz cuadrada de dicho número para cada una de las 10 primeras aproximaciones (n = 1, 2, 3, .. , 10).

Nota: considere aplicar una bandera como indicador que la raiz no es posible para números negativos o cero. Tampoco es posible para n menores que 1

Referencia: https://es.wikipedia.org/wiki/Ra%C3%ADz_cuadrada


Ejemplo:

ingrese x: 9
aproximación n-esima: 10
 i , f(i)
0 nan
1 4.5
2 3.25
3 3.0096153846153846
4 3.000015360039322
5 3.0000000000393214
6 3.0
7 3.0
8 3.0
9 3.0
10 3.0
>>> 

2Eva_IIIT2003_T1 Juego de dados por sumas

Final III Término 2003 – 2004. Abril 23, 2004 /ICM00794

Tema 1. En un juego se lanza un dado 5 veces y se gana cuando la suma de puntos obtenida en los dos primeros lanzamientos es igual a la obtenida en los restantes tres.

Ejemplo:

>>juego()
dado = [3, 2, 1, 3, 1]
sumas = [5, 5]
ans=1

>>juego()
dado = [2, 4, 5, 2, 1]
sumas = [6, 8]
ans=0

a) Escriba una función, denominada juego(), que simule los cinco lanzamientos del dado y retorne dos posibles valores:
1, si se trata de un jugada ganadora y
0 en caso contrario.

b) Escriba un programa en C/C++ que permita realizar 1000 jugadas diferentes sucesivas mediante llamadas a la función juego, y que muestre por pantalla el porcentaje de jugadas ganadoras.

1Eva_IIIT2003_T1 Prueba de escritorio, conceptos

Parcial III Término 2003 – 2004. Abril 02, 2004 /ICM00794

Tema 1.

a) (10 puntos) Complete la siguiente Tabla de números escritos en diferentes bases numéricas:

Decimal Binario Octal Hexa- decimal
1568
A2D

b) (15 puntos) Muestre el contenido de los 10 valores del vector X al finalizar la siguiente secuencia de instrucciones:

Para j ← 1 hasta 3, incremento 1
    X[j] ← j - 1
fin
Para j ← 4 hasta 10, incremento 1
    X[j] ← X[j-3] - X[j-2] + X[j-1]
fin
Tabla para Prueba de Escritorio
j 1 2 3 4 5 6 7 8 9 10
X[j]

Rúbrica: literal a (2 puntos cada casilla). literal b, manejo de indices (2 puntos), manejo de vectores (5 puntos), interpretación de operaciones (5 puntos), valores completos (2 puntos).

1Eva_IIT2003_T4 Juego con icosaedros

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

Tema 4. (30 puntos) Se requiere implementar un juego por computadora que consiste en generar aleatoriamente el lanzamiento de 2 icosaedros (poliedro regular de 20 caras triangulares).

Las caras están identificadas por color (azul, blanco, rojo o negro) y un número entero (1, 2, 3, 4 o 5).

Una vez lanzados y se han detenidos los dos icosaedros (lanzamientos simulados), considere las siguientes reglas para el juego:

  • Se observan las caras de la base:
  • Si coinciden los colores de las bases, el jugador gana 10 centavos.
  • Si coinciden los números de las bases, el jugador gana 10 centavos.
  • Si coinciden los colores y los números de las bases, el jugador gana 50 centavos.
  • Si la suma de los números de las bases es impar, el jugador gana 5 centavos más.

Para iniciar el juego, se debe presionar el número 1.

Para seguir jugando se debe presionar el número 2, y

Para terminar el juego se debe presionar el número 3.

Al final del juego se deberá mostrar el total pagado al Jugador y la cantidad de lanzamientos realizados.

A continuación se muestra una ejecución en pantalla del algoritmo que se debe construir:

Presione 1 para iniciar el juego: 1
 Icosaedro 1: 2 de color rojo
 Icosaedro 2: 4 de color rojo
 Jugador GANO 10 centavos

Presione 2 para lanzar, 3 para salir: 2
 Icosaedro 1: 3 de color azul
 Icosaedro 2: 3 de color negro
 Jugador GANO 10 centavos

Presione 2 para lanzar, 3 para salir: 2
 Icosaedro 1: 4 de color blanco
 Icosaedro 2: 4 de color blanco
 Jugador GANO 50 centavos

Presione 2 para lanzar, 3 para salir: 2 
 Icosaedro 1: 3 de color negro
 Icosaedro 2: 4 de color negro
 Jugador GANO 15 centavos

Presione 2 para lanzar, 3 para salir: 3
 El jugador GANO 85 centavos en 4 Lanzamientos

2Eva_IIT2003_T4 Contar palabras en un archivo

Final II Término 2003 – 2004. Febrero 10, 2004 /ICM00794

Tema 4
a) Escriba una función cuenta_palabra() en C/C++ que reciba una cadena de caracteres y determine cuántas palabras contiene. Suponga que las palabras están separadas por un espacio en blanco.

b) Escriba un programa de prueba en C/C++ que llame a dicha función para determinar cuántas palabras contienen las primeras 20 líneas del archivo de texto “A:\datos.txt”. El programa también deberá indicar cuál es la palabra más larga de entre las contenidas en esas 20 primeras líneas.

 

2Eva_IIT2003_T3 Funciones eudoxus recursivas

Final II Término 2003 – 2004. Febrero 10, 2004 /ICM00794

Tema 3. Los números de Eudoxus se definen mediante la siguiente formulación:

{x[0] = 1
{x[i] = y[i] + y[i-1] , i>=1

{y[0] = 0
{y[i] = x[i-1] + y[i-1] , i>=1

a) Escriba las funciones recursivas eudoxusX(i) y eudoxusY(i) que permitan generar cada par ordenado(xi, yi).

b) Adicionalmente escriba un programa de prueba que, utilizando las funciones anteriores, muestre los pares ordenados generados recursivamente para 0≤in, donde n es un valor entero leído previamente.

1Eva_IIT2003_T3 Personas asignadas a proyectos

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

Tema 3. (25 puntos)

En una Matriz de orden nxm se quiere representar la relación de n personas y m proyectos. Los datos de la matriz pueden ser:

1: Persona asignada al proyecto,
0
: Persona no asignada al proyecto.

Escriba un algoritmo que realice lo siguiente:

a) Lea y valide los datos de la matriz.

b) Para cada proyecto, liste cuántas personas han sido asignadas.

c) Liste cuáles son las personas que No están Asignadas a proyecto alguno.

m
Matriz 1 2 3
1 0 1 0
2 1 0 0
3
Personas n 4