Professional Documents
Culture Documents
DEPARTAMENTO DE INFOMTICA
Fundamentos de Informtica
Relacin de Problemas I
Fundamentos de Informtica. Relacin de Problemas
2
Fundamentos de Informtica. Relacin de Problemas
1) En cul de los siguientes pares es importante el orden de los enunciados? En otras palabras, si se
modifica el orden de ellos, cambian los resultados finales? (Supngase que X<>Y<>Z).
a) XY
YZ
b) XY
ZX
c) XZ
XY
d) ZY
XY
2) Suponed que I y J son variables enteras cuyos valores son 6 y 12 respectivamente. Cules de las
siguientes condiciones son verdaderas?
a) 2*I <= J
b) 2*I-1 < J
c) I > 0 AND I <= 10
d) I > 25 OR (I < 50 AND J < 50)
e) I < 4 OR J > 5
f) NOT I > 6
3) Un departamento de climatologa ha realizado recientemente su conversin al sistema mtrico. Disear
un algoritmos para realizar las siguientes conversiones:
a) Leer la temperatura dada en la escala Celsius e imprimir en su equivalente Fahrenheit (la frmula de
conversin es F=9/5 C+32).
b) Leer la cantidad de agua en pulgadas e imprimir su equivalente en milmetros (25.5 mm = 1 pulgada).
4) El siguiente es el men de un restaurante de bocadillos. Disear un algoritmo capaz de leer el nmero
de unidades consumidas de cada alimento ordenado y calcular la cuenta total.
Bocadillo de jamn (250 pts)
Bocadillo de queso (200 pts)
Patatas fritas (100 pts)
Refresco (175 pts)
Cerveza (125 pts)
Total =
5) El costo de un automvil nuevo para el comprador es la suma total del costo del vehculo, del
porcentaje de la ganancia del vendedor y de los impuestos locales o estatales aplicables (sobre el precio
de venta). Suponer una ganancia del vendedor del 12% en todas las unidades y un impuesto del 6% y
disear un algoritmo para leer el costo total del automvil e imprimir el costo para el consumidor.
6) Disear un algoritmo para leer las longitudes de los tres lados de un tringulo (L1, L2, L3) y calcular el
rea del mismo de acuerdo con la siguiente frmula
) 3 )( 2 )( 1 ( L SP L SP L SP SP area
donde
2
3 2 1 L L L
SP
+ +
3
Fundamentos de Informtica. Relacin de Problemas
7) Disear un algoritmo capaz de leer un valor entero y de determinar si se trata de un n par o impar
(Generalizacin: que se lea m y n, dividir m a n?)
8) Dar tres formas diferentes de cambiar el siguiente bucle de forma que se ejecute 20 veces en lugar de
19. Cul de los tres cambios hace que el valor de Cont vaya desde 1 a 20?
Cont 1
MIENTRAS Cont < 20 HACER
Cont Cont+1
FIN_MIENTRAS
9) En cada uno de los siguientes segmentos de algoritmos, indicar cundo el ciclo termina y cundo no lo
hace. Suponer que todas las variables son enteras.
a) Contador 0
Total 0
MIENTRAS Contador >= 0 HACER
Total Total +2
FIN_MIENTRAS
b) Contador 0
Total 0
MIENTRAS Contador <= 10 HACER
Total Total +2
Contador Contador+1
FIN_MIENTRAS
10) Pepito est descontento con su rendimiento en la clase de fundamentos de informtica. En su primer
programa, cometi un error, en el segundo, cometi dos; en el tercero, cuatro; y as sucesivamente.
Resulta que siempre comete el doble de errores en cada nuevo programa que hace. La clase dura trece
semanas y se deben realizar dos problemas por semana. Disear un algoritmo que calcule el nmero de
errores que Pepito debe esperar cometer en su programa final, si se mantiene su rendimiento.
11) Disear un algoritmo par calcular la suma de los siguientes 100 trminos de la serie:
1 -1/2 1/4 -1/6 1/8 -1/10 1/12 -...
12) Un nmero se define como primo si no tiene otros divisores adems de 1 y de l mismo. Disear un
algoritmo para leer un nmero y determinar si se trata o no de un nmero primo.
13) Disear un algoritmo para imprimir la suma de los cuadrados de los 100 primeros nmeros enteros.
14) Los reglamentos de pesca imponen un lmite a la cantidad total permitida de kilos en un da de pesca.
Se supone que se planea llevar un computador porttil y se necesita un programa que indique cundo se
ha excedido dicho lmite. Disear un algoritmo que primero lea el lmite diario (en kg) y que luego lea los
valores de entrada uno tras otro (correspondern a los pesos individuales de las presas pescadas en el
orden en que se obtienen) e imprima un mensaje en el momento en que el lmite haya sido excedido. Un
peso de 0 indica el fin de los datos y, despus de que cada pescado haya sido registrado, el algoritmo
deber imprimir el peso total que se lleva hasta ese momento.
4
Fundamentos de Informtica. Relacin de Problemas
15) En cada uno de los siguientes segmentos indicar el valor que se imprimir para la variable Var.
Suponer que todas las variables son enteras.
a) Var 0
PARA i=1 HASTA 10 CON INCREMENTO DE 1
Var Var+1
FIN_PARA
ESCRIBIR Var
b) Var 0
PARA i=4 HASTA 36 CON INCREMENTO DE 4
Var Var+1
FIN_PARA
ESCRIBIR Var
c) Var 0
PARA i=1 HASTA 14 CON INCREMENTO DE 1
PARA j=1 HASTA 8 CON INCREMENTO DE 1
Var Var+1
FIN_PARA
FIN_PARA
ESCRIBIR Var
16) Una persona acaba de regresar de una reciente gira automovilstica. En cada parada para cargar
combustible apunt la lectura del odmetro y la cantidad de combustible comprado (se supone que en
cada ocasin llen el depsito). Adems, se supone que carg combustible inmediatamente antes de salir
de viaje e inmediatamente despus de regresar, tomando las lecturas del odmetro en ambos casos.
Disear un algoritmo para leer primero el nmero total de paradas que efectu (incluyendo la inicial y la
ltima) y que lea los datos relativos al combustible, calculando posteriormente:
a) El rendimiento alcanzado en kilmetros por litro entre cada par de detenciones.
b) El rendimiento alcanzado en Km por litro durante la totalidad del viaje.
17) a) en matemticas, la siguiente expresin es siempre verdadera:
1 ) sen( x
Disear un algoritmo para verificar esta propiedad en la funcin interna SIN para los valores de
x que van de -10.0 hasta +10.0 en pasos de 0.2.
b) En matemticas, la siguiente propiedad se cumple:
y x que siempre y x
Disear un algoritmo para comprobar que la funcin interna SQRT cumple esta condicin para
valores enteros de x e y en el intervalo de 0 a 100.
5
Fundamentos de Informtica. Relacin de Problemas
18) a) Disear un algoritmo para calcular los ahorros que se tendran al final de diez aos si se
depositara mensualmente la cantidad de 10.000 pts. Se supone una tasa constante de inters
anual del 6% capitalizable cada seis meses (es decir, se agregan al capital los intereses del 3%
cada seis meses).
b) Se desea invertir una determinada cantidad de dinero de manera que llegue a ser X pts en Y
aos. Si la tasa actual de inters es R% entonces la cantidad a invertir (el valor presente de X)
est dado por la siguiente frmula
Y
R
X
) * 01 . 0 1 ( +
Disear un algoritmo que imprima el valor presente de 5000 pts. al 7.5% de inters, para
perodos de uno a veintin aos, en pasos de dos aos.
19) La criba de Eratstenes, renombrado astrnomo y gegrafo griego del siglo III a. De C., es una
tcnica para generar nmeros primos. Se comienza escribiendo todos los enteros impares desde 3 hasta N;
luego se elimina cada tercer elemento despus de 3, cada quinto elemento despus de 5, etc., hasta que los
mltiplos de todos los enteros impares menores que N hayan sido eliminados. Los enteros que
quedan constituyen la lista exacta de los nmeros primos entre 3 y N. Disear un algoritmo para generar
los nmeros primos entre 3 y N, utilizando la tcnica de la criba.
Basndonos en que conocemos los nmeros primos menores que un nmero dado, realizar un
algoritmo que descomponga un nmero dado en productos de nmeros primos.
20) Formular un algoritmo para convertir nmeros enteros decimales (en base 10) a sus respectivas
representaciones octales (en base 8), por medio de sucesivas divisiones. La variable NUMERO contiene
el entero que se va a transformar y BASE la base a la cual se va a convertir (8 en este caso). Por ejemplo,
para calcular la representacin octal de 150, se divide sucesivamente por 8 y los restos que van quedando
se almacenan ordenadamente.
Paso Dividendo Divisor Cociente Resto
1 150 8 18 6
2 18 8 2 2
2268 = 2*8
2
+2*8
1
+6*8
0
=15010
Generalizar y que haga un cambio de base dando como dato la base a la que se quiera pasar.
21) En todo experimento existe cierta cantidad de incertidumbre asociada con cualquier medicin. Una
tcnica conocida como ajuste de curvas puede utilizarse para reducir el error en el anlisis de estos
resultados. Se supone que una serie de valores reales ha sido registrada de N repeticiones de un
experimento en particular, los cuales se almacenan en un vector llamado V. Antes de proceder al anlisis
de estos resultados experimentales, la siguiente operacin de ajuste simple debe aplicarse a los valores de
V. Para cada valor (excepto el primero y el ltimo, los que deben permanecer sin cambios), Vi debe
reemplazarse por
3
1 1 +
+ +
i i i
V V V
Disear un algoritmo para leer las mediciones iniciales y en seguida imprimir los valores
observados y los ajustados. Estos ltimos valores debern ser almacenados en un vector separado
llamado RESULTADO.
6
Fundamentos de Informtica. Relacin de Problemas
22) Desarrollar un algoritmo que elimine todos los espacios finales en una hilera determinada. Por
ejemplo, la hilera El origen del universo deber transformarse en El origen del universo.
23) Formular un algoritmo cuya entrada sea una hilera S y un factor de multiplicacin N, cuya funcin
sea generar la hilera dada N veces. Por ejemplo, los resultados correspondientes a la entrada FI, 3
debern ser FIFIFI.
24) Disear una funcin con dos parmetros x y n, de forma que devuelva:
'
<
+
+
+
+
+
0
1 1
0
2
1 1
2
x si
n
x
n
x
x si
n
x
n
x
x
n n
n n
25) La funcin MOD(x,y) se define como el resto que resulta de la divisin de x por y (siendo ambos
enteros, al igual que el resto). Por ejemplo MOD(8,3) es 2. Formular una funcin que calcule MOD(x,y).
26) a) Disear una funcin SIGMA para calcular la suma de los n elementos de un vector X (X y n
son los parmetros de la funcin).
n
n
i
i
x x x x x + + + +
3 2 1
1
Disear la funcin PROD para calcular el producto de los n elementos de un vector X (de nuevo
X y n son los parmetros de la funcin).
n
n
i
x x x x
3 2 1 1
27) Disear un procedimiento que acepte como parmetro un vector que pueda contener elementos
duplicados. El procedimiento debe reemplazar cada elemento repetido por -1 y regresar al punto de
llamada el vector modificado, adems del nmero de modificaciones hecho.
28) Realizar un procedimiento que acepte como parmetro un vector arbitrario de elementos numricos.
Este procedimiento debe ordenar los elementos y regresar el vector ordenado por medio del mismo
parmetro. Qu tipo de paso de parmetros se requiere? Por qu?
29) Disea un algoritmo que lea un array de caracteres hasta que se introduzca un punto, y que de cmo
salida el nmero de comas encontradas, y el nmero de caracteres ledos.
30) Escribe un algoritmo que calcule el valor de S para un nmero real X dado, utilizando la siguiente
serie:
El valor de S se calcular de tal manera que el error del trmino debe ser menor que 0.0001.
31) Disea un algoritmo que lea en un array N nmeros reales y determine el mayor, el menor y la media
de los nmeros ledos.
7
+ + + + +
! 4 ! 3 ! 2
1
4 3 2
X X X
X S
Fundamentos de Informtica. Relacin de Problemas
32) La constante juega un papel muy importante en matemticas, por lo que no debe sorprender que
existan muchos mtodos capaces de proporcionar aproximaciones numricas de . Muchos de estos
mtodos implican operaciones con una serie infinita. Tres de ellos son los siguientes.
)
7
1
5
1
3
1
1 ( 4
1 2
) 1 (
4
0
+ +
+
i
i
i
+ + +
2 2
1
2
3
6
2
6
6
6
i
i
7
8
7
6
5
6
5
4
3
4
3
2
4
Durante los clculos prcticos, las series infinitas deben limitarse a un nmero finito de trminos,
sacrificando con ello la precisin del resultado.
Disear las funciones necesarias para calcular de acuerdo con cada uno de los mtodos
expresados antes. Cada funcin debe aceptar, como parmetro, el valor de N que indica el nmero de
trminos que van a tomar parte en los clculos.
33) Se necesita una funcin con dos parmetros; el primero es el nombre de un vector y el segundo es un
valor que debe buscarse en ese vector. La funcin debe regresar un 1 si el valor se encuentra en el vector,
y un 0 si la bsqueda es infructuosa. Ni el vector ni el valor deben ser alterados. Qu tipo de parmetros
es preferible? Por qu?
34) Cuntas veces se ejecutar la Accin 1?
Cont 0
MIENTRAS Cont<10 HACER
Cont cont+1
SI Cont=10
ENTONCES
Accion 1
FIN_SI
FIN_MIENTRAS
35) Considerar el siguiente procedimiento llamado Swap, que tiene los parmetros X y Y. Se supone que
T es una variable local.
PROCEDIMIENTO Swap(X,Y)
INICIO
TX
XY
YX
FIN
El procedimiento debe usarse en los siguientes enunciados, donde A es un vector de elementos.
I1
8
Fundamentos de Informtica. Relacin de Problemas
A(1)2
A(2)0
Swap(I,A(1))
ESCRIBIR I,A(1),A(2)
Proporcionar los resultados del enunciado de escritura bajo las siguientes circunstancias,
explicando con detalle lo que sucede en cada caso:
a) La correspondencia entre parmetros formales y actuales se establece por paso por valor.
b) La correspondencia entre parmetros formales y actuales se establece por paso por variable.
36) Cul es el valor de la variable booleana test despus de la ejecucin de los siguientes bucles?
test VERDAD
PARA contador=1 HASTA N
test NOT test
FIN_PARA
test N MOD 2 = 0
PARA contador=1 HASTA N
test NOT test
FIN_PARA
37) Disear un algoritmo para convertir un tiempo expresado en segundos a un formato que lo represente
en horas, minutos y segundos.
38) Escribe un subalgoritmo al que se le de un nmero natural N y dibuje un tringulo de asteriscos con
base y altura N. Por ejemplo si N=5 debera dibujar:
39) Disea un subalgorimo al que se le de un nmero natural N y un carcter. La salida debe ser una
figura compuesta por repeticin del dicho carcter y de anchura especificada por N. Por ejemplo si
es carcter es * y la anchura 5 la figura tendr la siguiente forma:
9
*
* *
* * *
* * * *
* * * * *
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
Fundamentos de Informtica. Relacin de Problemas
40) Escribe un algoritmo que lea una secuencia de nmeros enteros terminada en 0 y pida un nmero a
buscar y escriba en pantalla la posicin de la primera y la ltima ocurrencia del nmero dentro de la
secuencia. Si el nmero no est el algoritmo debe escribir un 0. Si el nmero slo est una vez entonces
las posiciones primera y ltima coinciden.
41) Disea un algoritmo que encuentre todos los nmeros primos menores que un nmero N dado.
42) Considera el siguiente procedimiento:
PROCEDIMIENTO Escr(ch: CARCTER, long: ENTERO)
INICIO
MIENTRAS long>0 HACER
ESCRIBIR ch
Long long -1
FIN_MIENTRAS
FIN
a) Si ch tiene el valor X y numero el valor 5, cul sera el efecto de ejecutar cada una de las
siguientes llamadas al procedimiento?
Escr(ch,4*numero-12) Escr(ch,6) Escr(5,numero)
Escr(/,numero) Escr(.,6) Escr(p,-10)
b) Escribe llamadas al procedimiento Escr para que cuando se ejecuten produzcan las siguientes salidas:
35 guiones sucesivos
6 veces tantos espacios en blanco como el valor de numero
el valor actual de ch 14 veces
43) Ejecuta el siguiente algoritmo mostrando qu escribira en pantalla:
ALGORITMO uno
VARIABLES: a, b, c: ENTERO
INICIO
a 5
b 8
c 3
dos(a,b,c)
dos(7,a+b+c,a)
dos(a*b,a DIV b,c)
FIN
ALGORITMO dos(x, y: ENTERO, VAR z: ENTERO )
INICIO
z x+y+z
ESCRIBIR x, y, z
10
Fundamentos de Informtica. Relacin de Problemas
FIN
44) Dadas la siguientes declaraciones en un determinado algoritmo:
a, b, c : ENTERO
si: LOGICO
+ +
con lo cual este estudiante se clasifica cuarto en el curso de cinco asistentes.
PESOS
3 2 1
PUNTUACION
65 80 85
80 60 90
75 50 50
100 50 75
100 80 7
CLASIFICA
4
3
5
2
1
14
Fundamentos de Informtica. Relacin de Problemas
57) Dada una matriz A de tamao NxM (M y N nmeros mltiplos de 3) escribir un procedimiento que
obtenga otra matriz B de tamao (N/3xM/3) formada por la suma de todas las submatrices disjuntas de
orden 3x3 que se pueden formar en A.
58) Realizar un procedimiento que permita reestructurar un array a partir de un elemento dado segn el
siguiente ejemplo:
Array inicial: 3-20-8-40
Valor de reorganizacin: 8
Array final: 8-40-3-20
59) Una analista de imgenes desea trasvasar su imagen digitalizada (es decir, dada como una matriz
bidimensional de enteros entre 0 y 20) a una imagen en blanco y negro y visualizarla por pantalla.
Se considera que el punto identificado como el elemento (i,j) de la matriz es negro si la suma de
ese elemento junto con los cuatro circundantes de la matriz dividida entre 5 es mayor que 10 (en este caso
ese punto se transforma en 20, el valor correspondiente al negro).
Confeccionar un procedimiento que tome la imagen digitalizada inicial y que devuelva la imagen
en blanco y negro.
60) Dado el Tipo Abstracto de Datos Lista, realizar primitivas (procedimientos y/o funciones) capaces
de resolver los siguientes problemas:
a) Crear una lista.
b) Introducir un elemento al final de la lista.
c) Introducir un elemento al principio de la lista.
d) Eliminar un elemento del comienzo de la lista.
e) Eliminar el ultimo elemento de la lista.
f) Decir si la lista esta o no vaca.
g) Insertar un elemento en una lista ordenada, pera que siga estando ordenada.
h) Buscar un elemento en la lista y devolver la posicin que ocupa en dicha lista.
i) Eliminar el n-simo elemento de una lista.
j) Concatenar dos listas.
k) Realizar la copia de una lista.
l) Determinar si los elementos de una lista estn o no ordenados.
61) Realizar una serie de subprogramas capaces de tomar dos matrices cuadradas de dimensin N y
realizar:
a) Suma de matrices
b) Resta de matrices
c) Producto de matrices.
62) Realizar un subprograma que tome una matriz y construya su determinante.
15
Fundamentos de Informtica. Relacin de Problemas
63) Desarrollar un algoritmo para imprimir un calendario para un ao, dado el ao y da de la semana en
que cae el 1 de enero. Puede ayudarle a pensar en esta tarea como la de imprimir 12 calendarios, uno para
cada mes, dado el da de la semana en que comienza un mes y el nmero de das del mes. Cada mes
sucesivo comienza en el da de la semana que sigue al ltimo da del mes precedente. Hay que considerar
de forma especial los aos que son bisiestos.
64) Disear un algoritmo que integre numricamente la funcin X
3
en un rango especificado por el
usuario. En otras palabras, dado un par de nmeros reales, encontrar el rea bajo la grfica de X
3
entre
estos dos nmeros.
Para ello, se calcular una aproximacin a esta rea. Si se divide el rea bajo la curva en tiras
rectangulares delgadas, la suma de las reas de estos rectngulos (divisiones) ser aproximadamente igual
al rea existente bajo la curva. Mientras ms estrechos se hagan los rectngulos, ms precisa ser la
aproximacin. Se supondr que el usuario introduce los valores inferior y superior de la funcin, as como
el nmero de rectngulos en los cuales ha de subdividirse el rea.
65) Una compaa de venta de coches de segunda mano paga a su personal de ventas un salario de 50.000
pesetas, ms una comisin de 5.000 por cada automvil vendido, ms el 5% del valor de la venta. Cada
mes, el contador de la empresa prepara una lista para cada agente de ventas que contiene su nombre, el
nmero de vehculos vendidos y el valor de cada uno de stos. Disear un algoritmo para calcular e
imprimir el salario de un vendedor para un mes dado. Probar el algoritmo con datos de prueba.
66) La distancia del punto de cada de un proyectil que es lanzado con un ngulo Angulo (en radianes)
con una velocidad inicial de Velocidad (en pies por segundo), ignorando la resistencia del aire, viene dada
por la frmula
2 . 32
) 2 sen( Angulo Velocidad
Distancia
Escribir un algoritmo que realice un juego en el que el usuario introduce primero la distancia a
una diana. Luego el usuario introduce el ngulo y la velocidad de lanzamiento de un proyectil. Si el
proyectil cae dentro de un diez por ciento de la distancia a la diana, el usuario gana el juego. Si el
proyectil no se acerca lo suficiente, se le dice al usuario cunto se ha alejado el proyectil y se le permite
intentarlo de nuevo. Si despus de cinco intentos, no ha introducido ninguna entrada ganadora, entonces
el usuario pierde el juego.
Para simplificar las entradas del usuario, el programa debe permitir que el ngulo de la entrada se
d en grados. La frmula para convertir los grados en radianes es
Radianes = Cgrados * 3.14159265 / 180.0
Cada frmula de este problema se debe disear como una funcin.
67) Una lista de las tasas de cambio de moneda extranjera durante 1977 proporciona las siguientes
equivalencias:
100 francos franceses = 21.55 dlares canadienses
1 libra britnica = 1.84 dlares canadienses
100 dracmas griegas = 2.95 dlares canadienses
100 florines holandeses = 43.20 dlares canadienses
1 dlar norteamericano = 1.06 dlares canadienses.
Desarrollar algoritmos para realizar las siguientes conversiones:
16
Fundamentos de Informtica. Relacin de Problemas
a) Leer una cierta cantidad de francos franceses e imprimir el equivalente en libras
britnicas.
b) Leer una cantidad en dracmas griegas e imprimir el equivalente en libras britnicas.
c) Leer una cantidad en dlares canadienses e imprimir el equivalente tanto en dlares
norteamericanos como en florines holandeses.
d) Leer una cantidad en dlares norteamericanos e imprimir el equivalente tanto en
coronas suecas como en francos franceses.
68) Un sistema de ecuaciones lineales de la forma:
ax + by = c
dx + ey = f
puede resolverse utilizando las siguientes frmulas:
bd ae
cd af
y
bd ae
bf ce
x
Disear un algoritmo para leer los dos conjuntos de coeficientes (a, b y c, y d, e y f) e imprimir
los valores que son solucin para x e y. Existen algunos casos para los cuales este algoritmo no
funcione?.
69) El coste del seguro contra heladas y granizo en una localidad agrcola es el 3.5% del monto deseado
por acre, multiplicado por el nmero de acres sembrados. Suponiendo que las semillas por cosechar se
limitan a trigo, avena y cebada, disear un algoritmo que lea el monto cubierto y el nmero de acres
sembrados con cada una de las variedades, y que calcule el costo total de la pliza.
70) Aunque la velocidad de la luz permanece constante a pesar de las velocidades relativas de la fuente
luminosa y del observador, la frecuencia medida y la longitud de onda s cambian, efecto denominado
efecto Doppler. La longitud de onda emitida por la fuente que se mueve hacia el observador con
velocidad v parece comprimirse en , la cual est dada por la frmula:
c
v
, donde c es la velocidad
de la luz. Suponer que una aeronave viaja hacia una estacin de radio a una velocidad constante de 360
km/h (100.000 cm/s). Si la estacin de radio est emitiendo con una longitud de onda de 30 m, la
variacin de la longitud de onda debida al efecto Doppler es:
cm
s cm
cm s cm
c
v
3
10
10
/ 10 3
) 1000 3 ( ) / 10000 (
De esta forma, el piloto de esta aeronave debe ajustar su aparato receptor de 3000 cm menos 10
-3
cm, o sea, 2999.999 cm hasta que llegue a la estacin y, en seguida, ajustarlo a una longitud de onda de
3000.001 cm puesto que se aleja de la estacin transmisora. Disear un algoritmo para leer la longitud de
onda de la estacin transmisora y la velocidad de aproximacin de la nave. Finalmente, deber imprimir
la sintona real a la que se recibe la seal.
71) Disear un algoritmo que determine la longitud de la hipotenusa de un tringulo rectngulo dadas las
longitudes de los otros dos lados.
72) Cmo de alto es un arco iris? Debido a que el camino de la luz es refractado por de agua, el ngulo
entre el nivel de sus ojos y la cima de un arco iris es siempre el mismo. Si sabe la distancia al arco iris,
17
Fundamentos de Informtica. Relacin de Problemas
puede multiplicarla por la tangente de dicho ngulo para encontrar la altura del arco iris. El ngulo
mgico es 41.33333333 grados.
En algunas ocasiones ver durante un segundo, un arco iris dbil exterior a un arco iris luminoso.
Este arco iris secundario tiene de ngulo mgico 52.25 grados. Disear un algoritmo que a partir de la
distancia al arco iris, calcule la altura del arco iris principal y secundario.
73) Disear un algoritmo que lea tres nmeros enteros. Si el primero es negativo, imprimir el producto de
los tres. Si no, imprimir la suma de los tres.
74) Realizar un algoritmo que lea una temperatura en grados Centgrados, la transforme en grados
Fahreneit y escriba qu deporte es apropiado para esa temperatura, usando los siguientes criterios:
Deporte Temperatura
Natacin >85
Tenis 70 < temp 85
Golf 32 < temp 70
Esqu 10 < temp 32
Damas Chinas 10
75) El istopo radiactivo plutonio-235 tiene una vida media de 26 minutos. La vida media es el tiempo
que se necesita para que se degenere la mitad del istopo. Por tanto, despus de 26 minutos slo quedar
la mitad del istopo. Despus de otros 26 minutos, slo quedar la mitad de esa mitad, o un cuarto de la
cantidad original. Escribir un algoritmo que determine cunto tiempo (el tiempo de vida ms cercano)
necesita el plutonio-235 para degenerarse hasta que quede un porcentaje determinado. El porcentaje es un
valor real introducido por el usuario.
76) Qu escribir el siguiente bucle?
Numero 1
MIENTRAS Numero < 11 HACER
Numero Numero + 1
ESCRIBIR Numero
FIN_MIENTRAS
77) Cambiando simplemente el orden de las sentencias (sin cambiar cmo se ha escrito ninguna de ellas),
hacer que el bucle del ejercicio anterior escriba los nmeros del 1 al 10.
78) Realiza un algoritmo que calcule el m.c.d (mximo comn divisor) de dos nmeros empleando el
algoritmo de Euclides, el cual se puede describir as: dados dos enteros a y b, se divide a por b,
obteniendo el cociente q1 y el resto r1. Si r1 <> 0, se divide b por r1, obteniendo el cociente q2 y el resto r2.
Si r2 es tambin distinto de 0, el proceso se sigue repitiendo hasta que el resto sea cero. El m.c.d ser el
resto anterior.
18
Fundamentos de Informtica. Relacin de Problemas
79) Cuando se ejecuta el siguiente algoritmo, cuntas iteraciones del bucle se realizarn?
Numero 2
hecho falso
MIENTRAS NO hecho HACER
Numero Numero * 2
SI Numero > 64
ENTONCES hecho verdadero
FIN_MIENTRAS
80) Un equipo de ftbol ha tenido una buena campaa y desea premiar a sus jugadores con un aumento
del salario para la siguiente campaa. Los sueldos deben ajustarse de la siguiente forma:
Sueldo actual Aumento
0-1000000 20%
1000000-1300000 10%
1300000-2000000 5%
ms de 2000000 -
El equipo tiene un cuadro de 20 jugadores. Disear un algoritmo que lea el nombre del jugador y
su salario actual, y que a continuacin imprima el nombre, el sueldo actual y el sueldo aumentado. Al
final de la lista debe proporcionar, tambin, el monto total de la nmina actual y el monto total de la
nueva nmina que incluye los aumentos mencionados.
81) Ciertos estudiantes han presentado cinco calificaciones (A, B, C, D y E) y se requiere determinar,
para las estadsticas, el nmero de:
a) los que aprobaron todos los exmenes.
b) los que aprobaron A, B y C pero no D o E.
c) los que aprobaron A y B, C o D, pero no E
Disear un algoritmo apropiado.
82) Realiza un algoritmo que muestre en pantalla los k primeros primos. Vamos a hacer un diseo
modular y vamos a descomponer nuestro problema en un subalgoritmo que se encargue de decidir si el
nmero que le damos es o no primo, otro subalgoritmo que dado el nmero de primos que queremos (k),
nos devuelva los k primeros primos; el algoritmo principal se ocupar de leer los datos de entrada y de
devolvernos la salida.
83) Realizar un procedimiento que tenga como entradas una matriz bidimensional de enteros, sus
dimensiones (nmero de filas y de columnas) y un nmero entero , y como salida el nmero de veces que
el nmero aparece en la matriz.
84) Realizar una funcin que tenga como entradas un array de enteros (X) y el nmero de elementos que
tiene e implemente el clculo siguiente con ellos:
19
+
n
i
i
i
x
1
1
!
Fundamentos de Informtica. Relacin de Problemas
85) Cules son los contenidos de Suma y Numero al final del seguimiento del siguiente algoritmo?
ALGORITMO Pretexto
INICIO
n 0
i 1
indicador falso
MIENTRAS i <= n Y NO indicador HACER
LEER Numero
SI Numero > 0
ENTONCES Suma Suma + Numero
SI NO
SI Numero = 0
ENTONCES indicador True
FIN_SI
ii+1
FIN_SI
FIN_MIENTRAS
ESCRIBIR Fin de la prueba. , Suma, Numero
FIN
86) Escribir un fragmento de algoritmo que haga igual que el de abajo, pero utilizando ciclos REPETIR-
HASTA.
...
Cuenta 0
termino FALSO
MIENTRAS NOT termino HACER
LEER car
SI car=centinela
ENTONCES termino VERDAD
SI NO cuenta cuenta+1
FIN_SI
FIN_MIENTRAS
...
87) En un instituto cartogrfico, se clasifican los terrenos segn su altitud en:
Montaas: altura de ms de 500 metros.
Llanos: altura entre 101 y 500 metros.
Valles: altura entre 0 y 100 metros.
20
Fundamentos de Informtica. Relacin de Problemas
Para calcular altura de una determinada zona se considera dividida dicha zona en una cuadrcula
de 100 por 100 puntos, se mide la altitud de cada uno de los puntos y se haya la media.
Realizar un subalgoritmo al que se le de cmo entrada una tabla en la que se han almacenado la
altura de los puntos que representan un terreno y determine de qu tipo es el terreno, segn la
clasificacin por altura.
88) a) Disear una funcin a la que se le de cmo entrada dos parmetros y debe dar como salida el
resultado de elevar el primer parmetro al segundo (el primer argumento es la base y el segundo el
exponente).
b) Existen muchos mtodos capaces de proporcionar aproximaciones numricas de . Uno de ellos es
el siguiente:
Disea un algoritmo que lea el grado de aproximacin (nmero de trminos de la sumatoria) y
devuelva un valor aproximado de . Para realizar las potencias utilizar la funcin del apartado a.
89) Realizar un subalgoritmo que tenga como entrada un array de enteros positivos, del cual no se sabe
su longitud (ni se puede utilizar ninguna funcin para saberla), un valor que indica la marca de fin del
array. El subalgoritmo debe devolver como salida un array de tamao 3 que contenga los tres
elementos mayores del array de entrada. Qu tipo de subalgoritmo has utilizado? Por qu?
90) Completar los siguientes fragmentos de pseudocdigo para que hagan lo que se indica. Se supone que
el nmero de elementos del vector est almacenado en la variable N y que las nicas variables que se
pueden utilizar son las que aparecen en dicho fragmento:
a) Suma de los valores de un vector
suma
indice
MIENTRAS HACER
suma suma +v(indice)
FIN_MIENTRAS
b) Mayor valor de un vector
mayor
MIENTRAS HACER
SI
ENTONCES
v(indice)
FIN_SI
FIN_MIENTRAS
21
1
2
6
i
i
n
i
i x x
n
1
2
2
) (
1
1
,
_
nm n n
m
m
a a a
a a a
a a a
...
... ... ... ...
... ... ... ...
...
...
2 1
2 22 21
1 12 11
,
_
nm m m
n
n
a a a
a a a
a a a
...
... ... ... ...
... ... ... ...
...
...
2 1
2 22 12
1 21 11
,
_
3 9 7
9 2 4
7 4 1
Fundamentos de Informtica. Relacin de Problemas
108) Disear un algoritmo que calcule el tringulo de Pascal de coeficientes binomiales. Este tringulo
tiene la forma:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
... ... ... ... ... ...
donde, en general, cada elemento de un rengln se calcula realizando la suma de los dos
elementos situados en el rengln de ms arriba en una posicin a la izquierda y a la derecha.
Generar los 10 primeros renglones de este tringulo.
109) Disear un procedimiento al que se le de cmo entrada dos nmeros y devuelva el resto de la
divisin del primer argumento entre el segundo.
27