Repaso - Ejercicios (2)

Estos ejercicios de repaso corresponden a todo lo explicado anteriormente. En el apéndice Libro de estilo puedes consultar cómo deben llamarse los ficheros, dónde guardarlos, etc.

Repaso (2) - 1

Escriba un programa que calcule la letra del DNI a partir del número. La letra se obtiene calculando el resto de la división del número del DNI por 23. A cada resultado le corresponde una letra: 0=T; 1=R; 2=W; 3=A; 4=G; 5=M; 6=Y; 7=F; 8=P; 9=D; 10=X; 11=B; 12=N; 13=J; 14=Z; 15=S; 16=Q; 17=V; 18=H; 19=L; 20=C; 21=K; 22=E.

Dígame su DNI (sin letra): 31415926
Su DNI (con letra) es: 31415926L

Repaso (2) - 2

Escriba un programa que convierta números inferiores a 5000 escritos con cifras árabes en números escritos con números romanos. El valor de los diferentes números romanos es el siguiente: I=1, V=5, X=10, L=50, C=100, D=500, M=1000. Para hacer más fácil el ejercicio, puede utilizar la notación romana antigua, en que podía haber hasta cuatro símbolos iguales seguidos.

Dígame un número: 3799
En números romanos, 3799 se escribe MMMDCCLXXXXVIIII

Repaso (2) - 3

Escriba un programa que calcule en qué día y mes cae el Domingo de Pascua. Para calcularlo, utilice el método de Butcher (publicado en 1876), que se muestra a continuación aplicándolo al año 2002.

Operación Cociente Resto
1. Divida el año por 19 a = 7
2. Divida el año por 100 b = 20 c = 2
3. Divida b por 4 d = 5 e = 0
4. Divida (b+8) por 25 f = 1
5. Divida (b+f+1) por 3 g = 6
6. Divida (19a+b-d-g+15) por 30 h = 7
7. Divida c por 4 i = 0 j = 2
8. Divida (32+2e+2i-h-j) por 7 k = 2
9. Divida (a+11h+22k) por 451 m = 0
10. Divida (h+k-7m+114) por 31 n = 3 p = 30

El mes y día se calculan a partir de n y p. Si n es 3, el Domingo de Pascua cae en marzo, y si n es 4, cae en abril. El número del día es p+1. Por tanto en el año 2002, el Domingo de Pascua fue el 31 de marzo.

Dígame un año: 2003
El Domingo de Pascua del año 2003 fue/es/será el 20 de abril.

Repaso (2) - 4

Escriba un programa que pida dos años y calcule el número de años bisiestos que hay entre esos dos años (incluyendo los dos años) y el número de días total entre esos dos años (incluyendo los dos años). Para saber cuando un año es bisiesto, consulte el ejercicio if ... elif ... else ... 6.

Dígame un año: 1800
Dígame otro año: 1900
Entre 1800 y 1900 (ambos incluidos) hubo/hay/habrá 24 años bisiestos y en total 36889 días.
Dígame un año: 1900
Dígame otro año: 2000
Entre 1800 y 1900 (ambos incluidos) hubo/hay/habrá 25 años bisiestos y en total 36890 días.

Repaso (2) - 5

Escriba un programa que permita jugar a una versión simplificada del juego Master Mind. El juego consistirá en adivinar una cadena de números distintos. Al principio, el programa debe pedir la longitud de la cadena (de 2 a 9 cifras). Después el programa debe ir pidiendo que intente adivinar la cadena de números. En cada intento, el programa informará de cuántos números han sido acertados (el programa considerará que se ha acertado un número si coincide el valor y la posición).

Dígame la longitud de la cadena: 4
Intente adivinar la cadena: 1234
Con 1234 ha adivinado 1 valores. Intente adivinar la cadena: 1243
Con 1243 ha adivinado 0 valores. Intente adivinar la cadena: 1432
Con 1432 ha adivinado 2 valores. Intente adivinar la cadena: 2431
Con 2431 ha adivinado 4 valores. Felicidades

Repaso (2) - 6

Escriba un programa que sea capaz de jugar al Master Mind con las reglas del ejercicio anterior. Al principio, el programa debe pedir la longitud de la cadena (de 2 a 9 cifras). Después, el programa debe ir intentando adivinar la cadena de números.

Dígame la longitud de la cadena: 4
Piense una cadena de 4 cifras distintas.
¿Es 2431? Dígame cuántas cifras he acertado: 1
¿Es 1324? Dígame cuántas cifras he acertado: 2
¿Es 4321? Dígame cuántas cifras he acertado: 0
¿Es 1234? Dígame cuántas cifras he acertado: 4
Gracias por jugar conmigo.