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

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.

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_T1 Funciones ordena 3 dígitos y veces dado

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

Tema 1a. Escriba una función ordena en C/C++ que reciba como parámetros tres números enteros distintos a, b y c , y los modifique e intercambie internamente de modo que al finalizar la ejecución de la función se cumpla que los contenidos de a, b, c sean tales que a<b<c.

Las variables a, b y c utilizadas No deben ser globales. Use punteros.

Tema 1b. Escriba una función dado_aleatorio en C/C++ que reciba como parámetro un número entero n que representa una de las posibles caras de un dado (1≤n≤6) y simule la cantidad de veces que se lanza el dado (aleatoriamente) hasta que se obtenga el número n.

Escriba un programa de prueba que muestre la cantidad de veces que se necesitan hasta que salga cada una de las caras superiores del dado e indique cuál fue la cara más difícil (que necesitó más intentos para salir).

 

1Eva_IIT2003_T1 Cambiar Decimal a Octal

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

Tema 1. (25 puntos) Para realizar la conversión de un número que está en una determinada base a su equivalente decimal, debe emplearse la siguiente regla:

N = diBi + . . . + d4B4 + d3B3 + d2B2 + d1B1 + d0B0 
En donde: B: Base del sistema de numeración original
di: dígito en la posición i, con i = 0, 1, 2, …
(0 es la posición menos significativa)

Octal
Decimal
Ejemplo: para convertir 7648 a base 10: 
N = 7 x 82 + 6 x 81 + 4 x 80 = 50010

a) Escriba un Algoritmo que permita obtener el equivalente decimal (base 10) de un numero octal (entero de hasta 4 dígitos) ingresado por teclado.

Suponga que ya existe la función EsOctal(n), cuyo parámetro n es un valor entero y retorna 2 posibles valores:
1 = verdadero,
0 = falso,
según sea que n es válido o no en ese sistema de numeración.

b) Realice la prueba de escritorio del algoritmo construido en el literal a) para el siguiente ejemplo: 10348 = N10

Referencia: Bases Numéricas Introducción

2Eva_IT2003_T3 Encriptar una frase cada 3 letras

Final I Término 2003 – 2004. Septiembre 02, 2003 /ICM00794

Tema 3. (25 puntos) Para encriptar una frase se puede seguir el siguiente procedimiento:

  • Recorrer la cadena en grupos de 3 caracteres e intercambiar el primero con el tercero.
  • Si el último grupo tiene menos de 3 caracteres no se modifica.
Ejemplo:
>> encripta('el saber no ocupa lugar')
      ans = ' lebas re onuco apgular'

Diseñe una función encripta(frase) que reciba como parámetro dicha frase y la encripte con el procedimiento descrito.

Escriba un programa en C/C++ que lea una frase con un máximo de 80 caracteres, la encripte usando la función y muestre el resultado.

2Eva_IT2003_T1 Funciones promedio, mayor y menor

Final I Término 2003 – 2004. Septiembre 02, 2003 /ICM00794

Tema 1. (25 puntos) Escriba 3 funciones en C/C++, denominadas promedio, mayor y menor, las cuales reciben como parámetro un arreglo de 12 números reales y retornen, respectivamente:

  • el promedio de los elementos del vector,
  • el mayor de los elementos del vector y
  • el menor de los elementos del vector.

Escriba un programa en C/C++ que almacene en un arreglo las temperaturas medias de los 12 meses del año (datos de tipo float ingresados desde el teclado); luego llame a las 3 funciones anteriores a fin de mostrar por pantalla:

  • la temperatura anual promedio,
  • la diferencia de temperaturas entre el mes mas caluroso y el mes mas frío.

2Eva_IIT2002_T4 Juego del Imitador

Final II Término 2002 – 2003. Febrero 13, 2002 /ICM00794

Tema 4. (25 puntos) En el juego del “Imitador” pueden participar dos personas para probar su memoria en el que por medio de turnos alternos se prueba la capacidad de recordar una secuencia numérica entera (0-9) de cada jugador.  imitaodr numero secuencia

  • Se empieza mostrando un numero aleatorio entero.
  • El primer jugador solo deberá digitar este número, luego se muestra un segundo numero aleatorio, se cambia el turno y el otro jugador deberá digitar el primero y el segundo numero aleatorio.
  • Se muestra un nuevo numero aleatorio y el siguiente jugador deberá digitar los números aleatorios anteriores mas el último mostrado.
  • El juego continua hasta que uno de los dos participantes se equivoca en la secuencia y se declara al otro participante como ganador.

El juego presenta en pantalla para cada jugada lo siguiente:

  • El jugador que tiene el turno,
  • La cantidad de números de la secuencia a digitar y
  • El orden del dígito que se esta esperando por teclado.

2Eva_IIT2002_T3 Encriptar PIN(4 dígitos)

Final II Término 2002 – 2003. Febrero 13, 2002 /ICM00794

Tema 3. (20 puntos) Una compañía de telecomunicaciones tiene sospechas de que sus datos están siendo interceptados y desea transmitirlos de manera segura usando algoritmos de encriptación de tal forma que solo la pueda entender el destinatario. encriptar candado imagen

Toda su información se transmite como enteros de 4 dígitos.

El asesor de seguridad informática le recomienda seguir los siguientes pasos:

  • A cada dígito súmele siete.
  • Al resultado de esta suma, divídelo para 10 y extráigale el residuo.
  • El valor resultante reemplaza al dígito original
  • Intercambie el primer dígito con el tercero y el segundo con el cuarto.
Ejemplo: 
 >> encripta(1254)
 ans= 2189

a) Escriba una función encripta() que reciba numero entero de 4 dígitos (entre 1000 y 9999) y que retorne el mismo numero entero encriptado correspondientemente

b) Escriba un Programa que pida al usuario una clave de acceso (entero de 4 dígitos), verifique que sea válida en rango). Encripte la clave de acceso y la muestre en pantalla.

2Eva_IIT2002_T1 Verificar si es «Número perfecto»

Final II Término 2002 – 2003. Febrero 13, 2002 /ICM00794

Tema 1. (20 puntos) Un número perfecto es aquel que es igual a la suma de todos sus divisores, con excepción del mismo.

Ejemplo:
 6 es perfecto porque, 
   sus divisores son: 1, 2, 3 (6 no se considera).
   1+2+3=6

a) Defina una función llamada perfecto(x) que retorne 1 si x es un número perfecto o 0 en caso de que no lo sea.

b) Para probar la función, genere en el programa principal m pares de números aleatorios con valores entre 1 y n inclusive (m y n deben ser previamente pedidos por teclado), y muestre cuántas de estas parejas tienen su suma igual a un número perfecto.