Prácticas con bucles

Fundamentos de la programación y la informática
Grados en ingeniería aeroespacial, turno de tarde

Escuela de Ingeniería de Fuenlabrada
Universidad Rey Juan Carlos

2024-2025


Práctica 7.1. Bucle while 1

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.

Práctica 7.2. Bucle while 2

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.

Práctica 7.3. Bucle for

Escribe un programa en Pascal en un fichero llamado ~/fpi/practica07/for.pas según la siguiente especificación:

  1. Tendrá un procedimiento con dos parámetros de entrada: el año en que nació alguien y el año actual.

  2. 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.

  3. 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

Práctica 7.4. Bucle for (2)

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.

Práctica 7.5. Esperanza matemática

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.

Práctica 7.6. Tirada de dados

Escribe un programa en Pascal en un fichero llamado ~/fpi/practica07/tiradas.pas según la siguiente especificación:

  1. 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.

  2. 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
  3. 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: