Sei sulla pagina 1di 6
´ ´ EXAMEN PR ACTICO 1 (Noviembre 2011) que no cumpla escrupulosamente las normas que
´ ´ EXAMEN PR ACTICO 1 (Noviembre 2011) que no cumpla escrupulosamente las normas que
´
´
EXAMEN PR ACTICO 1
(Noviembre 2011)
que no cumpla escrupulosamente
las normas que aparecen a continuacion´
Descripcion´
de la practica´
utilizar los conocimientos adquiridos en los temas 1 y 2.
de las practicas´
se tendra´ en cuenta, ademas´ de la correc-
propuesta, el estilo de programacion,´
el uso correcto de
fuente.
de
Configuraci´on/Depuraci´on
del
comando/Editar/

FUNDAMENTOS DE PROGRAMACI ON

¡Importante! No se corregira´ ninguna practica´

La practica´ consiste en la realizacion´ de uno de los problema que se descri- ben mas´ adelante. El problema concreto que habra´ que resolver el d´ıa del examen, se dara´ a conocer al inicio de la prueba. El tiempo que se tendra´ el d´ıa del examen es de 1 hora.ON ¡Importante! No se corregira´ ninguna practica´ La resolucion´ de todos los problemas se hara´ en

La resolucion´ de todos los problemas se hara´ en ISO C++. Para la resolucion´El tiempo que se tendra´ el d´ıa del examen es de 1 hora. solo´ se podran´

solo´

se podran´

En la evaluacion´hara´ en ISO C++. Para la resolucion´ solo´ se podran´ cion´ espacios y tabuladores, as´ı como

cion´

espacios y tabuladores, as´ı como la claridad del codigo´

de la solucion´

La ejecucion´ de los programas por parte del profesor se hara´ de forma au- tomatica,´ leyendo los datos desde un fichero de validacion´ y comprobando que la salida es correcta. En cualquier caso, el alumno puede comprobar que el programa funciona correctamente introduciendo los datos desde un fichero o desde el teclado.as´ı como la claridad del codigo´ de la solucion´ Recordemos que para leer los datos de

Recordemos que para leer los datos de un fichero hay que ejecutar el progra- ma desde una consola de sistema y redirigir la entrada de datos en la forma:

problema.exe < validacion.txt, donde validacion.txt es el nombre del fichero de validacion.´ Si usa Visual Studio, tambien´ puede ejecutarlo y depurarlo desde el mismo entorno, indicando el nombre del fi- chero de entrada y el directorio en el que se encuentra. Para ello, hay que irse a la ventana del Explorador de Soluciones y hacer click sobre el nombre del proyecto (no sobre el fichero cpp), y ahora seleccionar desde el menu´ prin- cipal:

Proyecto/Propiedades

Propiedades

Argumentos

En esta opcion´ hay que introducir el caracter´ < seguido del nombre del fichero de validacion.´

Indicaremos la carpeta en la que se encuentra el fichero de validacion,´ a traves´ de
Indicaremos la carpeta en la que se encuentra el fichero de validacion,´ a traves´ de
Indicaremos la carpeta en la que se encuentra el fichero de validacion,´ a
traves´ de la opcion´ siguiente:
Proyecto/Propiedades
Propiedades
de
Configuraci´on/Depuraci´on
Directorio
de
trabajo/
En aquellos ejercicios en los que la entrada de datos requiere introducir
muchos valores, se han preparado varios ficheros de validacion.´ En la pagi-´
na web de la asignatura (Material de la Asignatura → Examen) se pueden
encontrar estos ficheros de validacion.´
En los enunciados de los ejercicios encontrara´ ejemplos de validacion´
un formato similar al siguiente:
con
Entrada:
DDDIDDIIDA
Salida:
NO SE ABRE
En el apartado Entrada se describe el formato en el que el programa espera
encontrar los datos en el fichero de validacion.´ En la Salida, se especifica
la salida que el programa debe dar. Es importante remarcar que la salida
del programa debe aparecer sola en una l´ınea de texto siguiendo EXACTA-
MENTE el formato especificado.
Instrucciones a seguir el d´ıa del examen
Para iniciar sesion´ en las aulas de practicas,´ tendra´ que introducir su iden-
tificador de usuario y contrasena˜ como siempre. En la casilla Codigo´ , de-
bera´ introducir el que se le diga el mismo d´ıa del examen. Con este codigo´
solo´ tendra´ acceso Internet a la pagina´ de la asignatura. No tendra´ disponible
su unidad en red U: ni los puertos USB.
Al inicio del examen, se le indicara´ el problema que ha de resolver. Tendra´ que
bajar el fichero problema.zip que se encuentra en la web de la asignatu-
ra (Material de la Asignatura → Examen) a la carpeta local Mis Documentos.
Para copiar el fichero desde la web, hay que pinchar con el boton´ derecha
del raton´ y seleccionar Guardar destino como.

