RA6 - CEa¶
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:
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
vecesde 7 componentes, en el que elveces[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:
- 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
LANZAMIENTOSyFRECUENCIA, 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 Arrayinv.
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
maincrearemos 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á
- 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 dedoubleayb, del mismo tamaño devuelva un array con la suma de los elementos deayb, 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 queaybpodrí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 dexen el arrayv. Sixno está envel 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 dexen el arrayv. Sixno está envel 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:
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:
- Imprimir las notas alumno por alumno.
- Imprimir las notas asignatura por asignatura.
- Imprimir la media de cada alumno.
- Imprimir la media de cada asignatura.
- Indicar cual es la asignatura más fácil, es decir la de mayor nota media.
- ¿Hay algún alumno que suspenda todas las asignaturas?
- ¿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.
Escribe el programa y los métodos necesarios para averiguar:
- Distribuidor que más artículos ha vendido.
- El artículo que más se vende.
- 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 €.