Fundamentos de la programación y la informática
Grados en ingeniería aeroespacial, turno de tarde
2024-2025
Escribe un programa en el fichero ~/fpi/practica08/tabla.pas
que haga lo indicado a continuación.
Tendrá una función que devuelva una tabla. La tabla estará formada por N
números reales que habrán sido generados aleatoriamente, 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.
Tendrá un procedimiento que recibirá una tabla como la creada en el apartado anterior, y muestre todos los valores almacenados en el array, en orden.
Tendrá un procedimiento como el anterior, pero que muestre los valores en orden inverso.
Tendrá una función que reciba una tabla y devuelva la suma de sus valores.
Tendrá una función que reciba una tabla y devuelva la media de sus valores. Esta función usará la función anterior.
Tendrá procedimientos que llamen a estas dos funciones y escriban el resultado, para probarlo todo.
Calculará (y mostrará) el máximo y el mínimo de los valores del array.
Tendrá un procedimiento que 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 951, se mostrarán los valores mayores o iguales a 855.9.
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/cambia_tabla.pas
que haga lo indicado a continuación:
Tendrá una función que devuelva una tabla de N (constante global) números enteros aleatorios entre 1 y 100.
Tendrá una función que calcule la media de una tabla de enteros.
Tendrá un procedimiento llamado elimina_peores que recibirá un tabla de enteros y la modificará de forma que los valores que sean (estrictamente) menores que la media pasarán a ser 0. Este procedimiento tendrá un único parámetro, una tabla. Será un parámetro de entrada y de salida: el procedimiento recibirá aquí la tabla, la modificará y la modificación afectará al resto del programa.
Tendrá un procedimiento para mostrar el contenido de la tabla.
Mostrará la tabla antes de modificar, indicará el valor medio y mostrará la tabla después de ser modificada.
Escribe un programa en el fichero ~/fpi/practica08/matriz.pas
que:
El programa trabajará con una matriz del tamaño que prefieras, pero que no sea cuadrada. Y que tampoco sea muy grande (porque multiplicaremos todos sus valores, si son muchos, el resultado desbordará la capacidad de un número entero longint).
El programa comprobará la precondición de que la matriz no sea cuadrada. Si la precondición se incumple, el programa hará lo que creas adecuado.
Genere una matriz de números reales aleatorios. Cada número será un valor comprendido entre -Max y Max, extremos excluidos. Por ejemplo, si Max vale 5, cada número será estrictamente mayor que -5 y estrictamente menor que 5.
Escriba la matriz en pantalla, con dos decimales.
Escriba en pantalla la matriz formada por los valores absolutos de la matriz. Con dos decimales.
Muestre el producto total de todos los valores.
Muestre el producto de cada fila.
Muestre el producto de cada columna.
Observaciones
Naturalmente, cada apartado deberá estar realizado en uno (o más) subprogramas.
El programa trabajará siempre con la misma matriz, no genererá una nueva para cada apartado.
Escribe un programa llamado ~/fpi/practica08/maximos_matriz.pas
que calcule un vector con los máximos de una matriz, por columnas. (Muy similar al ejemplo del tema 8). Pero el subprograma que calcula el máximo de una columna ha de ser un procedimiento, no una función. Como sabes, esto significa que el vector devuelto será un parámetro de salida del procedimiento.