Sei sulla pagina 1di 35

.

s:ue

e)

t1

--

ae:ie' ce

':

Nombre completo:

DNI:

Examen de Programacin en Lenguaje Algortmico


NORMAS DEL EXAMEN: En la mesa nicamente est permitido tener el material para escribir
(bolgrafo, lpiz, goma); estn expresamente prohibidos los mviles, calculadoras, etc.
No se podr quitar la grapa, arrancar hojas, ni entregar hojas sueltas.
DURACIN: lh 30rnin

Problema 1 (5 puntos)
Dado un entero positivo n, descomponerlo como suma de potencias de 2.
Ejemplo
Si se lee de teclado el nmero n
Como 53 es igual a 32 - 16

-r

53
-r

1, se escribirn en pantalla los nmeros: 32.16 .. 4 y 1

Se deber seguir el siguiente algoritmo:


1. Obtener iterativamente, con un solo bucle, la mayor potencia de 2 que sea menor o igual que n. Este bucle se deber
aprovechar tambin para calcular la potencia iterativamente sin usar un operador o funcin que directamente la
calcule,.
2. Escribir la potencia obtenida en pantalla.
3. Reducir convenientemente el tamafio de n.
4. Volver a punto 1.
El proceso iterativo debe terminar cuando se hayan escrito todos los trminos sin repetir ninguno.

Problema 2 (5 puntos)
En una refinera de petrleo los operadores observan pendicamente datos provenientes de dos sensores Dl y D2 en tres
tanques de combustible CT1. T2 y T3 1 . Realizar un programa que permita introducir esta informacin en el formato cdigo de
operador. tanque, valor de los sensores Dl y D2 1 . Eiemplo:
cdigo ur Oprado

Tanque

DI

1)2

La secuencia de entrada de datos finalizar con cadena vaca en el cdigo de operado:, mostrndose a continuacin en
pantalla:
Tanque con menor valor de la variable D2. Si hay varios con el mismo valor se mostrar el ltimo ledo.
Tanque con mayor valor medio de la variable Dl.
Valores promedio de la variable D2 cuando el valor de Dl se encuentre en los intervalos FC. 50
150. bEY..
Un mensaje indicando si todos los valores de las dos variables Di y D2 son positivos.

Escue.s oni:s Sjeio os

:..

::

:.

Nombre completo:

DNI:

Examen de Programacin en Lenguaje Algortmico


NORMAS DEL EXAMEN: En la mesa nicamente est permitido tener el material para escribir
(bolgrafo, lpizgoma); estn expresamente prohibidos los mviles, calculadoras, etc.
No se podr quitar la grapa, arrancar hojas, ni entregar hojas sueltas.
DURACIN: 2 horas

