2Eva_IT2003_T2 Función recursiva f(n)

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

Tema 2. (25 puntos) Escriba una función recursiva f en C/C++ tal que:

f(n) ={1/2, si n=0 ó n=1
      {1/2*[f(n-1) + f(n-2)], si n es impar mayor que 1
      {1/2*[f(n-1) - f(n-2)], si n es par mayor que 1

Escriba un programa en C/C++ que determine el mayor valor de la función f para n=0, 1, 2, 3, 4, 5

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

  • 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. emcriptarcandado

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_T2 Clientes en Banco A y Banco B

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

Tema 2. (35 puntos) El archivo ‘a:\DATOS1.TXT’ contiene la información de los clientes del banco A en el siguiente formato:

char cedula[10], char nombre[60], int cuenta

cuenta es un valor lógico que indica si tiene una cuenta corriente, lo contrario significa que tiene cuenta de ahorros.

El archivo a:\DATOS2.TXT contiene la información de los clientes del banco B en el siguiente formato:

char cedula[10], char nombre[60], int préstamo

préstamo es un valor lógico que indica si tiene un préstamo, lo contrario significa que no tiene deudas.

Elabore un programa que:

a) Lea los dos archivos desde el disco (disquete). (10 puntos)

b) Seleccione los clientes que tienen cuenta de ahorros y préstamo. (15 puntos)

c) Muestre un reporte por pantalla con la cédula y el nombre de los clientes que tienen cuenta de ahorros y préstamo. (10 puntos).

Nota: Dentro de un mismo archivo no existen clientes repetidos. El número de clientes máximo es 100, pero el número puede ser menor de acuerdo a si el cliente tiene o no préstamo o cuentas en el banco y puede ser leído en el archivo antes de leer el primer cliente.

2Eva_IIT2002_T1 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

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.

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.

2Eva_IIT2001_T4 Control de habitaciones en una clínica

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

Tema 4. clinicaTorre

En una clínica existen 100 habitaciones.

Los pacientes al ingresar a la clínica se les asigna una habitación, mientras que al darles de alta se deja libre la habitación.

a) Crear dos estructuras de datos en C/C++, para lo cual se conoce los siguiente:

  • Paciente: Cédula (10 caracteres), Nombre (50 caracteres), código de habitaciones (entero).
  • Habitación: Código (entero), Ocupada (1=Sí,  0=No)
Paciente
cédula nombre código
1234 Juan 2
456 Maria 8
Habitación
código 1 2 7 8
ocupada 0 1 0 1

b) Escriba un programa en C/C++ que permita ingresar la información de pacientes y habitaciones, con el siguiente menú:

1. Ingresar habitaciones
2. Ingresar y asignar pacientes a las habitaciones
3. Dar de alta a los pacientes de las habitaciones
4. Salir

Nota.- Las restricciones son las siguientes:
No se puede asignar un paciente a una habitación que está ocupada.
No se puede liberar una habitación que no esté ocupada.

2Eva_IIT2001_T3 Flujo de ahorro para n años

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

Tema 3.

El flujo de efectivo Fk se evalúa recursivamente considerando el flujo neto anterior Fk-1 y las tasas i1, i2 tal como se indican en la fórmula.

F_k = \begin{cases} (1 + i_1)F_{k-1}+C_k, && F_{k-1} \ge 0, k>0 \\(1 + i_2)F_{k-1}+C_k,&& F_{k-1} \lt 0, k \gt 0 \\ 0 ,&& k=0 \end{cases}

En la fórmula, C representa un arreglo de los valores del flujo para n años que operan en un determinado negocio (los valores negativos indican desembolsos)

Ejemplo:
C0 C1 C2 C3 C4 Cn
-500 300 600 -200 300 -200 -300 350

a) Escriba una función recursiva para poder utilizar FK.

b) Escriba un programa principal que lea i1, i2, y el arreglo Ck, de n elementos y llame a la función anterior para calcular FK.

c) Posteriormente, en el mismo programa asigne a i1, el valor de 0.1 y pida por teclado dos valores para i2. Evalúe FK para los casos e identifique si hubo un cambio de signo.

Nota: Considere las variables float C[20], i1, i2 como globales.

2Eva_IIT2001_T2 Contar puntos aleatorios en un triángulo

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

Tema 2. Escriba un programa en C/C++ que genere aleatoriamente valores enteros para 100 pares ordenados (x, y) tales que: triangulozona

0≤x≤10
0≤y≤10

El programa deberá escribir CUANTOS puntos se encuentren dentro del área sombreada mostrada en la figura:

2Eva_IIT2001_T1 Calcular composición (f o g) (x)

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

Tema 1. Considere las funciones de variable real:

f(x) = x ex + 1
g(x) = x Sen(x)
  • Escriba dos funciones en C/C++ que definen las reglas de correspondencia para f y g respectivamente.
  • Elabore un programa principal en C/C++ que permita encontrar el menor y el mayor valor de la función (f o g)(x) con valores de
    x= 0.1, 0.2, 0.3, … ,2.9, 3.0