Anda di halaman 1dari 4

Ejercicios de examen

1 Explique, paso a paso, el proceso de generacin de un programa ejecutable a partir de


cdigo escrito en Fortran Qu papel hace el traductor?Qu tipos de traductores hay?.

2 Qu relacin guarda la presentacin interna de un tipo de dato numrico entero con


el rango posible de valores de este tipo de dato?. La representacin interna de la cadena
@ en ASCII extendido es 128 64 (128 es el cdigo del carcter y 64 es el cdigo
del carcter @). Si la tratramos como un entero representado con 16bits en binario
(signo y magnitud). De qu nmero estaramos hablando?.

3 Para qu se utiliza la instruccin IMPLICIT NONE en Fortran 90? Ponga ejemplos


(programas cortos pero completos) para ilustrar los siguientes casos:
-Un programa en el que no usarla provoque algn tipo de error. Explique detalladamente
cual es el error y porque usando IMPLICIT NONE se evita dicho error.
-Un programa en el que al usarla el compilador muestre algn tipo de error. Explique
detalladamente cual es el error, porqu ocurre y cual es la solucin.

4 Responda a las siguientes cuestiones de forma breve y razonada:


-Qu es la programacin modular?Qu beneficios aporta?
-Qu es la programacin estructurada?

5 Haga un programa en Fortran que le pregunte al usuario un nmero )por teclado) del
1 al 5 y que, a continuacin, muestre la vocal correspondiente al nmero ledo
(a=1,e=2,i=3,o=4, u=5). El programa deber indicar al usuario que hay un error si el
nmero no est en el intervalo [1,5] (no es necesario preguntar otro nmero). Se
valorar especialmente la brevedad del programa.

6 Un nmero narcisista es un nmero de N dgitos que resulta ser igual a la suma de las
potencias de orden N de sus dgitos. Por ejemplo: 153= 13+ 53+ 33 . Escriba un
subprograma que reciba un nmero como parmetro y devuelva un dato indicando si es
o no narcisista. A continuacin escriba un programa principal que ilustre el
funcionamiento del subprograma.
El nmero que se pasa al subprograma se puede representar de varias formas:
-Como un dato INTEGER
-Como un vector de INTEGER junto con un INTEGER que indica el nmero de dgitos
del nmero.
-Como cadena de caracteres.
Elija la representacin que considere ms oportuna y explique (razonadamente) por qu
ha elegido esa y no otra.
7 Haga un programa que lea una matriz por teclado de tamao M x N (cmo mximo,
M y N pueden valer 100). A continuacin, el programa debe calcular la suma de los
mximos de las filas pares siempre y cuando estos sean nmeros impares. Por ejemplo,
dada la matriz
1324536574
3 4 2 3 4 5 4 6 8 9 mximo=9
3768453486
3 0 3 6 2 4 1 3 2 4 mximo=6
4372879071
3 5 4 6 2 7 5 6 4 3 mximo=7
La suma que se pide es 9+7=16

8 Escriba un programa modular con al menos un subprograma que permita codificar el


nombre de una persona de acuerdo al siguiente algoritmo: leer el nombre y los dos
apellidos (en tres cadenas de caracteres diferentes) y calcular, e imprimir, el cdigo
concatenando las tres primeras letras del primer apellido, las tres primeras letras del
segundo apellido y las tres primeras letras del nombre. Por ejemplo, Juan Perez
Garcia (omitimos las tildes) se codifica como PerGarJua. Se entiende que tanto
nombres como apellidos tienen al menos tres letras.
El programa principal estar pidiendo datos y mostrado cdigos hasta que el usuario
decida terminar.

9 Escriba un programa que calcule los nmeros primos menores que 1000 utilizando el
llamado mtodo de la criba de Eratstenes. Este mtodo consiste en definir una lista con
los nmeros del 2 al 1000 para, a continuacin, proceder de la siguiente forma: tomar el
primer elemento de esa lista que no haya sido tachado (ese ser un nmero primo) y
tachar en la lista todos sus mltiplos. Repetir el proceso anterior con el siguiente
nmero que est sin tachar en la lista. Al finalizar el proceso quedarn sin tachar slo
los nmeros primos.

10 Escriba un programa que multiplique dos matrices de hasta 50x50 y lo guarde en


una tercera.
EJEMPLO:
11 El algoritmo de Newton , usado para calcular la raz cuadrada, se basa en
aproximaciones sucesivas, donde la primera aproximacin de la raz de un nmero N
es:
X1 = N/2

Xi+1 = Xi /2 + N/(2*Xi)

Desarrolla una funcin que calcule la raz cuadrada de un nmero N con una
precisin i.

12 Escriba un subprograma que devuelva en dos variables de salida los dos nmeros
que ms se repiten en un vector, esto es, la moda y la segunda moda.

13 Elabora un programa que en la funcin main se lean dos conjuntos A y B de


nmeros (de mximo 50 nmeros) y permita al usuario trabajar con el siguiente men
de opciones:
-A unin B
-A interseccin B
-A menos B
-B menos A

14 (2 puntos) Escriba una funcin que calcule la covarianza de dos series de nmeros
de igual tamao. Si considera necesario implementar tambin una funcin para la
media ,hgalo. La covarianza entre dos series de nmero se define:

15 Tenemos una bscula que tiene los siguientes tipos de pesos: 50kg, 20kg, 10kg, 5kg,
y 1kg. Debe implementar un programa que permita seleccionar el nmero mnimo de
pesas que se debe colocar en la bscula dado un peso introducido por el usuario. Por
ejemplo, si el peso dado es de 78kg, se debe colocar 1 pesa de 50Kg, 2 de 10Kg, 1 de
5Kg y 3 de 1Kg.

16 El crpulo de un numero natural es el nmero que se obtiene sumando, en un primer


paso, los dgitos que lo componen; si el resultado es menor de 10 el crpulo es
directamente el valor obtenido, si no, el crpulo es igual al crpulo de la suma de sus
dgitos. Haga una funcin que calcule el crpulo de un nmero. Dicho nmero ser un
nico parmetro de tipo INTEGER.
Ejemplo: crpulo (478912)=4+7+8+9+1+2=31=crpulo(31)=3+1=4.
17 Implementa un programa para verificar que siempre hay un primo entre los enteros
positivos n y 2n (Conjetura de Bernard). El programa pedir un nmero entero,
obligatoriamente positivo, y obtendr el menor primo que se encuentre entre n y 2n
(ambos incluidos).

18 Haz una funcin que tome los elementos de la diagonal principal de una matriz
cuadrada y los multiplique, uno a uno, con los de la diagonal secundaria, para
finalmente devolver su sumatoria.
Ejemplo:
| 1 4 2 | Diagonal principal = (1 7 6)
| 5 7 3 | Diagonal secundaria = (2 7 1)
| 1 4 6 | Clculo = 1x2 + 7x7 + 6x1 = 57

19 Implementa un subprograma calcule el nmero de rachas de un vector de nmeros,


respecto a la mediana. Se denomina racha a una sucesin de valores de la misma
categora. Por ejemplo si estudiamos cantidades numricas podemos considerar como
categoras: uno, los valores menores a la mediana y, dos, los valores mayores a la
mediana.
El subprograma aceptar como parmetros el vector, el tamao del mismo y la mediana
del conjunto de nmeros y devolver el nmero de rachas.
Ejemplo: En la siguiente serie (con mediana= 499,5) hay 4 rachas:
498 490 510 505 495 496 497 501 502 520
(-) (-) (+) (+) (-) (-) (-) (+) (+) (+)

Anda mungkin juga menyukai