Está en la página 1de 4

PROGRAMACION II

Enunciados examen Programación I -1-

Ejercicios primera convocatoria

EJERCICIO 1

Realizar un programa que pida por pantalla dos números enteros a los que llamaremos límite
inferior y límite superior, comprendidos entre 0 y 30000, y un tercer número entero que
llamaremos número a investigar, el cual debe estar comprendido entre límite inferior y
límite superior.
Posteriormente el programa deberá presentar en pantalla:
• Todos  los  múltiplos  del  número  a  investigar  comprendidos  entre  ambos  límites.  
• Cuantos  son  los  números  anteriores  presentados.  
• El  valor  de  su  suma.  
El siguiente es un ejemplo de ejecución del programa:

Límite inferior (entre 0 y 30000)?: 2


Límite superior (entre 0 y 30000)?: 178
Número a investigar (entre 2 y 178)?: 7
Números múltiplos de 7 en el intervalo [2, 178]:
7 14 21 28 35 42 49 56 63 70
77 84 91 98 105 112 119 126 133 140
147 154 161 168 175
Números presentados 25
Valor de su suma 2275

Observaciones
• El   programa   debe   comprobar   que   los   números   que   introduce   el   usuario   (límite  
inferior,   límite   superior   y   número   a   investigar)   se   encuentran   en   el   rango  
correcto,  y  en  caso  contrario  volver  a  solicitarlos.  
• El  programa  debe  dar  salidas  idénticas  si  el  usuario  teclea  como  límites  79  y  154  o  si  
por   el   contrario   los   teclea   en   orden   inverso   (154   y   79).   Es   decir,   deberemos   siempre  
comprobar  que  límite  inferior  sea  menor  que  límite  superior  y  en  caso  contrario  
realizar  internamente  el  intercambio  de  valores  de  ambas  variables.  

Departamento de Informática y Automática – Universidad de Salamanca (v 0911)


PROGRAMACION II
Enunciados examen Programación I -2-

EJERCICIO 2

Se dispone de una matriz bidimensional de enteros, que denominaremos A, de dimensiones


físicas M x N, y de un vector de enteros, X, de longitud física N. Se desea generar un nuevo
vector de enteros, Y, mediante la siguiente fórmula:

con i variando entre 1 y m, siendo m y n las dimensiones efectivas de la matriz A, y n


longitud efectiva del vector X y m la longitud efectiva del vector resultado Y (m <= M y n <=
N).
Ejemplo:

Para lograr este objetivo, el alumno escribirá una función que reciba cinco parámetros
formales, y que devuelva un valor entero indicando si ha tenido éxito, o no, la ejecución de la
función. En cuanto a los parámetros a recibir:
-­‐ Primer  parámetro  formal,  matrizA.  Es  el  parámetro  utilizado  para  poder  pasar  a  
la  función  como  argumento  la  matriz  A  de  la  fórmula  anterior.  
-­‐ Segundo  parámetro  formal,  vectorX,  Es  el  parámetro  utilizado  para  poder  pasar  
a  la  función  como  argumento  el  vector  X  de  la  fórmula  anterior.  
-­‐ Tercer  y  cuarto  parámetros  formales,  m  y  n.  Son  las  dimensiones  efectivas  de  la  
matriz  A.  Se  debe  garantizar  que  m  <=  M  y  n  <=  N.  
-­‐ Quinto  parámetro  formal,  vectorY.  Es  el  parámetro  utilizado  para  poder  pasar  a  
la  función  como  argumento  el  vector  donde  se  devolverá  el  resultado  de  la  
operación,  y  que  se  corresponde  con  el  vector  Y  en  la  fórmula  anterior.  Se  asume  
que  el  vector  Y  que  se  pasará  como  argumento  es  del  tamaño  adecuado.  
En  cuanto  al  valor  entero  a  devolver:  
-­‐ Será  un  cero  si  la  operación  se  realiza  correctamente.  
-­‐ Será  un  valor  distinto  de  cero,  indicando  que  se  ha  producido  algún  tipo  de  error  
con  los  parámetros  recibidos  como,  por  ejemplo,  que  alguno  de  los  punteros  
(matriz  y  vectores)  recibido  sea  NULL,  o  bien  que  las  dimensiones  efectivas  sean  
incorrectas,  en  cuyo  caso,  obviamente,  no  se  puede  realizar  la  operación.  
 
 
 
 
 
 

Departamento de Informática y Automática – Universidad de Salamanca (v 0911)


