Fundamentos de la programación y la
informática
Grados en ingeniería aeroespacial, turno de tarde
2024-2025
Escribe un programa en un fichero llamado
~/fpi/practica07/mientras01.pas
que, usando la sentencia
while, vaya generando números reales aleatorios entre 0
(incluido) y 1 (excluido), y mostrándolos en pantalla. Este proceso se
repetirá mientras el número obtenido sea estrictamente menor que una
constante (local) llamada Objetivo. Dale por ejemplo el valor
0.9. (En otras palabras: se detendrá cuando el númer obtenido sea mayor
o igual que esta constante). Al finalizar, el programa indicará el
número de números que ha sido necesario generar hasta conseguir un valor
mayor o igual que la constante.
Escribe un programa en un fichero llamado
~/fpi/practica07/mientras02.pas
que, usando while,
vaya lanzando dados y sumando el total de puntos acumulados. El
programa seguirá lanzando y sumando mientras la suma de puntos sea
inferior a la constante Objetivo. El número de caras del dado
será la constante CarasDado. Ambas constante serán locales al
cuerpo del programa principal, dales el valor que prefieras.
Observa que si los puntos acumulados están por debajo del objetivo, pero cerca, tendrás que lanzar un último dado. Que puede provocar que te pases y excedas el objetivo. Es normal, es lo que pide el enunciado. Piensa en el juego de las siete y media.
Escribe un programa en Pascal en un fichero llamado
~/fpi/practica07/for.pas
según la siguiente
especificación:
Tendrá un procedimiento con dos parámetros de entrada: el año en que nació alguien y el año actual.
Mostrará en pantalla todos los años desde el de nacimiento (excluido) hasta el actual (incluido), indicando qué edad cumple esa persona ese año.
Para probar el procedimiento, dale valor a los parámetros con variables del cuerpo del programa principal. No lo leas desde teclado.
Ejemplo: para la entrada 2018, 2024, la salida será:
En 2019 cumple 1
En 2020 cumple 2
En 2021 cumple 3
En 2022 cumple 4
En 2023 cumple 5
En 2024 cumple 6
Escribe un programa en Pascal en un fichero llamado
~/fpi/practica07/for2.pas
que genere lo mismo que el
programa anterior, pero con un bucle diferente. Si en el ejemplo
anterior la variable de control era el año, ahora debe ser la edad. Si
en el ejemplo anterior la variable de control era la edad, ahora debe
ser el año.
Todo lo demás será idéntico: variables locales del cuerpo principal, un procedimiento que reciba año de nacimiento y año actual, etc.
Escribe un programa en Pascal en un fichero llamado
~/fpi/practica07/esperanza.pas
que tenga una función
llamada esperanza_matematica que reciba el número de caras de
un dado y devuelva la esperanza
matemática de ese dado. La función hará este cálculo usando un
bucle. Sería más sencillo calcularlo mediante la fórmula
correspondiente, pero lo que nos interesa ahora es ejercitarnos con el
uso de bucles.
Para probarlo, llama a esta función desde el cuerpo del programa principal, pasando diferentes valores.
Escribe un programa en Pascal en un fichero llamado
~/fpi/practica07/tiradas.pas
según la siguiente
especificación:
El programa hará tiradas de n dados, donde n será una variable definida en el cuerpo del programa principal. El número de caras del dado estará determinado por la variable caras_dado, también en el cuerpo del programa principal.
El programa mostrará, para cada tirada, el valor de cada dado y la suma de todos los dados
Ejemplo de tirada de 4 dados de 6 caras:
6 1 2 2 Suma: 11
El programa hará todas las tiradas necesarias hasta obtener una tirada buena. Definimos tirada buena como aquella cuya puntuación esté por encima de la esperanza matemática de esos dados. Ejemplo: Para 4 dados de 6 caras, la esperanza matemática es de 4 * 3.5 = 14
Ejemplo de ejecución:
Esperanza matemática de 4 dados de 6 caras: 14.00
2 1 1 6 Suma: 10
6 3 2 3 Suma: 14
Esperanza matemática de 3 dados de 12 caras: 19.50
5 10 10 Suma: 25
Esperanza matemática de 5 dados de 20 caras: 52.50
10 2 4 10 15 Suma: 41
4 10 14 9 12 Suma: 49
10 2 18 1 10 Suma: 41
3 1 13 15 20 Suma: 52
12 14 11 7 17 Suma: 61
Instrucciones adicionales:
Copia la función esperanza_matematica que escribiste en la práctica anterior.
Escribe un procedimiento llamado tirada que, reciba los parámetros necesarios, escriba la tirada y devuelva la suma (en un parámetro de salida).
Cuando te funcione correctamente, escribe un procedimiento llamado serie_tiradas que reciba los parámetros necesarios, escriba la esperanza de los dados y haga todas las tiradas necesaria hasta obtener el objetivo buscado. Observa que en el ejemplo anterior, hay 3 series.
Cuando te funcione correctamente, llama, en el cuerpo del programa principal, varias veces a serie_tiradas, con distintos parámetros. Al menos 3 veces.