Skip to content

RA6 - CEa

< volver a actividades

Empaquetar actividades

Empaqueta las actividades, dentro de la carpeta ut04, en la carpeta actividades/6a.

Actividad 01 Estaturas

Escribir un programa que lea de teclado la estatura de 10 personas y las almacene en un array. Al finalizar la introducción de datos, se mostrarán al usuario los datos introducidos con el siguiente formato:

1
2
3
4
Persona 1: 1.85 m.
Persona 2: 1.53 m.
...
Persona 10: 1.23 m.

Actividad 02 Dados

El lanzamiento de un dado es un experimento aleatorio en el que cada número tiene las mismas probabilidades de salir. Según esto, cuantas más veces lancemos el dado, más se igualarán las veces que aparece cada uno de los 6 números. Vamos a hacer un programa para comprobarlo.

  • Generaremos un número aleatorio entre 1 y 6 un número determinado de veces (por ejemplo 100.000). Para ello puedes usar la clase Random.

  • Tras cada lanzamiento incrementaremos un contador correspondiente a la cifra que ha salido. Para ello crearemos un array veces de 7 componentes, en el que el veces[1] servirá para contar las veces que sale un 1, veces[2] para contar las veces que sale un 2, etc. veces[0] no se usará.

  • Cada, por ejemplo, 1.000 lanzamientos mostraremos por pantalla las estadísticas que indican que porcentaje de veces ha aparecido cada número en los lanzamientos hechos hasta ese momento. Por ejemplo:

Número de lanzamientos: 1000
1: 18 %
2: 14 %
3: 21 %
4: 10 %
5: 18 %
6: 19 %

Número de lanzamientos: 2000
...
  • Para el número de lanzamientos (100.000 en el ejemplo) y para la frecuencia con que se muestran las estadísticas (1.000 en el ejemplo) utilizaremos dos constantes enteras, de nombre LANZAMIENTOS y FRECUENCIA, de esta forma podremos variar de forma cómoda el modo en que probamos el programa.

Actividad 03 Invertir

Diseñar un método public static int[] invertirArray(int[] v), que dado un array v devuelva otro con los elementos en orden inverso. Es decir, el último en primera posición, el penúltimo en segunda, etc.

Desde el método main crearemos e inicializaremos un array, llamaremos a invertirArray y mostraremos el array invertido.

Puede ser útil un método que imprima por pantalla un Array public static void imprimirArray(int[] v), y así poder imprimir el Array inv.


Actividad 04 Rotaciones

Rotar una posición a la derecha los elementos de un array consiste en mover cada elemento del array una posición a la derecha. El último elemento pasa a la posición 0 del array. Por ejemplo si rotamos a la derecha el array {1,2,3,4} obtendríamos {4,1,2,3}.

  • Diseñar un método public static void rotarDerecha(int v[]), que dado un array de enteros rote sus elementos un posición a la derecha.

  • En el método main crearemos e inicializaremos un array y rotaremos sus elementos tantas veces como elementos tenga el array (mostrando cada vez su contenido), de forma que al final el array quedará en su estado original. Por ejemplo, si inicialmente el array contiene {7,3,4,2}, el programa mostrará

1
2
3
4
Rotación 1: 2 7 3 4
Rotación 2: 4 2 7 3
Rotación 3: 3 4 2 7
Rotación 4: 7 3 4 2
  • Diseña también un método para rotar a la izquierda y pruébalo de la misma forma.

Actividad 05 DosArrays

Desarrolla los siguientes métodos en los que intervienen dos arrays y pruébalos desde el método main

  • public static double[] sumaArraysIguales (double a[], double b[]) que dados dos arrays de double a y b, del mismo tamaño devuelva un array con la suma de los elementos de a y b, es decir, devolverá el array {a[0]+b[0], a[1]+b[1], ....}
  • public static double[] sumaArrays(double a[], double b[]). Repite el ejercicio anterior pero teniendo en cuenta que a y b podrían tener longitudes distintas. En tal caso el número de elementos del array resultante coincidirá con la longitud del array de mayor tamaño.

