---
title: FPI Práctica 08 - ETSIT - URJC
---
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](http://www.urjc.es/universidad/facultades/escuela-tecnica-superior-de-ingenieria-de-las-telecomunicaciones)\
[Universidad Rey Juan Carlos](https://www.urjc.es)

# Práctica 8.1. Uso básico de un Array 

Escribe un programa en el fichero `~/fpi/practica08/tabla.pas` que:

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

2.  Guarde los resultados en un array.

3.  Muestre todos los valores almacenados en el array.

4.  Muestre todos los valores del array, en orden inverso.

5.  Calcule (y muestre) la suma y la media de los valores del array.

6.  Calcule (y muestre) el máximo y el mínimo de los valores del array.

7.  Muestre solamente los valores del array mayores o iguales que
    [*K* \* *valor*\_*maximo*]{.math .inline}, donde [*K*]{.math
    .inline} será un número real mayor que 0 y menor o igual que 1.

    Ejemplo: si [*K* = 0.9]{.math .inline} y el máximo es 1000, se
    mostrarán los valores mayores o iguales a 900.

8.  [*K*]{.math .inline} 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á.

# Práctica 8.2. Búsqueda de matriz aleatoria 

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
      

# Práctica 8.3. Valores únicos 

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:

-   Empieza escribiendo una función que indique si cierto número existe
    o no en la matriz. Pruébala por separado. Cuando parezca funcionar
    correctamente, escribe el procedimiento que, para cada posición,
    genere números hasta encontrar uno que sea nuevo en la matriz.

# Práctica OPTATIVA 8.4. Valores únicos, algoritmo mejorado 

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.

# Práctica 8.5. Sustitución de espacios 

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 (\_)

# Práctica 8.6. Repetición de letras 

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*

# Revisión de los nombres de los ficheros 

Ejecuta `~mortuno/revisa practicas fpi` para comprobar que los nombres
de los programas son los correctos.