Anda di halaman 1dari 3

Ejercicios propuestos:

1. Diseñar el algoritmo que dado un número, indique si es par o es impar


2. Dado un número N, calcular la suma 1+2+3+...+N
3. Diseñar el algoritmo que encuentre (muestre) los números pares que hay entre el
100 y el 1000.
4. Diseñar el algoritmo que calcule la suma de los pares que hay entre dos números
dados.
5. Algoritmo que dados tres números los muestre ordenados de mayor a menor
6. Dada en una lista no ordenada de números y un número leido por teclado:
a. Diseñar una solución que busque en la lista el número leido. Si lo
encuentra, debe informar de su posición en la lista, sino debe devolver la
posición cero.
b. Modificar el anterior para que devuelva el numero de veces que aparece.
c. Diseñar una solución que busque el número mayor y devuelva cuantas
veces aparece.
d. Diseñar una solución que devuelva Verdadero si el número leido,
aparece más veces que el mayor.
e. Diseñar una solución que calcule la media de todos los numeros.
f. Diseñar una solución que calcule la media entre el mayor y el menor.
g. Diseñar una solución que cree una lista inversa a la dada. Es decir, que
genere una nueva lista tal que su primer elemento sea el último de la
lista inicial, su segundo elemento sea el penúltimo de la lista inicial, etc.,
etc., etc.

7. Diseñar un algoritmo que cuente el número de palabras de un texto y el tamaño


de la palabra más grande. Una palabra puede venir separada de otra únicamente
por un espacio.

8. Diseñar un algoritmo que coloque las fichas en un tablero de damas.

9. Algoritmo que indica si un año es bisiesto. Un año es bisiesto si es divisible por


cuatro, excepto cuando es divisible por 100, a no ser que sea divisible por 400.
Así, 1900 no fue bisiesto, pero 2000 sí lo fue.

10. Algoritmo que dados un mes y un año, muestra el número de días transcurridos
desde el 1 de Enero del año 0.

11. Escribir el algoritmo que devuelve el cambio de las máquinas de la cafetería. La


máquina solo devuelve monedas de 2, 1, 0.5, 0.2, 0.1 €.

12. En la asignatura de Matemáticas hay 50 alumnos matriculados, pero acaba de


llegar un alumno de intercambio que se incorporará a las clases en breve. El
listado de alumnos se encuentra ordenado alfabéticamente por apellido. Ahora
hay que incluir al nuevo alumno en la lista de clase.

Se pide hacer el diseño de datos, arquitectónico y procedimental del problema


propuesto, de tal forma que la solución propuesta sea la mejor para la mayoría
de los diferentes casos que se pueden dar.

1
13. Escriba un algoritmo que calcule la letra del NIF. Se pedirá el DNI y escribirá
por pantalla la letra correspondiente. Para calcularlo, se obtiene el resto de
dividir el número de DNI entre 23, y se utiliza la siguiente tabla.

RESTO LETRA 12 N
0 T 13 J
1 R 14 Z
2 W 15 S
3 A 16 Q
4 G 17 V
5 M 18 H
6 Y 19 L
7 F 20 C
8 P 21 K
9 D 22 E
10 X
11 B

14. Diseña un programa que sea capaz de dibujar con asteriscos tres formas
diferentes dependiendo de la entrada del usuario. Las formas son un rectángulo,
un triángulo rectángulo y un triángulo isósceles.
El usuario decidirá primero si quiere un rectángulo o un triángulo. Después
dependiendo de la elección pedirá ell ancho y alto del rectángulo o el tipo y alto
del triángulo.
No deben usarse listas ni arrays para almacenar nada.
Ejemplos:
[R]ectangle or [R]ectangle or [T]riangle? [R]ectangle or
[T]riangle? R T [T]riangle? T
Height? 8 [R]ight or [I]sosceles? [R]ight or [I]sosceles?
Width? 4 R I
**** Height? 7 Height? 5
**** * *
**** ** ***
**** *** *****
**** **** *******
**** ***** *********
**** ******
**** *******

15. Del mismo modo que en el ejercicio anterior, solo que ahora en lugar de *
deben aparecer números consecutivos, a partir de 1:
16. Dado un número entero, indicar el número de cifras de ese número ( para el
432 debe indicar 3)
17. Calcular los pagos mensuales de una hipoteca y el total a pagar. El programa
debe solicitar el capital, el interés anual y el número de años y debe escribir la
cuota a pagar mensualmente. Para calcular la cuota se utiliza la siguiente
fórmula: Sea C el capital del préstamo, R la tasa de interés mensual y N el
número de pagos. La cuota mensual viene dada por:

R ∗C
N
⎛ 1 ⎞
1− ⎜ ⎟
⎝1+ R ⎠

y el interés mensual será: interés anual / 100 /12

2
18. Cifrado de datos: dado un número de cuatro dígitos se reemplazará cada dígito
por (dígito +7)módulo 10. A continuación se intercambiará el primer dígito por el
tercero y el segundo por el cuarto, y ese será el número cifrado.

19. Descifrar un número cifrado con el algoritmo anterior.

20. Juego del Rojo-amarillo-verde. El programa genera tres dígitos aleatorios


distintos entre 0 y 9. A estos dígitos se les asignan las posiciones 1, 2 y 3. El
objetivo del juego es adivinar los dígitos así como sus posiciones correctas en
el menor número de intentos posibles. Para cada intento, el jugador
proporciona tres dígitos para las posiciones 1, 2, y 3. El programa responde
con una pista que consta de rojo, amarillo y verde. Si un dígito adivinado está
en la posición correcta la respuesta es verde. Si el digito adivinado está en
posición incorrecta, la respuesta es amarillo. Si el dígito para una posición dada
no coincide con ninguno de los tres dígitos, la respuesta es rojo.
Ejemplo: dígitos 6,5,8 en las posiciones 1,2,3

Intento Pista
1 2 5 rojo rojo Amarillo
8 5 3 Amarillo Verde Rojo
8 5 6 Amarillo Verde Amarillo
5 6 8 verde verde Verde

21. Dadas 3 listas de 10 números de teléfono, donde la primera lista contiene el


número de pasos consumidos en llamadas locales asociado a cada teléfono, la
segunda contiene información sobre llamadas nacionales y la tercera contiene
información sobre llamadas internacionales, calcular los subtotales del coste de
cada una de las categorías considerando los costes siguientes: llamada local, 5
pesetas por paso, llamada nacional 10 pesetas por paso y llamada internacional
50 pesetas por paso. Construir un programa que lee los datos de entrada desde el
teclado e imprima los resultados finales por pantalla.

22. En una bolera de 12 pistas se celebra una competición de bolos. En dicha


competición participan 4 jugadores por pista, y para cada uno de ellos se
almacena su nombre y la puntuación final de cada partida. Se pretende generar
un listado con la puntuación máxima de cada pista y al mismo tiempo el nombre
del jugador que la obtuvo. Además, se quiere obtener, a partir de ese listado,
cuál fue la puntuación máxima de la bolera.

Se pide hacer el diseño (datos, arquitectónico y procedimental) del problema


descrito.

Ayuda:
- Puede tratarse el grupo de jugadores de cada pista como si fuese una
lista, en la que en cada posición se guarda el nombre del jugador
y su puntuación.
- El listado de la puntuación máxima de cada pista puede hacerse
utilizando otra lista, que en cada posición guarde el nombre y
puntuación del jugador.

Anda mungkin juga menyukai