Actividad 06 Lluvias

( continuación ) Queremos incorporar al programa la siguiente información:

  • Cuál fue el primer día del mes en que llovió exactamente 19 litros (si no hubo ninguno mostrar un mensaje por pantalla indicándolo)
  • Cuál fue el último día del mes en que llovió exactamente 8 litros (si no hubo ninguno mostrar un mensaje por pantalla indicándolo)

​ Para ello desarrollarán los siguientes métodos:

  • public static int posPrimero(double[] v, double x), que devuelve la posición de la primera aparición de x en el array v. Si x no está en v el método devolverá -1. El método realizará una búsqueda ascendente para proporcionar el resultado.
  • public static int posUltimo(double[] v, double x), que devuelve la posición de la última aparición de x en el array v. Si x no está en v el método devolverá -1. El método realizará una búsqueda descendente para proporcionar el resultado.

Actividad 07 SumaPostImpar

Escribir un método que, dado un array de enteros, devuelva la suma de los elementos que aparecen tras el primer valor impar. Usar main para probar el método.


Actividad 08 MismosValores

Se desea comprobar si dos arrays de double contienen los mismos valores, aunque sea en orden distinto. Para ello se ha escrito el siguiente método, que aparece incompleto:

public static boolean mismosValores(double v1[], double v2[]) {
    boolean encontrado = false;
    int i = 0;
    while (i < v1.length && !encontrado) {
        boolean encontrado2 = false;
        int j = 0;
        while (j < v2.length && !encontrado2) {
            if (v1[?] == v2[?]) {
                encontrado2 = true;
                i++;
            } else {
                ?
            }
        }
        if (encontrado2 == ?) {
            encontrado = true;
        }
    }
    return !encontrado;
}

Completa el programa en los lugares donde aparece el símbolo ? .


Actividad 09 Notas

Se dispone de una matriz que contiene las notas de una serie de alumnos en una serie de asignaturas. Cada fila corresponde a un alumno, mientras que cada columna corresponde a una asignatura. Desarrollar métodos para:

  1. Imprimir las notas alumno por alumno.
  2. Imprimir las notas asignatura por asignatura.
  3. Imprimir la media de cada alumno.
  4. Imprimir la media de cada asignatura.
  5. Indicar cual es la asignatura más fácil, es decir la de mayor nota media.
  6. ¿Hay algún alumno que suspenda todas las asignaturas?
  7. ¿Hay alguna asignatura en la que suspendan todos los alumnos?

Generar la matriz (al menos 5x5) en el método main, rellenarla, y comprobar los métodos anteriores.


Actividad 10 Ventas

Una empresa comercializa 10 productos para lo cual tiene 5 distribuidores.

Los datos de ventas los tenemos almacenados en una matriz de 5 filas x 10 columnas, ventas, con el número de unidades de cada producto que ha vendido cada distribuidor. Cada fila corresponde a las ventas de un distribuidor (la primera fila, del primer distribuidor, etc.), mientras que cada columna corresponde a un producto :

100 25 33 89 23 90 87 6 5 233
28 765 65 77 987 55 4 66 4 8
...

El array precio, de 10 elementos, contiene el precio en de cada uno de los 10 productos.

125.2  |  234.4  |  453.9  | ...

Escribe el programa y los métodos necesarios para averiguar:

  1. Distribuidor que más artículos ha vendido.
  2. El artículo que más se vende.
  3. Sabiendo que los distribuidores que realizan ventas superiores a 30.000€ cobran una comisión del 5% de las ventas y los que superan los 70.000€ una comisión del 8%, emite un informe de los distribuidores que cobran comisión, indicando nº de distribuidor, importe de las ventas, porcentaje de comisión e importe de la comisión en €.

< volver a actividades