Ejercicios
de los Temas 1, 2 y 3
Técnicas
de Programación
- Elaborar un algoritmo que lea una hora expresada en segundos transcurridos
desde las 12 de la noche y la convierta en horas, minutos y segundos.
Describir el algoritmo en diagrama de flujo y seudocódigo.
- Elaborar un algoritmo para determinar si una hora leída en
la forma horas, minutos y segundos está correctamente expresada.
- Elaborar un algoritmo que lea dos valores y los escriba en orden.
- Elaborar un algoritmo para imprimir una tabla de tres columnas y
N filas con los cuadrados y los cubos de los N primeros números.
- Se quiere repartir caramelos a cuatro niños. Estos caramelos
son de tres colores diferentes: rojo, verde y azul, y se encuentran
en una bolsa opaca. Con el fin de evitar cualquier disputa, se quiere
dar a cada niño el mismo número de caramelos de cada color.
Para ello, se preparan tres cajas de colores. Elaborar el algoritmo
que resuelva el problema del llenado de las cajas y la distribución
de los caramelos.
- Supongamos que al principio la bolsa contiene al menos cuatro
caramelos de cada color.
- ¿Qué sucede si se elimina la hipótesis del
apartado anterior?
- Se definen los números triangulares como los obtenidos de
sumar los números naturales sucesivos 1, 2, 3, ...; es decir,
los primeros números triangulares son 1, 3, 6, 10, .... Elaborar
un algoritmo para imprimir el N-ésimo número triangular.
Describir el algoritmo mediante diagrama de flujo y seudocódigo.
- Diseñar un algoritmo para imprimir los números impares
positivos menores que n.
- Deducir los resultados que se obtienen del siguiente algoritmo:
algoritmo ejercicio
variables x,y,z : entero
inicio
escribir x,y
escribir z
fin
- Sean x e y dos variables numéricas enteras. El valor inicial
de y es superior o igual a 1. Se considera el módulo M cuya descripción
es la siguiente :
modulo M
parametros_entrada x,y : entero
parametros_salida p : entero
inicio
repetir
hasta_que y=0
fin
Describir con palabras lo que calcula el módulo M.
- (Examen curso 96/97) Escribir en pseudocódigo el algoritmo
que resuelva el problema de escribir en pantalla todos los números
positivos múltiplos de un valor positivo que se pide por teclado.
Nota: Este enunciado se debe interpretar de forma literal.
- Supongamos que se debe realizar la agrupación de un documento
de 10 páginas que ha sido enviado a un servicio de reprografía.
Para cada una de las páginas del documento, el servicio de reprografía
ha fotocopiado alrededor de un centenar de ejemplares idénticos,
la incertidumbre en el número se debe a que la máquina
fotocopiadora funciona defectuosamente. Se han situado 10 mesas, numeradas
del 1 al 10, y en cada mesa se encuentra el bloque de fotocopias correspondientes
a la página del mismo número. Elaborar un algoritmo para
realizar el trabajo, suponiendo que el individuo que ha de realizarlo
es capaz de las siguientes funciones:
- Coger y depositar una hoja o paquete
- Desplazarse a una mesa según su número
- Desplazarse a la siguiente mesa
- Detectar la presencia o ausencia de hojas sobre una mesa
- Grapar el bloque de hojas que transporta
- Reconocer la estructura repetir...
- Supongamos que, en un procesador dado, no se pueden calcular restas,
pero sí sumas. Tampoco se pueden representar números negativos.
Elaborar un algoritmo para calcular M - N , donde M y N son números
enteros positivos.
- Elaborar un algoritmo para calcular el valor de la siguiente expresión:
N |
Valor de la expresión |
0 |
2 |
1 |
8 |
2 |
512 |
- Sabiendo que el día 1 de enero de 1.583 fue sábado
y que desde entonces no se han producido modificaciones en el calendario,
elaborar un algoritmo para calcular el día de la semana en que
cayó o caerá una fecha cualquiera posterior al 1 de enero
de 1.583. Nota: Un año se considera bisiesto cuando es divisible
por 400 o bien es divisible por 4 pero no por 100.
- Diseñar un algoritmo que, dados 10 números enteros,
indique cuantos de ellos son números pares, nos muestre estos y
calcule la media aritmética de los impares.
- Diseñar un algoritmo para resolver una ecuación de
segundo grado.
- Diseñar un algoritmo que calcule el precio de un billete de
ida y vuelta por avión, conociendo la distancia a recorrer, el
número de días de estancia y sabiendo que si la distancia
es superior a 1.000 Km. y el número de días de estancia
es superior a 7, la línea aérea le hace un descuento del
30 %. (Precio por kilómetro = 8,50 ptas.).
- (Examen curso 86/87) Considérense las tres soluciones al problema
"Pelar un número suficiente de patatas que hay en un cesto",
teniendo en cuenta que el cesto puede estar vacío en un momento
dado.
algoritmo pelar1
inicio
mientras número insuficiente
de patatas peladas
si cesto
no vacío
entonces
pelar una patata
fin_si
fin_mientras
fin
algoritmo pelar2
inicio
mientras (número insuficiente
de patatas peladas) o (cesto no vacío)
pelar una patata
fin_mientras
fin
algoritmo pelar3
inicio
si cesto no vacío
entonces
mientras
número insuficiente de patatas peladas
pelar
una patata
fin_mientras
si_no comprar una patata
fin_si
fin
¿Cómo se comportan frente a las siguientes situaciones?:
- El cesto está inicialmente vacío.
- Se necesitan más patatas de las que hay inicialmente en
el cesto.
- Se necesitan menos patatas de las que hay inicialmente en el
cesto.
¿Se te ocurre una solución mejor?
Algunos
problemas con truco
- Un pastor con un lobo, una oveja y una paca de hierba tiene que
cruzar el río, para lo cual dispone únicamente de una
pequeña barca en la que sólo caben el pastor y uno de
sus tres acompañantes. ¿Cómo se las arreglará
el pastor para llevar a la otra orilla a sus tres acompañantes,
teniendo en cuenta que no puede dejar solos ni al lobo con la oveja,
ni a la oveja con la paca de hierba?
- Una persona va a una fuente con dos cubos de capacidad 4 y 9 litros,
respectivamente. ¿Qué deberá hacer para conseguir
llevarse 3 litros exactamente?
- Describir los pasos necesarios para realizar el siguiente traslado:
Un grupo de 34 soldados debe cruzar un río y sólo disponen
de un botecito, perteneciente a dos niños. El bote es tan pequeño
que únicamente caben los dos niños o sólo un soldado.
- Hace poco, asistimos mi esposa y yo a una fiesta en la que había
otros 4 matrimonios. Hubo al saludarnos cierto número de apretones
de mano. Nadie se dio la mano a sí mismo ni a su cónyuge,
ni dio la mano a la misma persona más de una vez. Terminados
los saludos, pregunté a cada una de las personas, incluida mi
esposa, cuántas manos había estrechado. Las respuestas
fueron todas diferentes. ¿Cuántas manos estrecho mi mujer?
- Determinar la veracidad o falsedad de los cinco enunciados siguientes:
- Exactamente uno de los enunciados de esta lista es falso.
- Exactamente dos de los enunciados de esta lista son falsos.
- Exactamente tres de los enunciados de esta lista son falsos.
- Exactamente cuatro de los enunciados de esta lista son falsos.
- Exactamente cinco de los enunciados de esta lista son falsos.