Problema 1 (5 puntos)
Se desea suavizar una imagen fotogrfica modificando cada pixel en funcin de un conjunto de pixeles cercanos.
Concretamente, consideraremos la imagen en escala de grises (sin color) r almacenada en una matriz de enteros Mx\. Para el
suavizado de cada pixel ( .J se calcular el promedio de los valores de la submatriz cuadrada de tamao (2D--1)x(2D-7) que
tiene en el centro a este pixel, como se muestra a-continuacin:
...
i-D
j
...

...

22

...

...

98

i--D...I45
El nuevo valor del pixel ufj ser el promedio de las celdas sombreadas
Si el pxel a suavizar est cerca de los lmites de la imagen, entonces la submatriz para el clculo del promedio tendra celdas
fuera de la imagen que no habra que considerar en el promedio.
El algoritmo a disear partir de una matriz imagen va leda que no se modificar el resultado del suavizado se guardar en
otra matriz que no habr que escribir.

Problema 2 (4 puntos)
Leer de teclado un nmero natural i y generar un fichero con la lista de primos p tal que yi;. Se deber utilizar el algoritmo
de la criba de Eratstenes descrito a continuacin:
En la criba de Eratstenes se parte de una lista ordenada de nmeros de 2 hasta n. Se recorre la lista empezando por el 2 hasta
el final. y cada nmero se procesa de la siguiente forma: el nmero es declarado primo y se eliminan de la lista todos sus
mltiplos (de esta forma se evita que sean procesados posteriormente..

Problema 3 (1 punto)
Escribe y comenta muy brevemente los algoritmos estudiados en clase para las distintas formas de lectura de vectores, en los
casos de teclado y tichero, as como vectores completos e incompletos.

Es:uia oerm:a uoerio oe

fl

fl1i1R'

Nombre completo:

DNI:

Programacin en Lenguaje Algortmico


Problema 1 (3 puntos)
Obtener una matriz de Toephtz ,xe cuyos valores enteros se debern generar aleatoriamente en el rango O a 2a2.
En lgebra lineal, una matriz de Toepiitz, denominada as en honor a Otto Toepiim, es una matriz cuadrada con todas sus
diagonales descendientes de izquierda a derecha constantes, presentando la siguiente estructura:
d
e
2,
b
cd
f
a
bc
g
abi
f
a
h
a
g

Nota. No se valorar la lectura y escritura de datos.

Problema 2 (3,5 puntos)


A partir de dos nmeros va descompuestos como producto de factores primos, obtener el MCM (multiplicando los factores
comunes i rio comunes con su mayor exponente) y el MCD (multiplicando los factores comunes con su menor exponente';.
Cada nmero viene dado por dos vectores: factores primos y exponentes.
Ejemplo
4823 viene dado como:
Factores primos
Exponentes

180 2:.3r.5 viene dado como:


2

Factores primos

Exponentes

MCD(48. 18fti = 23 = 12

MCM(48 7 180) = 2.35 =

Nota. No se valorar la lectura y escritura de datos.

Problema 3 (3,5 puntos)


Se dispone de una matriz nx/e de distancias, que contiene para ii sustancias qumicas la distancia de cada una a u centroides
obtenidos mediante el algoritmo u-,--medias. Se desea realizar una clasificacin. generando un listado en el que aparezca cada
sustancia Junto con el correspondiente centroide ms cercano.
Nota. Realizar un programa completo con la lectura y escnn,ira de datos de i5chero.

:;Cuea

OICC.C5

.Ur'9'in'

Nombre completo:

DNI:

Program2cin en Lenguaje Algortmico


Problema 1(4 puntos)

Android es un sistema operativo para dispositivos mviles, corno telfonos inteligentes y tabletas, en el que es posible ejecutar
programas desarrollados en el iengua3e de programacin lava gracias al API (Apphcatiori Programn'ung Interface' disponible
para cada versin del sistema operativo. Esta interfaz de programacin, entre sus muchas funciones. permite obtener datos de
diversos sensores como pueden ser: acelermetro,giroscopio. de luz ambiente, etc.
Disponemos de un mvil Android con un programa que permite guardar en fichero una secuencia de muestras tomadas de un
sensor acelrmetro en un intervalo de tiempo. Se desea realizar un algoritmo que suavice los valores con 12 intencin de
eliminar el ruido de alta frecuencia: para ello, se deber obtener el nuevo valor de cada muestra mediante su promediado con
las o muestras anteriores y posteriores.
Ejemplo. Suponiendo ,;2
:

Seal original
-1

i e

-5

Seal suavizada

Nota. No se valorar la lectura y escritura de los datos.

Problema 2 (6 puntos)

Se dispone de un fichero que contiene una matriz de distancias entre diferentes ciudades. Los nombres de las ciudades (como
mximo 50 se encuentran almacenados en otro fichero.
Se pide:
Leer las ciudades y almacenarlas en un vector. Segn el nmero de ciudades, leer la matriz de distancias. (7
Mostrar en pantalla los nombres de las dos ciudades ms cercanas entre s. (2unios;
Obtener un vector con la distancia media de cada ciudad a las dems. (t5witos'
Escribir en un fichero los nombres de las ciudades ordenados ascendentemente por la distancia media a las dems.
(1 .5punto.r

'"

Escuer c0 ecnca SuDer10 as


'ecia:

Nombre
Nombre completo:

DNI-.

Programacin en Lenguaje Algortmico


Problema 1 (5 puntos)
Se dispone de un telfono mvil compatible con la especificacin IvIIDP 2.0 de Java, que nene limitadas las funciones
matemticas de tipo real. Disear un algoritmo para este mvil que permita calcular eX para cualquier real, de la forma:
2

Se deber calcular la mejor aproximacin posible, que ser aquella que no se vea modificada al sumar un nuevo trmino: esto
ocurrir en algn momento debido a que los reales se almacenan con un nmero finito de-cifras significativas.
Adems, se controlar que el algoritmo no supere un limite de tiempo en su ejecucin, de manera que una vez alcanzado ser
interrumpido, dando como resultado la aproximacin obtenida hasta el momento.
NOTA IIORTANTE:
Por razones de eficiencia en tiempo de eecucin, el factorial y ia.potencia no se calcularn iterativamente de nuevo
para cada trmino, sino que se debern obtener a partir del valor acumulado en el trmino anterior.
Se utilizar la funcin tiempo() que devuelve un entero con el nmero de nanosegundos transcurridos desde el
comienzo de ejecucin del algoritmo.

Problema 2 (5 puntos)
Disear un algonTMO que permita leer de teclado una secuencia, de longitud indefinida, de ternas (a. b. c) de enteros positivos.
y muestre para cada una:
a Un mensaje indicando si los nmeros son primos entre s, o sea, si el nico divisor comn positivo de los tres es el 1.
b El resto y cociente enteros de la divisin del mayor entre el menor. El cociente y resto se debern calcular
iterativamente como se muestra a continuacin
2T
3

2-6 z= 21
21-615
1 6 = C)
9-6 = 3 (Resto)

Nmero de veces que se ha restado el 6 = 4 (Cociente)

Es::e.r

'c:e:mcE tjrc

PROGRAMACIN EN LENGUAJE ALGORTMICO (75%)


PT?OBLEMA 1
Lii un fichero se encuentran almacenadas las posiciones (x,v) y las velocidades de una serie de vehculos como
n'aximo Las posiciones se enmarcan en una cuadrcula MxN de una ciudad organizada en manzanas con
calles en filas y columnas (no existen calles diagonales en la cuadrcula. Se pide desarrollar subprogramas para:
a) encontrar el nmero de vehculos que hay en la calle 1-sima
b) encontrar la velocidad media en la calle j-sima
c encontrar la calle con ms trfico

PROBLEMA 2
Se dispone de un fichero de texto con la lista de cdigos de productos y sus correspondientes existencias en un
almacn. Se desea ordenar esta informacin ascendentemente por nmero de existencias, almacenando el
resultado en un nuevo fichero.
Se deber utilizar el algoritmo de ordenacin por seleccin, que se describe a continuacin:
Para la ordenacin ascendente de un vector, se busca el menor elemento se intercambia con el
primero. A continuacin se considera el resto del vector, volviendo a buscar el menor de ese trozo de
vector, que se intercambia con el segundo elemento. El proceso se repite hasta conseguir ordenar todo
el vector.
Realizar un programa completo (accin principal subprogramas) utilizando el diseo descendente y las
estructuras de datos adecuadas.

DNI:

Escu,a P0i1ecr1ca Suoe

ce

Nombre completo:

Programacin en Lenguaje Algortmico


Problema 1 (3.5 puntos)
Supongamos una ecuacin f(=O. con raz en el intervalo a. b. Obteniendo el punto medio del intervalo
darse tres casos:
i

Si f(c7)C entonces m es la raz.

Si,
t7Ta vf(rn, tienen signos contrarios, como en la figura, la raz est en el intervalo (a. in).
Si no se cumple la condicin anterior, la raz estara en el intervalo m.

m=ab)

'2. pueden

En los dos ltimos casos se puede repetir el proceso para el nuevo intervalo, cada vez ms pequeo.

Teniendo esto en cuenta, realizar un programa para obtener una aproximacin a la raz de la ecuacin trascendente x-cos(x izo
en el intervalo ('O. 2,. El algoritmo finalizar cuando se encuentre un valor de m tal que i m-cos(m,) <a o el nmero de
iteraciones realizadas supere un determinado valor.
Problema 2 (3 puntos)
Se desea obtener las coordenadas polares (i f de una serie de puntos a partir de sus correspondientes rectangulares ('v.), que
se leern de teclado y finalizarn con cadena vaca.
Cada ngulo O deber estar en el intervalo

y para su obtencin se utilizar la funcin matemtica aian, que devuelve ei

ngulo en el intervalo

,'2i correspondiente a una determinada tangente: por ejemplo, alan-7.0 es - ti . En el caso de


que r sea cero el ngulo podr ser cualquiera.
Utilizar en el algoritmo el smbolo PI como representacin del valor matemtico
Eemplos

Problema 3 (3.5 puntos)


Hallar el mximo comn divisor (MCD de dos enteros positivos a y a utilizando el siguiente algoritmo que, considerando
lo obtiene de la forma:
-

Si a es mayor que , se reduce el problema al MCD de a-ii y a. repitiendo el proceso para los nuevos valores.
Si a es igual que a, se termina el algoritmo con el valor de cualquiera de los, dos como resultado.

Eiempios
mcd(91.39:mcd(5.39 mcd(l3.39'mcd(i3,26'mcd(13.l3 . 11
mcd(2.9mcd[.mcd2.5mcd(,3mcd2,l.=mcd(i1izii

ecn:ca Sec
1 )r:

1)?fll' C

.nuuv.

tr
S IsC1:

P RO G RA.NLKriA r'T(\'NT 1T T TTr'Tt A TE' ALGORTMICO (75%)


1

J1

PROBLEMA 1
Dado un vector de datos (con posibles repeticiones de sus valores) ,i relleno de forma incompleta y una matriz
k[xN. determinar:
1. Con un subprograma, si el vector es subconjunto de la matriz.
2. Con un subprograma, el vector de frecuencias de aparici n de cada uno de los valores (sin repeticin,
del vector en la matriz.
Con
un subprograma. una nueva matriz que contenga aquellos valores que aparezcan slo una vez en
3.
matriz ori-inal.
4. Realizar la accin principal.

i2

NOTA-:No se deben realizar los subprogramas de E/S pero s sus prototipos.

PROBLEMA 2
Utilizando la metodologa de diseo descendente, realiza un programa en lenguaje algortmico que a partir de la
matriz correspondiente a un sistema de
nica).

iv

ecuaciones lineales con a incgnitas obtenga la solucin (suponemos

(___ /

Ecuso Potoecrca Sunerio oc


e:i

DNI:

EO

Nombre completo:

Programacin en Lenguaje Algortmico


Problema 1 (6 puntos)
La funcin coseno puede evaluarse por medio de la serie infinita siguiente:

,6
x2
x4
cosx= 1 + ----+...
2!
4!
6!

Escribir un algoritmo para implementar esta frmula de modo que calcule e imprima los valores de cos x conforme
se agregue cada trmino de la serie hasta el trmmo de orden u, elegido por el usuario, o hasta que el error
porcentual relativo sea menor que una determinada cantidad, calculndolo de la forma:

% error =

valor verdadero aproximacin con la serie


x 100
valor verdadero

Problema 2 (4 puntos)
La conversin de un nmero octal a decimal es muy sencilla conociendo el peso de cada posicin en una cifra octaL
Por eernplo, para convernr el nmero 237, a decimal basta con desarrollar el valor de cada dgito:
2*8: - 3'8

7$ = 128 24 - 7 = 159, 1

Realizar un programa que lea un nmero octal, aimacenndolo en una variable de tipo entero, y lo convierta a
decimal -

Esci-i o1eCflua Suiiio cis


G,

mru

Nombre completo:

DNI:

Programacin en Lenguaje Algortmico


Problema 1 (5 puntos)
A partir de dos nmeros ya descompuestos como producto de factores primos, obtener el MCM (multiplicando los factores
comunes y rio comunes con su mayor exponente) v el MCD (multiplicando los factores comunes con su menor exponente..
Cada nmero viene dado por dos vectores, de factores primos y de exponentes.
Ejemplo
48=2-3 viene dado como:

180=22325 viene dado como:

Factores primos2

Exponentes

Factores primos

Exponentes

MCM48, 180\ = 24.32.5 =

MCD(48. 180) 213 = 12

Problema 2 (5 puntos)
Una operacin matemtica que tiene muchas aplicaciones en la ingeniera es la convolucin, que transforma dos funciones en
una tercera. Para funciones discretas, representadas por vectores, se puede calcular como un producto matricial de la forma:
Vector h

h[0] : h[1]

Vector

x[0]

Convolucin h

. ..

h[]\-1]

x[1]
=
h[0]

h[1]

h [0]

h[2]

h[1]

hF21

h[Q]

h[1]

h[0]

l- [21

h[1]

(1

h[M-2]
h[I'vI.-1]

h [lvi-2]

h[i\i-1]

o
o
o
12

x[01

h{2]
h[2d-2]
h[i\i-1)

(1

Matriz de Toeplitz
Realiza un programa que obtenga

matriz de Toephtz a partir del vector /..

Vector x
hFi\i-21

fl

tt:oea 0 oitec:a Sjpe o ce

:.

PROGRAMACIN EN LENGUAJE ALGORTMICO (7 puntos)


PROBLEMA 1 (3.5 puntos)
D2da una tabla de valores enteros r rellena de forma incompleta donde no aparecen nmeros rependos, y otra
tabla (con las frecuencias de aparicin de cada uno de los valores de la primera, se pide realizar:
1. Un subprog-rama que rellene de forma aleatoria una matriz m MxN con los valores de z, tantas veces
como dia( O sea, que ii' 'sean historama de m.
2. Un subprograma ue aada un ruido aleatorio a cada elemento de la matriz . de tal forma que el ruido
se encuentre aleatoriamente dentro del 259

de la diferencia en valor absoluto entre la media de la matriz

y cada elemento (i.JJ.

PROBLEMA 2 (3,5 puntos)


Se dispone de un fichero de texto con la lista de cdigos de productos, y sus correspondientes existencias, de un
almacn. Se desea ordenar esta informacin ascendentemente por nmero de existencias, almacenando el
resultado en un nuevo fichero.
Se deber utilizar el algoritmo de ordenacin por insercin, que se describe a continuacin:
Para la ordenacin ascendente de un vector, inicialmente se considera solo el primer elemento. que
obviamente es un conjunto ordenado.
e

A partir de entonces (se repite siempre lo mismo( se toma el siguiente elemento

k.

(los k-1 anteriores

estn ordenados) y se compara con cada uno de los anteriores desde el ltimo al primero. detenindose
cuando se encuentra un elemento menor o se llega al principio sin encontrarlo todos los elementos
mayores han sido desplazados a la posicin sigiuente): en el hueco creado se zilser/a el elemento i.
it

12

5H3 1

22,

T5

2 3 4 5 1'

T
Realizar un programa completo accin Drincipal subprogramas utilizando el diseo descendente y las
estructuras de datos adecuadas.

.s:ue:a Po::.ecnne Suie o eseecIa:.

"

PEOGRAMACIN EN LENGUAJE ALGORTMICO (7 puntos)


PRDBLEMA 1 (3,5 puntos)
En un fichero se nene a..'da una matriz lilxN que representa un mapa 2D en la que nos encontramos las
localizaciones iniciales de diferentes objetos (O como mximo etiquetados de 1 a O. En otro fichero, en cada
lnea encontramos una serie de movimientos (P como mximo' definidos por la terna (objeto, direccin y
velocidad
Se pide que se desarrollen los subprogramas necesarios para:
- realizar un cierto nmero de movimientos (p, determinando la situacin final del mapa.
- determmar si se ha tenido xito, es decir si no ha existido ninguna colisin entre los objetos.
Observaciones:
- No es necesario realizar los subprogramas de E/S, ni la accin principal.
- Las direcciones vlidas son slo las cuatro principales (1-N. 2-5. 3-E. 4-0).
- - La velocidad se mide en pasos en el mapa.
Ejemplo:
Fichero de Movimientos (objeto, direccin, velocidad):
212
1 35
122
i mov:135 mov:122

Matriz inicial: mov:212


00000000000

00000000020

1 00000000020

00000000020

01000000000

01000000000

00000010000

00000000000.

00000000020

00000000000

00000000000

00000000000

00000000000

00000000000

00000000000

00000010000

00000030000

00000030000

00000030000

00000030000

PROBLEMA 2 (3,5 puntos)


Se dispone de un fichero de texto con la lista de cdigos, de productos,

v sus correspondientes existencias, de un

almacn. Se desea ordenar esta informacin ascendentemente por nmero de existencias, almacenando el
resultado en un nuevo fichero.
Se deber utilizar el algoritmo de ordenacin por cuentas, que se describe a continuacin:
El primer paso consiste en averiguar cul es el mten'aio dentro del que estn los datos a ordenar (valores
mnimo

mximo).

Despus se crea un vector de nmeros enteros con tantos elementos como valores haya en el intervalo
[mnimo. mximo], i a cada elemento se le da & valor 0 (0 apariciones. Tras esto se recorren todos los
elementos a ordenar i se cuenta el nmero de apariciones de cada elemento (usando el vector que
hemos creado.
Por ltimo, basta con recorrer este vector para tener todos los elementos ordenados.
Realizar un proarami completo accin princiDa] - subprogramas utilizando el diseo descendente r las
estructuras de datos adecuadas.

--

'

Eicues. Po[iecrnca SuDefli" oc


A1aeca:
1 pi fln
''

PROGRAMACIN EN LENGUAJE ALGORTMICO (75%)


PROBLEMA 1
Disear subprog-ramas para:
Dado un vector (V de nmeros enteros no relleno completamente, en el aue se encuentran huecos etiquetados a
cero, los elimine creando un nuevo vector kY, determinando la lista de casillas en la que se encuentran los huecos.
2 Dado otro vector P inserte sus elementos en los huecos de V creando un nuevo vector Q.
1

Eiempio:
' 2340012000098001230
W 23 4 1 2 9 8 1 23
P 7 644
Q 234 61 244 0 098001 2 30

PROBLEMA 2
Informalmente, un o-zafo es un coniunro de obietos llamados vrtices o nodos unidos por enlaces llamados aristas o arcos,
que permiten representar relaciones binarias entre elementos de un conjunto.
La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar relaciones binarias.
La matriz de adyacencia para el grafo dirigido de la figura

viene dada por:

Fi

ti

Ji u
ti

Realizar un programa que

ti
ti

ti

ti

ti

ti

ti

ti

ti

ti

(_

ti

ti

ti

partir de una matriz de adyacencia determine si existe algn ciclo sucesin de aristas adyacentes

donde no se recorre dos veces la misma arista

se regresa al punto inicial.

Nota. Realizar un programa completo accin principal - subprogramas. utilizando el diseo descendente
estructuras de datos adecuadas.

ir

ias

csrues Po,nec: ,icr Sute'

ia'

as
In('nr-

rs,

anr.?

PROGRAMACIN EN LENGUAJE ALGORTMICO (75)


PROBLEMA 1 (10 puntos)
Dado un vector con valores numricos enteros positivos

neganvos, relleno de forma incompleta, se pide desarrollar

subprogramas para:
a) en el mismo vector colocar en primer lugar todos los nmeros negativos r despus los positivos sin utilizar ningn
algoritmo de ordenacin.
b, con los datos contenidos en otro vector de longitud efectiva inferior al primero, consiga seleccionar de forma
aleatoria la mitad de ellos e insertarlos en la mitad negativa o positiva segn corresponda.
Ejemplo:
y = [2 -39 5 -4-1 7]
Despus de la ejecucin de a):
y = [-3-4-1 2957]
si w = [12 -9 6 3]

aleatoriamente escoia por eJemplo [6 -9]

-losmserteenv=[-3-4-1-92956]

PROBLEMA 2 (10 puntos)


Un grafo es un conjunto de obietos llamados vrtices o nodos y una seleccin de pares de vrtices, llamados aristas o
arcos). Tpicamente. un grafo se representa mediante una serie de puntos (los vrtices) conectados por lineas (las aristas,,
como el siguiente grafo dirigid o:

Para almacenar la informacin de un grafo en un ordenador se puede utilizar una matriz de advacencia
donde

;:

A de tamao /zx/:.
es el nmero de vrtices En el caso de un geafo dirigido como el de la figura antenor. si hay un arco desde e)

vrtice i a hacia el vrtice;, entonces el elemento

A,.

es 1, de lo contrario es O.

Para elgrafo dirigido de la figura anterior la matriz de advacencia sera la siguiente:


o

'

fi

1:

Realizar un programa completo cuya accion principal realice llamadas a subprogramas que resuelvan:
1. A partir de una lista de pares ordenados correspondientes a los arcos de un grafo (se leern de fichero,, rellenar la
matriz de adyacencia asociada. (2 puntos)
Obtener una lista con los nodos aislados no conectados mediante arcos,. (4 puntos'
2
3. Determinar si existe un camino para llegar desde un nodo a hasta un nodo 1-. [2 punros
Observaciones:
-

Se valorar con 2 punto , el correclo diseo da 1-a accin principal e las llamadas a los subprogmrna.

Escuez Poiizecnica Suero oc


4rieci:aE
ajen: a: Lu:.

-e
_

PROGRAMACIN EN LENGUAJE ALGORTMICO (70%)


PROBLEMA 1 (10 puntos)
que representa un mapa con

Dada una

Ufl2

serie de objetos representados con numeros enteros, como la

siriuientc:
0000000111 0000
02000030000000
02000030000040
02000000000000
00000005535000
Se pide realizar subprogramas para:
a) encontrar el nmero de casillas ocupadas por objetos en cada fila

columna

00000001110000 3
02000030000000 2
02000030000040 3
02000000000000 1
00000005355000 4
03000022221010
b encontrar un "hueco" de n casillas horizontales, para introducir un nuevo obeto. indicando su posicin de comienzo.
e': s se genera una paren de nulmeros aleatorios
NOTA: no realizar

12

accin principal,

tu

indicar si esa posicin est ocupada por un objeto.

los subprogramas de lectura escritura de ficheros

PROBLEMA 2 (10 puntos)


Un cuadrado mano es una matriz de cxc elementos, en la que cada casillo est, ocupada por uno de los o
smbolos de tal modo que cada uno de ellos aparece exactamente una vez en cada columna y en cada fila.
Las siguientes matrices son cuadrados ladnos:

Realizar un proarama completo que permita realizar dos operaciones:


1 Averiguar Si una matriz de enteros es un cuadrado latino. (4 puntos
2 Generar un cuadrado latino. 4 puntos
Se valorar ci correcto diseflo de la accin `)rMCM1,111

las llamadas a los suiot'ogramas. '2 puntos

fl

Escue:r Po:itecnica Supeo os

Nombre completo:

DNI:

Programacin en Lenguaje Algortmico


Problema 1 (5 puntos)
Informalmente. un grafo dirido es un conjunto de vrtices o nodos umdos por arcos, que permiten representar relaciones
binarias entre elementos de un conjunto. Por e3emplo:

E. .----- E

La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar estas relaciones binarias. Para el
grafo dirigido anterior seria.

0 1 0 0 1 u 0 01
1' 0 0 0 0 0 1 0
1' 0 0 0 0 0 0 01
(1
O O - 0 0 (1
A= 0
UOUOOU
II 1 1 0 0 () 0 Uj
OUU0000U
O 1) U 0 U 0 1

o]

donde 41J signiflca que sale un arco del nodo con destino al;
Realizar un programa que lea una matriz de adyacencia de un fichero y escriba en otro la lista de nodos de los que sale algn
arco. Para el grafo anterior esta lista sera: 0. 1. 3, 5.
Adems, se mostrar un mensaje en pantalla indicando si existe algn par de nodos que tengan arcos a los mismos nodos
destino.

Problema 2 (5 puntos)
Se dispone de la matriz asociada a un sistema de

1?

ecuaciones con o mcorutas, almacenada en un fichero.

Disear un programa que permita efectuar sobre matriz una secuencia encadenada de operaciones de fila que el usuario ir
indicando, introduciendo los datos necesarios por teclado, y que pueden ser:
Multiplicar una fila por un nmero.
Intercambiar dos filas.
- Sumar a una fila otra multiplicada por un nmero.
Se deber mostrar en pantalla la matriz despusde leer
se o cada vez que se le realice una operacin de fila. La matriz final se
guardar en un fichero.

Es:uel Poiecr

in ,

ce
1:na

PROGRAMACIN EN LENGUAJE ALGORTMICO (70%)


PROBLEMA 1
Tenemos un fichero en el que se encuentra almacenado el reistro horario de un aforador (dispositivo aue mide el nmero
de vehculos,l en una determinada carretera. Se trata de calcular una serie de predicciones del valor siguiente en funcin de la
media de valores anteriores (de un determinado orden n Se pide:
a) proporcionar la matriz de predicciones hasta orden n.
b) proporcionar cul es el valor ms repetido (es decir, el nmero medio de vehculos ms frecuente.
Ejemplo a):
Si tenemos una serie horaria como la siguiente:
40

30

20

10

15

20

35

t2

t=3

14

t=5

t6

Prediccin orden 1. Media de orden 1 (coincide con el valor anterior)


-

30

40

10

20

20

15

Prediccin orden 2. Media de orden 2 (de los dos valores previos)


35=
25=
15=

115
(20-10)/2 (1015),1 2 (1520) '2

(40-30) '2 (3020)/2


Etc.

NOTA: Se debe realizar la accin principal y los subprogramas necesarios, pero no los de E 'S, para ellos escribir solo sus
cabeceras.

PROBLEMA 2
Loa discos magnticos utilizados en los ordenadores actuales almacenan la informacin en forma de crculos concntricos
llamados pistas. Un factor que afecta al tiempo de lectura / escritura de un dato en disco es el tiempo de localizacin de la
pista correspondiente. Cuando se solicita simultneamente el acceso a diferentes pistas se plantea cul ser la metor forma de
atender a todas las peticiones.
E) algoritmo SSTF (Shorrest Set-rice Time Fiist) consiste en atender la peticin que requiere el menor movimiento de la
cabeza de lectura , escritura desde su posicin actual. De esta forma se elige la opcin que incurre en un menor tiempo de
bsqueda. El siguiente eiemplo muestra el funcionamiento de este algoritmo.
Ejemplo
Lista de peticiones de pista en espera de ser atendidas (,pista inicial = 95
22

124

105

142

181

36

50

115

Resultado del algoritmo de SSTF


Prxima pista a iaqueseaccede
Nmero de pistas que se atraviesan
Realizar el programa que implemente el algoritmo SSTF.

105 1 1151 124 1 142 181 50 36

10 10
1$ 30 122 23

22
14

-. Exphic2 ( 1U

cncno

UC,.

pandad. Pon eiempio.

S. Explica cmo se realizan los cambios de base.

9. Explica aud es el ciclo de vida,

10. Explica qu es la Informtica y su papel en la Ingenieria.

Escuee Po2rec:ct Sueno

.xarner

PROGRAMACIN EN LENGUAJE ALGORTMICO (75%)


PROBLEMA 1
En un fichero se encuentra informacin relativa a las ventas anuales de una empresa. En l se encuentran registros de
(cdigo_producto, precio venta, unidadesproducto y cliente). Se pide:
a Determinar quin es el cliente que ms ha comprado en el afio.
b Ranking de productos ms solicitados.
Ejemplo de fichero
400
2
0003
120
3
0001
200
10
0004
100
0003
-

CL002
CLO02
CLO01
CLO03

NOTA: se debe realizar la accin principal i los subprogramas necesarios, pero no los de E l/S. para ellos escribir solo sus
cabeceras.

PROBLEMA 2
Un satlite fotografia peridicamente un trozo de superficie terrestre enviando estos datos a un servidor. Cada imagen viene
dada por una matriz de enteros donde cada valor indica el grado de humedad de esa posicin. Realizar un programa que a
partir de un fichero con la secuencia de imgenes obtenga:
1, La posicin donde ms humedad se ha encontrado en cualquiera de las imgenes.
2) Una matriz con los valores promedio para cada posicin.
3) Si en alguna fila de la matriz promedio se encuentra un determinado patrn.
Se valorai-i el uso de estructuras de datos adecuadas as como el diseo modular.

Es:ue.r to::e:r::s Su:cr:o as


toeri a:

Nombre:

DNI:

PROGRAMACIN EN LENGUAJE ALGORTMICO


PROBLEMA 1
El mtodo de biparticin sirve para encontrar una raz de una funcin en un intervalo [a.b] siempre que
f(21f5)<0 y consiste en:
a.
b.
c.

2+ b /-1
Calcular el punto X:
)
Evaluar f(x : ). Si Cxit tiene el misnio signo que f(a,, la raz se encuentra en [ao i .b] y en caso
contrario en [a. Xl].
Repetir 1 y 2 hasta que fx 1 sea nulo o suficientemente pequeo. En cuyo caso, xi es raz de la
funcin.
(
1

Se pide:
a, Realizar un subprograma para encontrar una raz de una funcin polinrnica Cf = a x'
x' .....
a1xaf,. dada por su orden (n) y sus coeficientes (aa. ap;, ....- at.a) en un cierto intervalo dado {a.bl.
b) Realizar una accin principal en la que se solicite por teclado un intervalo [a.b] comprobndose que se
cumpla que ftaf(b)<O, en caso contrario debe solicitarse de nuevo hasta que se cumpla. Igualmente, se
deben solicitar el orden del polinomio y sus coeficientes. Estas lecturas deben realizarse para 10
polinomios asegurando que el intervalo [a.b] sea correcto en cada caso. El resultado debe escribirse en
pantalla y en un fichero con el formato siguiente:
Orden

Coeficientes

Raz Calculada

Intervalo

-3 21 1

0.33

[01]

PROBLEMA 2
Los grafos dirigidos pueden ser utilizados en los provectos de ingeniera para representar las distintas tareas en
que se componen. su duracin estimada y la forma como deben elecutarse. A continuacin se muestra el grafo, y
so matriz de advacencia asociada, de un provecto que se compone de 9 tareas y 8 estados:
LataGO floateno:

5
laraL

U'

Taren
Ir e: 111 (J

Ltado
anl:ro

-:
(1'

Las aristas dirigidas representan las tareas tunto con su duracin estimada, y en los extremos de cada una se
encuentran los nodos que indican el estado del provecto antes r despus de etecutarla (la tarea 5 nene una duracin
de 25, y su estado anterior y posterior son el 4 5 respecnvamente.
Existe un nico estado inicial i final para el provecto tel nodo 0 el respectivamente..
Antes comenzar una tarea se debe alcanza: su estado anterior, y para ello es necesario que hayan finahzado las
tareas que conduzcan a este estado (la tarea O debe esperar a que termine la 3 la S. la tarea 2 debe esperar a qu
Termine la 0,.
Es posible ejecuta: tareas de forma concurrente cuando comiencen en un mismo estado anterior (la tarea O y la 1:
la 3 y la 4..

Realizar un programa que partiendo de la matriz de adyacencia de un gafo de este tipo, determine la duracin
total de las tareas involucradas en pasar 'e un deteminado estado i a otro posterior
Nota 1. Supondremos que no ha' tareas concurrentes desde el estado i 01
Nora 2. Se Yalorani el USO de estrucTuras de datos adecuadas asi como el diseo modular.

fl A

Euer Po.ict Sueeno oc


1oecira:

1 (1

5:.

PROGRAMACIN EN LENGUAJE ALGORTMICO (70%)


PROBLEMA 1
Encontrar el nmero de 6 cifras que multiplicado por 1.13.45.6 repite sus dignos de forma desordenada:
b Ie

abcdef a 1 = abcedef
abcdef a 2 = faedbc

a Recorriendo los nmeros de 6 cifras en orden.


b) Escogiendo cada nmero de 6 cifras aleatoriamente. En este apartado indica: cuntos nmeros
aleatorios se han generado.
Realizar
la accin principal
c)

PROBLEMA 2
Se desea suavizar una imagen fotogrfica modificando cada pixel en funcin de un conjunto de pxeles cercanos.
Concretamente, consideraremos la imagen en escala de grises sin color, de tamao Mx y almacenada en una
matriz de enteros de Mx1\. Para el suavizado de cada pixel i Ji se calcular el promedio de los valores de la
submatriz cuadrada que tiene en el centro a este pLxel de tamao

(2D-1)x(2D-7 1 . como se muestra a

continuacin:

i-D

jo-E

H ..
JiT.

22

...

20

...

98

...

45

...

44

...

10

El nuevo valor del pixel

(2,;)

ser el promedio de las celdas sombreadas

Todos los pxeles (aJ' de la imagen se debern promediar, y en los casos en que el pixel est cerca de los lmites
de la imagen. la submatnz para el clculo del promedio tendra celdas fuera de la imagen que no habra que
considerar en el promedio.
Realiza: un programa completo a partir del siguiente diseo descendente:
[ Accin principal

Funcin leedmagenDeFichero

Accin suavizarimagen

Funcin suavizarPec

Funcin estElPixelDenrroDeLairnageo

: Funcin escribirimagenhnFichero

tSCuei V01ie:mCE. Lc)efl0 or


ALaecira:

------

11L

\-

ii..::: IhrflhUL - .

ce :eav:

PROGRAMACIN EN LENGUAJE ALGORTMICO (75%)


PROBLEMA 1
Queremos grabar o canciones de tamaos ti, almacenados en un vector y cuya suma es Pn, en un peo drive de
tamao T < Pn, siguiendo los siguientes algoritmos, para los que se pide desarrollar subproc-ramas:
1.
2.
3.

Aleatoriamente.
Con un algoritmo que permita almacenar el mximo nmero de canciones en el espacio disponible.
Con un algoritmo que seleccione las canciones de forma que se minimice el espacio vaco. Nota. En cada
paso se deber buscar la combinacin de canciones que consiga que sobre lo mnimo Ca.b =

PROBLEMA 2
Se dispone de las siguientes tablas (almacenadas como ficheros de texto) de la base de datos acadmica de una
titulacin universitaria:
Asignaturas

Alumnos
LD_ALUM
2

LU1EO
'_Miguel Garrido Martos
Beatriz Tonda \iilln

Convocatorias

IDASlG -ASIGNATURA
1
Matemticas
2
Informtica

ID_CONVOC CONVOCATOPJA
1
i Diciembre
2
Febrero
3

lunio

Actas
CURSO 1 ID_CONVOC

IDASIG

1 IDU

CIFICAClON

2010
2011

2012

2011

6.2

2011

NP

2009

2.5

2009

i3

NP

35

Realizar un programa que solicite un valor de IDJdUM i genere un informe con el siguiente contenido:
Ejemplo para IDALUM2
Beazrir To/zaiz MzI1,:
C~URSO ID_COAI OC OC 'OCTO RA CF1CACIA

ID ASIC
7

1iaierndrzca.

2009

Iniormalica

201U

[amo
2

Febrero
C4LF1C4CIO2\ MEDA

NOTAD El informe se ordenar ascendentemenre por IDASIG, mostrndose la informacin de la ltima


convocatoria del ltimo curso de cada asignatura.
NOTA2: Los registros do las tres tablas estn desordenados.
NOTAP: Es obligatorio realizar un diseo descendente dei algoritmo.

:ueia Poitenjcs Surenor de


ca.

DNI:

Nombre completo:

Examen de Programacin en Lenguaje Algortmico


NORMAS DEL EXAMEN: En la mesa nicamente est permitido tener el material para escribir
(bolgrafo, lpiz, goma); estn expresamente prohibidos los mviles, calculadoras, etc.
No se podr quitar la grapa, arrancar hojas, ni entregar hojas sueltas.
DURACIN: 2h

Problema 1 (2,5 puntos)


Leer un nmero par mayor que dos y comprobar si verifica la conjetura de Goldbach.
Conjetura de Goldbach
En una carta a Euler en 1742. Goldbach afirm que todo nmero par mayor que dos es la suma de dos nmeros primos.
En la actualidad se sigue investigando sobre esta conletura como se demuestran las A cias del Primer Congreso Iniernacional de Ji4 acemcicas el;
In2enieria Cwi/j Araniteciura (Madrid 2007) en la comunicacin titulada Con;eiura de Goldbacis arzt,nzica de Peaizo.
Ejemplos
422k 143-11 10=37

Problema 2 (2,5 puntos)


Leer un nmero positivo y calcular la mejor aproximacin posible a su raz cuadrada utilizando el algoritmo babilnico.
descrito a continuacin.
Algoritmo babilnico para el clculo de la raz cuadrada
Muchos ordenadores y calculadoras computan la raz cuadrada de un nmero positivo A a partir de la sucesin convergente
A
---
sil _a
donde el primer trmino de la sucesin
aproximacin, siendo lirn

So

= A es la primera aproximacin a

V.

y cada nuevo trmino mejora la

s,. = VA-

Problema 3 (2,5 puntos)


Hallar el mximo comn divisor de dos enteros positivos MCD(a. b) con el siguiente algoritmo:
- Si a v b son disnntos el problema se reduce al MCDmavor-menon menor,
- Si a y b son ituales. el resultado es obvio y el algoritmo terminara.
Ejemplos
mcdC9. 91 = mcd52. 39 = mcd,13, 39 = mcd'26. 13 = mcdC3, 13 = 13
mcd(2. 9 = mcd. 2 = mcd(5. 2 = mcd3. 2; = mcdC. 2) = mcd'i. 1 = 1

Problema 4 (2,5 puntos)


Se dispone de un listado con el nombre de 50 materiales a sus caractersticas (Ci. C-1 C3. Realiza:- un programa Que lea estos
datos de teclado mostrando corno resultado:
Nombre del material con mayor valor de Cl para C a- C3 posidvos. Sihay varios se mostrara el ltimo leido.
Mensaje innicando si todo. alguno o ninguno de loe materiales tienen un valor en el rango (i
IOH en todas lar
caractersticas.

'

Escueta Poiitecnca5uperio: oc
1sece:.

Nombre completo:

DNI:

Examen de Programacin en Lenguaje Algortmico


NORMAS DEL EXAMEN: En la mesa nicamente est permitido tener el material para escribir
(bolgrafo, lpiz, goma); estn expresamente prohibidos los mviles, calculadoras, etc.
No se podr quitar la grapa, arrancar hojas, ni entregar hojas sueltas.
DURACIN: 2h

Problema 1 (3 puntos)
Se dispone de una nube de puntos (x; .y,) en la que existe una fuerte correlacin lineal entre las dos variables X e Y. por ello, se
desea obtener la recta y mx b que mejor se aproxime a los puntos:
donde
7n =

= - - xy

Q-xv

b y -

-2

cr

x=

o-x
-

a nmero de puntos

Realizar un programa completo que lea los puntos de fichero y muestre en pantalla los valores de m y 3.

Problema 2 (3,5 puntos)


Dada una matriz de gran tamao NxN, y otra mucho ms pequea YLxM comprobar si la pequea es submatri2 de la grande.
Nota: No se valorar la lectura de los datos.

Problema 3 (3,5 puntos)


A partir de dos nmeros va descompuestos como producto de factores primos, obtener el MCM (multiplicando los factores
comunes y no comunes con su mayor exponente y el MCD (multiplicando los factores comunes con su menor exponente",.
Cada nmero viene dado por dos vectores, de factores primos de exponentes.

Ejemplo
482'3 viene dado como:
Factores primos
2
Exponentes
4
MCD(48. 180' = 23 = 12

18022325 viene dado como:


3

Factores primos

Exponentes

MCM 48, 180. =

Nota: No se valorar la lectura de los datos.

24325 = 720

.soiea -o:itecn:ca Sureno' os


Liue:i:a:.
-

J1

PROGRAMACIN EN LENGUAJE ALGORTMICO (70%)


PROBLEMA 1
En una terminal de contenedores se dispone de un fichero de registro de entrada diario de los contenedores que
llegan para ser embarcados. El fichero dispone informacin de cada contenedor (identificador del contenedor.
instante de tiempo de la entrada en minutos, barco de destino de cada contenedor). El nmero mximo de
contenedores al da son 1000. La terminal dispone de un patio de contenedores que se puede modelar mediante
una matriz de 10 columnas y 100 filas. Al micio existe una configuracin inicial de patio que se encuentra en otro
fichero. El funcionamiento consiste en llevar cada contenedor que llegue, a una posicin aleatoria de un
almacenamiento intermedio (buffer) de dimensin 100. Una vez que este almacenamiento se encuentre lleno se
comienzan a llevar de forma ordenada (por barco) al patio.
Se pide:
a)

Subprograma para determinar el nmero de contenedores que llegan con respecto al contenedor anterior
con menos de 10 minutos de diferencia, con ms de 10 y menos de 20, y as sucesivamente hasta 100.

b)

Subprogramas necesarios para llevar los contenedores al buffer intermedio y de ah de forma ordenada al
patio.

c)

Realizar la accin principal que permita resolver el problema. diseando los subprograrnas necesarios para
a; y b). as como las cabeceras de los subprogramas necesarios para la correcta lectura de los ficheros.

PROBLEMA 2
En una empresa relacionada con la construccin, se dispone de un archivo con la informacin de todos los
presupuestos recibidos para todos los proyectos a eJecutar. El archivo tiene al formato:
Cdigo de provecto

Cdigo de presupuesto

Importe parte A j Importe parte B

Importe parte C

Cada proyecto puede tener ms de un presupuesto asociado. Todos los presupuestos se dividen en tres partes. El
importe total de un presupuesto es la suma de los importes de las partes. Los datos no se encuentran ordenados.
Realizar un programa completo que a partir de este archivo genere otro nuevo con la informacin solicitada por
el usuario, segn la opcin elegida
1) Listado de proyectos con un solo presupuesto.
1 Listado en el que aparezca cada proyecto junto con su presupuesto ms econmico.
3 Listado de provectos y presupuestos asociados ordenado ascendentemente por:
Cdigo de proyecto - importe parte -ANOTA: Se valorar el diseo descendente y la lectura/escritura de datos.

fl

Es:ueiz PoUtenca Supeno o


)partzi.fl

cjL

ni ' r:i

:'

1 z.'

.c

21 '1

PROGRAMACIN EN LENGUAJE ALGORTMICO (75A)


PROBLEMA 1
En un almacn tenemos una serie de productos apilados mximo 2\1 productos ) . Cada producto nene su pila
diferente Dependiendo del producto, la dimensin mxima de su pila es diferente, pero nunca mayor que un
cierto entero N. Las dimensiones mximas de las pilas se encuentran almacenadas en un vector. Inicialmente, hay
un cierto nmero de artculos de cada tipo apilados en el almacn. La configuracin inicial del almacn se
encuentra en un fichero. En otro fichero, se encuentra la lista de artculos (y sus unidades) que estn llegando en
cada instante de tiempo al almacn, y en otro la asta de artculos (y sus unidades) que se estn sacando en cada
instante de tiempo del almacn.
Se pide realizar el programa principal y los subprogramas necesarios para realizar una simulacin de t unidades de
tiempo, mostrando en cada instante la configuracin del almacn indicando si alguna pila ha superado su
capacidad lmite (si unas unidades no pueden apilarse se guardan en otro almacn independiente de forma
s ecuen cial) .
NOTA: no realizar los subprogramas de lectura/escidrura de tablas a/desde fichero solo plantear sus prototipos.

PROBLEMA 2
En un fichero se encuentra almacenada la informacin de un sistema de M ecuaciones lineales con N incgnitas.
Se pide:
a) copiar en una matriz las ecuaciones gue sean suma de otras dos, escribirla postenormente en un
fichero.
NOTA: Es obligatorio realizar un diseo descendente del programa.

Escuers ro : iecn:a Sjaeic as

:
-

)cr:Teni

in h)rnriL.

f_.

se
crner ura

os

PROGRAMACIN EN LENGUAJE ALGORTMICO (70%)


PROBLEMA 1
Cualquier nmero entero cumple la propiedad de que si le sumamos el mismo nmero con sus cifras invertidas
produce un nmero capica o palindromo, o bien, hay que seguir realizando la misma operacin hasta que
finalmente aparece el capica (en cada caso, el nmero de repeticiones puede ser diferente).
Ejemplo:
123 321 = 444 (capica. nmero de repeticiones = 1)
417 - 714 = 1131 - 1311 = 2442 (capica, nmero de repeticiones 2
67 - 76 = 143 341 = 484 (capica. nmero de repeticiones = 2

Se pide desarrollar un programa modular (accin principal y subprogramas necesarios', ,,que dado un conjunto de
nmeros enteros contenidos en un fichero, determine produzca una tabla con cada uno de los nmeros, su
capica y el nmero de repeticiones necesario para encontrarlo.

PROBLEMA 2
Una empresa dispone de una serie de recursos que pueden ser solicitados por los empleados. Los recursos se
representan como elementos de una matriz art;, de forma que cuando un empleado solicite un recurso deber
aportar dos nmeros entre O y ;t-7. Cada empleado nene asociado un cdigo numrico que lo identifica y a la vez
indica la prioridad que tiene respecto a los dems en el caso de que varios empleados soliciten el mismo recurso.
Se dispondr de un fichero con la informacin de la solicitud de recursos de los empleados que tendr el formato

em1eaao ,/ Recurso sokcitado


El fichero no est ordenado, y podemos encontrar que un empleado solicita varios recursos, as como un recurso
puede ser solicitado por varios empleados.
cai,go

Realizar un programa que lea el fichero de solicitudes y genere:


a un fichero con la lista de empleados que han solicitado algn recurso que no puede serle concedido por
haber sido solicitado por otro empleado con mayor prioridad.
b) un fichero con la matriz de recursos asignados a los empleados.

NOTA: Se valorar el diseo descendente y la lectura/escnrura de datos.

fl

f\

Escue,z Po1ecni.:e SuDario oc


e C Ir a
ci
Lnl.ri: iiirmaii,i

'

Oc

Sevor. o.:

PROGRAMACIN EN LENGUAJE ALGORTMICO (75%)


PROBLEMA 1
Dada una matriz \LxN que emula una superficie por la que se desplazan hormigas, se desea reaiizar un programa modular
que identifique si alguna hormiga llega a un cierto punto del piano. definido con anterioridad antes de un cierto tiempo T.
inicialmente hay H hormigas, cuyas posiciones se encuentran en un fichero. El programa debe realizar los movimientos de
las hormigas segn las siguientes reglas:
Cada hormiga deis un rastro (de feromonas) en cada punto por el que pasa.
- En cada instante, cada hormiga se mueve un paso en una de las cuatro direcciones principales desde donde se
encuentra, avanzando hacia el punto donde encuentre el rastro de alguna compaera o bien aleatoriamente.
NOTA: No realizar los subprogramas de Lectura 1Escritura desde/hacia fichero 'teclado pero si sus prototipos o cabeceras
cuando sea necesario

PROBLEMA 2
En un fichero se encuentra almacenada la matriz con la informacin de un sistema de N ecuaciones lineales con
N incmtas.
Se pide realizar un programa completo para:
a comprobar si la matriz est en forma escalonada v no nene ninguna fila con todos sus valores a cero:
en ese caso. invertir el orden de las ecuaciones (la primera se intercambia por la lnma y as
sucesivamente). y
c' resolver el sistema.
NOTA: Es obhgatorio realizar un diseo descendente del programa.

Escueta Coiiecn1ca Suueno ce

Titulacin:

DNI:
Nombre y apellidos:

PROBLEMA 1 (5 puntos).
Dada una matriz NxN, se pide realizar subprogramas para:
1)

Rellenar una matriz con valores cero. (1 punto)

2)

Rellenar una matriz con nmeros aleatorios entre 1 y 10. (1 punto

3)

Rellenar una matriz como en la figura 1. teniendo en cuenta que en cada fila aparece un nmero de la secuencia de
Fibonacci, que puede calcularse como:

F(0)

1,

F(n)

F(n-l)+F(n-2). si n>l.

_-\ partir de la fila que se rellene completamente, el relleno ser simtrico. (3 puntos)
Nota: La sucesin de Fibonacci indica el nmero de ptalos en una flor, de hojas en un trbol, o de espirales en
una galaxia, entre otros e)emplos.

1 1

5555555
Figura 1. Ejemplo para una matriz 9x9:

888888888
5555555

1 1

NOTA: No realizar subprogramas de Lectura 'Escritura desde/hacia ficheroteclado. No realizar accin principal.

PROBLEMA 2 (5 puntos).
Realizar un programa para leer una tabla desde fichero y ordenarla con un subprograma que implemente el algoritmo de
ordenacin por seleccin, que consiste en:
seleccionar el mnimo elemento de la tabla e intercarnbiario con el primero
seleccionar el mnimo en el resto de la tabla e intercambiado con el segundo
y as sucesivamente hasta que todos estn ordenados
El resultado deber mostrarse luego en pantalla.

ESCLJeE Potirecrica Suoenor de

- ---

tgecir2S

Titulacin:

DNI:
Nombre y apellidos:

PROBLEMA 1(5 puntos).


Dados un vector V de dimensin mrinma N y relleno incompletamente y dos matrices (PxP y QxQ,z QP';. se pide
realizar subprogramas para:
1) determinar si el vector V se encuentra en alguna de las dos matrices (1 punto)
2`
si la matriz PxP se encuentra en la matriz QxQ (1 punto
3)

calcular un vector de tupias con los elementos de V que estn en la matriz QxQ, y el nmero de ocurrencias de
cada uno en la matriz. (2 puntos )

Implementar un programa completo para realizar los tres apartados anteriores (1 punto).
NOTA: No realizar los subprogramas de Lectura "Escritura desde/hacia fichero,' teclado.

PROBLEMA 2 (5 puntos). Disear subprogramas para:


Dado un vector de nmeros enteros no relleno completamente, indique si se encuentra ordenado ascendentemente.
Dados dos vectores ordenados no rellenos completamente, genere un tercer vector mezcla con todos los datos ordenados.
F.empio apartado 2:
Vector 1:

51112 1

\ector 2:

4 810 15 18

Vector solucin:

3 8101112 13 1 18

O A

EscuePo:iecnc Sueo' oe
u.

EkE::

Titulacin:

DNI:

Nombre y apellidos:

PROBLEMA 1 (5 puntos).
Dado un vector de N datos relleno de forma incompleta y una matriz MxN, ambas con posibles
repeticiones de sus valores, realizar subprogramas para:
Determinar si el vector est contenido en alguna de las frias de it matriz, indicando en su
caso, el nmero de fila.
b) Una nueva matriz que contenga aquellos valores que aparezcan slo una vez en la matriz
original
a)

NOTA: No se debe realizar la accin principal, ni los subprogramas de E/S, slo los necesarios para la
solucin de los problemas propuestos.

Problema 2 (5 puntos) - Dada una tabla de longitud mxima N datos en la que estn representadas las
coordenadas X, Y de un cierto punto del plano, la ciudad a la que pertenece (se han registrado datos de
exactamente C ciudades, C<N) y ir cantidad media diaria de litros de lluvia por metro cuadrado en ese
punto, se pide desarrollar subprogramas para:
a)

la cantidad de lluvia total de cada punto del piano XY

b)

una lista ordenada de las ciudades (de mayor a menor cantidad de lluvia total)

NOTA: No se debe realizar la accin principal, ni los subprogramas de E'S, slo los necesarios para la
solucin de los problemas propuestos.

CA .
EE

ti oc

:-

Titulacin:

DNI:

Nombre y apellidos:

PROBLEMA 1(5 puntos).


Se tiene una matriz MxN que representa un almacn, en la que cada celda contiene un nmero de
producto, el tiempo que lleva almacenado. Se pide, para un pedido de material que se solicite
(representado por una tabla de productos), determinar el xito al intentar satisfacerlo, las coordenadas
de las localizaciones de los productos salientes en el almacn, y el tiempo tardado al atenderlo:
a)

si generamos aleatoriamente localizaciones de la matriz que coincidan con cada producto que
hay que extraer del almacn.

b) si decidimos que debe salir en cada caso, la unidad que lleve ms tiempo en el almacn.

Ejemplo:
Almacn 4x3: cada celda condene (Producto. tiempo)

(3.3) (3,2) (4.10)


(2,5) (2.5) (4, 15)
(1,5) (1.6) (l.)
(.1) (3.1) (4.20

Pedido: 113
a)

coordenadas 2.0) 2.2) (0.1). xito. Tiempo aleatorio.

b) coordenadas (2.2) (2.1) (0.0. xito. Tiempo = 3 unidades.

NOTA: No se debe realizar la accin principal, ni los subprogramas de FIS, slo los necesarios para la
solucin de los problemas propuestos.

PROBLEMA 2(5 puntos).


Dado un vector de N datos relleno de forma incompleta y una matriz MxN, ambas con posibles
repeticiones de sus valores, realizar subprogramas para:
a) Determinar si la tabla es subvector en alguna de las filas o columnas de la matriz, indicando
en su casa los nmeros de fila v o columnas.
b Una nueva matriz que contenga aquellos valores que se repitan menos de un cierto valor R
en la matriz original
NOTA: No se debe realizar la accin principal, ni los subprogranias de E S. slo los necesarios para la
solucin de los problemas propuestos.

Esuea Potte:nca Su)eror de


Aecirai

\'f

Ldnm ,).

DNI: [

TUdR'

Nombre completo:

Programacin en Lenguaje Algortmico


Problema 1 (5 puntos)
Leer un conjunto de 30 temas de nmeros reales '1.5. i correspondientes a los vrtices de una pieza 3D. Rotar la pieza un
cierto ngulo S respecto al eje Z.
Para los vrtices de la pieza rotada, mostrar en pantalla:
1) Coordenadas del vrtice ms cercano al origen (en el caso de que haya varios mostrar el primero ledo de teclado'),
2) Distancia media de cada vrtice a su inmediatamente anterior segn el orden de lectura de teclado.
Ii Un mensaje indicando si todos los vrtices han modificado sus coordenadas originales una vez rotados.
4 Un mensaje indicando si existe algn vrtice cuyas tres coordenadas sean valores entero (parte decimal igual a cero').

Nota. El clculo de cada nuevo vrtice (x

'j rotado se realiza de la forma:


(x , ) - (cos 3 sin (3 0\\ ( X )
Y tsinl cos(3 0jY
Z
3,1
0
O
z'/

Problema 2 (5 puntos)
Disear un algoritmo que descomponga un entero y: (mayor que 1 ) en factores primos, escribiendo en pantalla cada factor y su
multiplicidad. Por ejemplo, para ;;1200 el resultado sera:
Factor primo

2 3

Multiplicidad

t ,

Nota. Es conveniente plantear primero el algoritmo que obtiene la multiplicidad de un cierro divisor: de i;. Una vez obtenido
este algoritmo, se puede abordar mejor el problema de la descomposicin en factores primos.

itnir c jrio
-

cira

Nombre completo:

DNI:

Programacin en Lenguaje Algortmico


Problema 1 (5 puntos)
Leer un conjunto de 25 ternas de nmeros reales :.

i.

j correspondientes a los vruces de una pieza 3D. Rotar la pieza un

cierto ngulo o respecto al eje Y.


Para los vrtices de la pieza rotada, mostrar en pantalla:
1)
2)
3)
4)

Coordenadas del vrtice ms alejado del origen (en el caso de que haya varios mostrar el ltimo ledo de teclado).
Distancia media de cada vrtice a su inmediatamente posterior segn el orden de lectura de teclado.
Un mensaje indicando si todos los vrtices han modificado sus coordenadas originales una vez rotados.
Un mensaje indicando si existe algn vrtice cuyas tres coordenadas sean valores enteros (parte decimal igual a cero).

Nota. El clculo de cada nuevo vrtice (x1y

rotado se realiza de la forma:


(f\
37

z'1

1tcos oc
0

O sin oc\ 7x
1
0

\sin oc O cos oc!

Problema 2 (5 puntos)
Disear un algoritmo que descomponga un entero a (mayor que 1) en factores primos, escribiendo en pantalla cada factor y su
multiplicidad.
Por ejemplo, para =600 el resultado seria:
Factor primo

2 3

Multiplicidad

Nota. Es conveniente plantear primero el algoritmo que obtiene la multiplicidad de un cierto divisor x de a. Una vez obtenido
este algoritmo, se puede abordar mejor el problema de la descomposicin en factores primos.

inul :

IL 1LJ1\1>t)J;

ijuntras

fl ' OX

n:n :
mul mu] 1
Fnnentras
Descomposicin de un entero n (mayor que 1) en factores primos escribiendo en pantalla cada factor con su muidplicidad.
ieer(n)

=
]\Iientras n>1
mul 1
]\aentras noXQ
n:n/x
mu] : mu] 1
Fmientras
Si mu] > O
escribir(-,, mu])
Fsi
Fmientras

Potrebbero piacerti anche