PROGRAMACION II
Enunciados examen Programación I -3-

Ejercicios segunda convocatoria

EJERCICIO 1
Se dispone de una masa radiactiva m que expuesta al aire se desintegra en un porcentaje del
p% diario.
Realizar un programa que permita calcular el número de días d que hay que dejar la masa
expuesta al aire libre para que ésta disminuya a menos de la mitad de su masa inicial m.
El valor de m deberá leerse de teclado. Será un número real. Se validará que se recibe un
número positivo, y en caso contrario se volverá a solicitar repetidamente.
El valor de p deberá leerse de teclado. Será un número real. Se validará que su valor sea
mayor que cero y menor o igual a 100, y en caso contrario se volverá a solicitar
repetidamente.
Como resultado el programa deberá:
1) Presentar en pantalla una tabla con la masa inicial, decremento y masa final en cada
día, hasta que la masa disminuya a menos de la mitad de su valor inicial. Todos los
datos con 4 decimales.
2) Indicar los días que la masa radioactiva tarda en disminuir a menos de la mitad de su
valor inicial.
Por ejemplo, si los dato de entrada son:
- Masa inicial: 1250
- Porcentaje desintegración diario: 5,40
La salida del programa en pantalla será una tabla y u mensaje como se muestra a
continuación:
Día Masa inicial Decremento Masa final
1 1250,0000 67,5000 1182,5000
2 1182,5000 63,8550 1118,6450
3 1118,6450 60,4068 1058,2382
4 1058,2382 57,1449 1001,0933
5 1001,0933 54,0590 947,0343
6 947,0343 51,1399 895,8944
7 895,8944 48,3783 847,5161
8 847,5161 45,7659 801,7503
9 801,7503 43,2945 758,4557
10 758,4557 40,9566 717,4991
11 717,4991 38,7450 678,7542
12 678,7542 36,6527 642,1014
13 642,1014 34,6735 607,4280
La masa disminuye a menos de la mitad de su valor inicial en 13 días.

Departamento de Informática y Automática – Universidad de Salamanca (v 0911)


PROGRAMACION II
Enunciados examen Programación I -4-

EJERCICIO 2

Se dispone de una matriz bidimensional de enteros, que podemos llamar mat, de dimensiones
físicas FIL x COL, y ya cargada con valor en sus elementos, hasta sus dimensiones efectivas
filas y columnas respectivamente. También se dispone de un vector de enteros, que podemos
llamar vec, de dimensión física FIL.
Tanto FIL como COL será constantes declaradas a nivel global en el programa.

Se deber construir una función, que llamaremos extraeColumnaMaximo, y que recibirá 4


parámetros formales:
− Primer parámetro formal, matrizA. Será un parámetro adecuado para poder recibir una
matriz como la descrita anteriormente, mat.
− Segundo y tercer parámetro formal, nfil, y ncol. Será de tipo int, adecuados para poder
recibir las dimensiones efectivas de matrizA.
− Cuarto parámetro formal, vectorX. Será un parámetro adecuado para poder devolver un
vector como el descrito anteriormente, vec.
La función además devolverá un valor tipo int como valor de retorno.

La función internamente deberá buscar, recorriendo por columnas la matrizA, el valor


máximo de los elementos de la misma, y devolverá, en el cuarto parámetro formal, la columna
que contiene ese valor máximo, es decir, debe copiar en vectorX todos los valores
almacenados dicha columna.
En el caso de que existan varios valores iguales al máximo, deberá devolver la columna
correspondiente al último encontrado.
Está claro que la dimensión efectiva de vectorX no es necesario devolverla porque será igual
que el número de filas efectivas, nfil, de matrizA.

En cuanto al valor de retorno de la función,


− Será -1 si los parámetros recibidos no superan las validaciones siguientes:
− alguno de los punteros de la matriz o el vector está a NULL, o
− las dimensiones efectivas de la matriz tienen valor negativo, o cero o superior a las
dimensiones físicas.
− Será cero si los parámetros recibidos son validados correctamente.

Recordar que …
− Se solicita construir sólo la función extraeColumnaMaximo, no un programa completo.
− La matrizA no debe de leerse dentro de la función, sino que se considera ya cargada
cuando se recibe, hasta las dimensiones efectivas que se reciben.
− El vectorX tiene la dimensión física FIL.

Departamento de Informática y Automática – Universidad de Salamanca (v 0911)

También podría gustarte