Una vez copiado el fichero en la carpeta Mis Documentos, pinchad con el boton´ derecha del raton´ y seleccionad Extraer todo, para poder extraer los archivos incluidos y abrir el fichero de solucion´ correspondiente. Una vez abierto el proyecto, debe modificar los datos que aparecen en la cabecera del fichero problema.cpp. En concreto, su nombre, el nombre del ordenador en que se sienta y el nombre del problema que aparece entre corchetes en la pagina´ de los enunciados.

-> Entregar -> Examinar pr´actica otro fichero (como por ejemplo los ficheros con ex- La
-> Entregar -> Examinar pr´actica otro fichero (como por ejemplo los ficheros con ex-
->
Entregar
->
Examinar
pr´actica
otro fichero (como por ejemplo los ficheros con ex-

La entrega de la practica´ se hara´ durante la hora que dura el examen. Para ello, se usara´ el sistema de gestion´ automatica´ de practicas´ (GAP) accesible a partir de la pagina´ web de la asignatura (Menu´ Principal → GAP). Una vez dentro de GAP habra´ que seleccionar GAP). Una vez dentro de GAP habra´ que seleccionar

Pr´acticas

Se abrira´ un cuadro de dialogo´ en el que buscara´ el fichero problema.cpp. Una vez seleccionado, debe pulsar sobre

Entregar

Cualquier intento de entregar la practica´ fuera de la hora del examen con- llevara´ el suspenso automatico.´

Importante: El unico´ fichero que se debe subir a GAP es el fichero problema.cpp.

No debe subirse ningun´

tension´

.vcproj o sln asociados a los proyectos en Visual Studio).

La practica´ se puede entregar tantas veces como se quiera durante el exa- men. El sistema GAP guarda la ultima´ entrega. De hecho, se recomienda que se entregue varias veces a lo largo del examen , ya que se recomienda que se entregue varias veces a lo largo del examen, ya que si el ordenador se quedara colgado, habr´ıa que reiniciarlo y se perder´ıa toda la informacion.´

Tiempo de examen: 1 HORA 1 HORA

1. 2. 3. 4. [primos] Realizar un programa que compruebe si dos enteros le´ıdos desde

1.

2.

3.

4.

[primos] Realizar un programa que compruebe si dos enteros le´ıdos desde el teclado son primos
[primos] Realizar un programa que compruebe si dos enteros le´ıdos desde
el teclado son primos relativos, es decir, que no exista ningun´ valor que
divida de forma entera a ambos. El programa solo´ debe dar por salida el
mensaje “SI” (en el caso de que sean primos relativos) o “NO” (en otro
caso).
Entrada:
2 1246
Salida:
NO
Entrada:
11 27
Salida:
SI
[elr] El metodo´ RLE (Run Length Encoding) codifica una secuencia de da-
tos formada por series de valores identicos´ consecutivos como una secuen-
cia de parejas de numeros´ (valor de la secuencia y numero´ de veces que se
repite). Realizar un programa que lea una secuencia de numeros´ naturales
terminada con un numero´ negativo que se supone codificada con el metodo´
RLE y obtenga la secuencia decodificada.
Entrada:
3 1 5 2 6 3 1 5 -1
(tres veces 1, cinco veces 2, seis veces 3, una vez 5)
Salida:
1 1 1 2 2 2 2 2 3 3 3 3 3 3 5
[nicomaco] Consideremos la siguiente propiedad descubierta por Nicoma-´
co entre los siglos I y II. Con el primer impar, se obtiene el primer cubo;
sumando los dos siguientes impares, se obtiene el segundo cubo; sumando
los tres siguientes, se obtiene el tercer cubo, etc. Por ejemplo:
1 3 = 1 = 1
2 3 = 3 + 5 = 8
3 3 = 7 + 9 + 11 = 27
4 3 = 13 + 15 + 17 + 19 = 64
Escribir un programa que calcule el cubo de un numero´
natural dado, apli-
cando el anterior metodo´
cmath).
(no podra´ usarse ninguna funcion´
de la biblioteca
Entrada:
4
Salida:
64
[quebrado] Dada una fraccion´
expresada como numerador y denominador,
se desea reducirla a su forma canonica,´
es decir, de forma que el numerador
y el denominador sean primos relativos.
Entrada:
100 25
Salida:
4
1

Entrada:

56 32

Salida:

7 4

5. 6. [adn] Un laboratorio de analisis´ genetico´ ha descubierto una secuencia en los genes

5.

6.

[adn] Un laboratorio de analisis´ genetico´ ha descubierto una secuencia en los genes (ACGTAAATTGGCAA )
[adn] Un laboratorio de analisis´ genetico´ ha descubierto una secuencia en
los genes (ACGTAAATTGGCAA
)
que predispone a una enfermedad he-
reditaria y que se identifica como “AGA” siempre que no vaya seguida in-
mediatamente de una secuencia inhibidora identificada como “TT”. Se pide
construir un programa que lea una secuencia genetica´ (terminada con el
caracter´ ’.’) y nos diga si tiene esa predisposicion´ o no.
En este ejercicio no puede emplearse la biblioteca cstring
Entrada:
ACGTAAATTGAGATTGCAA.
Salida:
NO
Entrada:
ACGTAAATTGAGAATTGCAA.
Salida:
SI
[feliz] Se dice que un numero´ natural es feliz si cumple que si sumamos los
cuadrados de sus d´ıgitos y seguimos el proceso con los resultados obtenidos,
finalmente obtenemos uno (1) como resultado. Por ejemplo, el numero´ 203
es un numero´ feliz ya que 2 2 +0 2 +3 2 = 13 → 1 2 +3 2 = 10 → 1 2 +0 2 = 1.
Se dice que un numero´ es feliz de grado k si se ha podido demostrar que
es feliz en un maximo´ de k iteraciones. Se entiende que una iteracion´ se
produce cada vez que se elevan al cuadrado los d´ıgitos del valor actual y se
suman. En el ejemplo anterior, 203 es un numero´ feliz de grado 3 (ademas,´
es feliz de cualquier grado mayor o igual que 3). Otros ejemplos de numeros´
felices son:
7 es feliz con cualquier valor de k mayor o igual a 5.
es feliz con cualquier valor de k mayor o igual a 4.
404
es feliz con cualquier valor de k mayor o igual a 4.
383
Ejemplos de numeros´
no felices para cualquier valor de k: 4, 37, 58, 113
Se pide lo siguiente:
Leer un valor entero n que representara´ el valor que queremos com-
probar si es feliz o no.
Leer un valor entero Gradok que representara´ el numero´ maximo´ de
iteraciones que vamos a permitir.
El programa nos dira´ si n es un numero´ feliz de grado Gradok. La salida
sera´ SI en el caso afirmativo y NO en caso contrario.
Entrada:
7
6
Salida:
SI
Entrada:
4
8
Salida:
NO
7. 8. [raiz] Escribir un programa para calcular la ra´ız enesima´ de un numero´ real

7.

8.

[raiz] Escribir un programa para calcular la ra´ız enesima´ de un numero´ real X mediante
[raiz] Escribir un programa para calcular la ra´ız enesima´ de un numero´ real
X mediante el metodo´ de biseccion´ con una precision´ deseada expresada
como un numero´ real (p.e. 0.001). Para ello se propone examinar el inter-
valo [1, X] y comprobar si alguno de los dos valores extremos del mismo,
elevados a n coincide con X (aceptando un error de precision´ dado por ),
en cuyo caso se habr´ıa terminado. En caso contrario, habr´ıa que dividir el
intervalo en dos partes tomando un punto central y elegir un subintervalo
en funcion´ de si el punto central elevado a n es mayor o menor que X. El
programa termina cuando uno de los extremos elevado a n coincide con X
(aceptando un error de precision´ dado por ), en cuyo caso se muestra dicho
extremo, o cuando la amplitud del intervalo sea menor que la precision´ ,
en cuyo caso se muestra el punto medio del intervalo. Se aconseja utilizar
la funcion´
pow de la biblioteca cmath (pow(x, y) = x y ).
Entrada
(ra´ız cuadrada de 4 con precision´
de 0.00001):
4 2 0.00001
Salida:
2
Entrada
(ra´ız cuarta de 123 con precision´
de 0.00001):
123 4 0.00001
Salida:
3.33025
[secuencia] Escribir un programa que lea una secuencia de numeros´ enteros
en el rango de 0 a 100 terminada en un numero´ mayor que 100 o menor que
0 y encuentre la subsecuencia de numeros´ ordenada, de menor a mayor, de
mayor longitud, dentro dicha secuencia. El programa dara´ como salida la
posicion´ donde comienza la subsecuencia y a continuacion´ su longitud. En
el siguiente ejemplo, la mayor secuencia creciente es 7 40 45 45 73 73
que empezo´ en la posicion´ 3 y tiene una longitud de 6.
Entrada:
23 25 7 40 45 45 73 73 71 4 9 101
Salida:
3 6