Fundamentos de la programación y la informática
Grados en ingeniería aeroespacial, turno de tarde, 2020-2021
Escuela Técnica Superior de Ingeniería de Telecomunicación
Universidad Rey Juan Carlos
Escribe un programa en el fichero ~/fpi/practica08/tabla.pas que:
Genere N números reales aleatorios mayores o iguales que 0 y menores que Valor_maximo, donde N será una constante global y Valor_maximo será una constantes local del cuerpo del programa principal. Dale a estas constantes el valor que quieras.
Guarde los resultados en un array.
Muestre todos los valores almacenados en el array.
Muestre todos los valores del array, en orden inverso.
Calcule (y muestre) la suma y la media de los valores del array.
Calcule (y muestre) el máximo y el mínimo de los valores del array.
Muestre solamente los valores del array mayores o iguales que K * valor_maximo, donde K será un número real mayor que 0 y menor o igual que 1.
Ejemplo: si K = 0.9 y el máximo es 1000, se mostrarán los valores mayores o iguales a 900.
K será una constante local del cuerpo del programa principal. Si no se cumple la precondición de ser mayor que 0 y menor o igual a 1, el programa mostrará un mensaje y finalizará.
Escribe un programa en el fichero ~/fpi/practica08/busca_matriz.pas que:
Genere matrices de números enteros, donde cada elemento sea el resultado de tirar un dado. El número de caras del dado está fijado en una constante en el cuerpo del programa principal.
Genere todas las matrices necesarias hasta conseguir una tal que la media aritmética de sus valores coincida con la esperanza matemática del dado empleado.
Una vez encontrada, el programa indicará cuantos intentos fueron necesarios.
Por ejemplo, una ejecución podría ser algo similar a esto:
Esperanza matemática de un dado de 6 caras: 3.50
Buscando una matriz de 2x3 cuyo valor promedio coincida con la esperaza matemática
6 4 5
4 2 4
Media obtenida: 4.17
4 4 4
6 2 2
Media obtenida: 3.67
4 4 4
1 3 3
Media obtenida: 3.17
6 3 2
2 2 1
Media obtenida: 2.67
1 6 4
3 3 5
Media obtenida: 3.67
5 3 2
3 2 4
Media obtenida: 3.17
5 3 1
4 2 6
Media obtenida: 3.50
Conseguido en 7 intentos
Escribe un programa en el fichero ~/fpi/practica08/unicos.pas que rellene una matriz con valores aleatorios de un dado, de forma que no haya ningún valor repetido. El programa comprobará la precondición de que el número de caras sea mayor o igual que el número de elementos en la matriz, y mostrará un error o hará el cálculo, según corresponda.
Una forma muy sencilla de resolver el problema es:
Inicialmente rellenar la matriz con valores vacíos (En este caso, cero, que es un valor imposible para un dado).
Para cada posición, tirar un dado las veces necesarias hasta que salga un valor que no esté en ninguna posición de la matriz.
Aclaración adicional:
Si deseas mejorar tu nota, escribe un programa en el fichero ~/fpi/practica08/unicos2.pas que resuelva el problema del programa anterior con un algoritmo más eficiente: Cada vez que lance un dado, en vez de comprobar si existe el valor en cualquier posición de la matriz, haz que sea buscado solamente en las posiciones que ya están rellenas. Observa que en este caso no hace falta iniciar la matriz a cero.
Escribe un programa llamado ~/fpi/practica08/quitaespacios.pas que tenga una función que reciba una cadena, y que devuelva esa misma cadena, pero reemplazando los espacios por barras bajas (_)
Escribe un programa llamado ~/fpi/practica08/repiteletras.pas que tenga una función que
Reciba una cadena y un numero entero n.
Devuelta otra cadena, con el mismo contenido, pero repitiendo cada letra n veces.
Ejemplo, si recibe hola mundo y 3, debe devolver hhhooolllaaa mmmuuunnndddooo
Ejecuta ~mortuno/revisa practicas fpi para comprobar que los nombres de los programas son los correctos.