3Eva_IT2003_T5 Calcular área de f(x) por Montecarlo

Mejoramiento I Término 2003 – 2004. Septiembre 16, 2003 /ICM00794

Nota.- En este examen deben desarrollarse un total de 4 temas. El desarrollo de los temas 1, 2 y 3 es obligatorio. UD. puede seleccionar un solo tema de entre los restantes (4, 5 o 6). Cada tema tiene igual ponderación (25%).

Tema 5. El área bajo la curva de una función f puede estimarse mediante el método de Montecarlo, que consiste en lo siguiente:

  • Establecer un rectángulo tal que x Є [a,b]; y Є [0,d], tal que y=f(x)
  • Generar un numero n de puntos aleatorios tal que a<x<b, 0<y<d.
  • Indicar cuántos de estos puntos caen bajo la curva y=f(x)
  • El área bajo la curva puede estimarse mediante la relación:
\frac{\text{Area bajo la curva}}{\text{Area bajo el rectangulo}} = \frac{\text{numero de puntos bajo la curva}}{n}

Escriba un programa en C/C++ que lea las dimensiones a, b, d de la posición del rectángulo, genere aleatoriamente n pares ordenados dentro de ese rectángulo e indique cuántos puntos están bajo la curva y=f(x)=xe-(x/2) en el intervalo [0,2]

3Eva_IT2003_T4 Prueba de escritorio, funciones

Mejoramiento I Término 2003 – 2004. Septiembre 16, 2003 /ICM00794

Nota.- En este examen deben desarrollarse un total de 4 temas. El desarrollo de los temas 1, 2 y 3 es obligatorio. UD. puede seleccionar un solo tema de entre los restantes (4, 5 o 6). Cada tema tiene igual ponderación (25%).

Tema 4. Dada la siguiente definición para una función denominada misterio():

int misterio(int m,int n){
    if (m==0)
        return n+1;
    else
        if (n==0)
            return misterio(m-1,1);
        else
            return misterio(m-1, misterio(m,n-1));
}
m
n

Realice una prueba de escritorio (paso por paso), para mostrar el resultado de la ejecución de la sentencia: misterio(1,1)

3Eva_IT2003_T3 Reportar notas desde un archivo

Mejoramiento I Término 2003 – 2004. Septiembre 16, 2003 /ICM00794

Tema 3. Se tienen los datos de 20 estudiantes almacenados en ‘c:\notas\entrada.dat’. En el archivo, la estructura de cada registro para cada estudiante estudiante es:

entrada.dat: 
matricula (9 caracteres),apellido (10 caracteres), nota1 (entero), nota2 (entero), faltas (entero)

Lea los datos de los estudiantes almacenados en ‘c:\notas\entrada.dat’, y genere el archivo ‘c:\notas\salida.dat’, donde para cada estudiante se consideran los siguientes datos:

salida.dat:
matricula (9 caracteres), apellido (10 caracteres), promedio (entero), estado (tipo caracter).
  • Promedio almacena el promedio de las 2 mejores notas.
  • Estado puede tomar el valor «A» si el estudiante aprueba, o «R» si reprueba.

Un estudiante aprueba cuando el promedio es mayor o igual que 60 y el numero de faltas es menor que el 40% del total de clases dictadas (definido con una constante NUM_CLASES).
Un estudiante reprueba en caso de no cumplir tal requisito de aprobación.

3Eva_IT2003_T2 Verificar un cuadrado mágico

Mejoramiento I Término 2003 – 2004. Septiembre 16, 2003 /ICM00794

TEMA 2. Un cuadrado mágico es una matriz cuadrada de orden n, tal que sus elementos son los números 1, 2, 3, 4, …, n2; sin repeticiones y ubicados de tal manera que la suma de los elementos de cada fila es igual a la suma de los elementos de cualquier columna e igual a la suma de los elementos de las diagonales.

Por ejemplo, la matriz siguiente es un cuadrado mágico de tercer orden.

4 9 2
3 5 7
8 1 6
Ejemplo:
Es un cuadrado mágico: 1

Escriba un programa en C/C++ que permita leer los elementos de una matriz nxn, tal que n<10 y verifique si el cuadrado es mágico.

3Eva_IT2003_T1 Raíces enteras positivas del polinomio

Mejoramiento I Término 2003 – 2004. Septiembre 16, 2003 /ICM00794

Tema 1. Encuentre el número de raíces enteras positivas y diferentes menores que 20 que hay en la ecuación polinómica p(x)=0, donde:

p(x) = – 336x + 356x + 208x  – 337x4   + 127x5  + 19x6 + x7

término 1 2 3 4 5 6 7
coeficiente [término] -336 356 208 -337 127 -19 1

a) Escriba una función num_raices que:

  • reciba el grado del polinomio y un arreglo entero con los coeficientes de la ecuación y
  • retorne el número de raíces enteras positivas y diferentes menores que 20, de dicha ecuación.

b) Escriba un programa en C/C++ que permita leer el grado y los coeficientes del polinomio p(x), llame a la función num_raices y presente el resultado.

3Eva_IT2002_T3 Determinar productos iguales entre vendedores

Mejoramiento I Término 2002 – 2003. Septiembre 24, 2002 /ICM00794

Tema 3. Suponga que existen en una unidad de almacenamiento los archivos :

‘A:\vendedor1.txt’ y
A:\vendedor2.txt’

que contienen los registros de artículos de cada uno de los vendedores con la siguiente información:

 

código de un artículo (entero) y 
nombre del artículo (10 caracteres)

a) Escriba un programa en C++ que lea desde el teclado dos listas conteniendo los códigos de los artículos que ofrecen dos vendedores.
Luego las almacene en los archivos descritos.
Cada lista puede tener hasta 20 códigos.

b) Compare y muestre ¿cuales son los nombres de los artículos que están ofreciendo ambos vendedores?

Sugerencia: almacene las listas en arreglos de una dimensión, encuentre la intersección de las dos listas y busque los nombres en el archivo A:\DATOS.

3Eva_IT2002_T2 Determinar primo permutable

Mejoramiento I Término 2002 – 2003. Septiembre 24, 2002 /ICM00794

Tema 2. Se dice que un número de dos cifras es primo permutable si al intercambiar sus cifras sigue siendo primo.

Ejemplos:
 37 es primo y 73 es primo
 17 es primo y 71 es primo
 19 es primo y 91 no es primo, no es primo permutable
 etc.

a) Escriba una función para determinar si un número es primo.

b) Use esta función en un programa que seleccione aleatoriamente números de dos cifras hasta encontrar un número primo permutable.

Sugerencia: Para cada número generado separe los dígitos y obtenga el número con las cifras intercambiadas. Llame dos veces a la función indicada y termine cuando ambos números sean primos.

3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

Mejoramiento I Término 2002 – 2003. Septiembre 24, 2002 /ICM00794

Tema 1. Diez equipos de la liga Inter– barrial identificados con los números 1, 2, 3, … , 10, participaron en un campeonato de fútbol en la modalidad todos contra todos.

Los goles anotados en cada encuentro se registraron en el siguiente cuadro:

Goles(F,C) 1 2 3 4 10
1 0 4 2 1
2 5 0 3 2
3 0 2 0 1
4 1 0 2 0
10 0
Se puede ver por ejemplo que:
El equipo 1 marcó 
    4 goles al equipo 2,
    2 goles al equipo 3,
    1 gol al equipo 4 etc.
El equipo 2 marcó
    5 goles al equipo1,
    3 goles al equipo 3,
    2 al equipo 4, etc.

Escriba un programa en C que:

a. Lea el cuadro de goles en un arreglo de dos dimensiones y

b. muestre para cada equipo la cantidad de triunfos, empates y derrotas,

c. así como la diferencia entre el total de goles marcados y el total de goles recibidos.


goles = np.array([[0,4,2,1],
                  [5,0,3,2],
                  [0,2,0,1],
                  [1,0,2,0]])

3Eva_IT2000_T3 Archivo con socios del club

Mejoramiento I Término 2000 – 2001 /ICM00794

Tema 3. Escriba un programa que permita manejar un archivo mediante los siguientes procedimientos:

a) Ingrese los datos de los socios de un club en un archivo tipo texto, en los que se registra:

Número de membresía (entero), 
género (m ó f), 
Edad (real), 
Nombre (20 caracteres)

b) Liste los números y nombres de los miembros del club cuya edad está entre 20 y 30 años y son del sexo femenino.

c) Cuando ya funcione el segundo programa, agregue las instrucciones necesarias para que el computador elija aleatoriamente un socio para entregarle un premio. Muestre el nombre del socio ganador.

Rúbrica: Literal a (10 puntos), literal b (8 puntos), literal c (7 puntos)

3Eva_IT2000_T2 Matriz: puntos por goles en campeonato

Mejoramiento I Término 2000 – 2001. Septiembre 24, 2000 /ICM00794

Tema 2. En un campeonato de fútbol intervienen n equipos, siendo n un dato entero menor que 10.

Cada equipo juega contra todos los demás equipos y los goles anotados en cada encuentro han sido almacenados en una matriz nxn como se indica en la tabla ejemplo:

Goles(f,c)
1 2 3 4 5
1 0 3 1 2 1
2 1 0 3 2 3
3 0 2 0 1 1
4 1 0 2 0 1
5 3 4 1 2 0
0
El equipo 1 marco 3 goles al equipo 2,
   1 gol al equipo 3, etc.
El equipo 2 marco 1 gol al equipo 1,
    2 goles al equipo 3, etc.

Lea la matriz y determine cuantos puntos tiene cada equipo. Los puntos asignados son: empate 1, triunfo 3 , derrota 0.


Se adjunta la matriz en python para el ejercicio en forma de un arreglo de 5×5:

goles = np.array(
       [[0, 3, 1, 2, 1],
        [1, 0, 3, 2, 3],
        [0, 2, 0, 1, 1],
        [1, 0, 2, 0, 1],
        [3, 4, 1, 2, 0]] )