Crea un programa que permita realizar "DE FORMA MODULAR (acciones y / o funciones)" las siguientes tareas:
a) Iniciar un array de n posiciones con valores numéricos enteros entre 1 y 100.
b) Visualizar el array por pantalla adecuadamente presentado. Por ejemplo:
1 3 5 6 10 15 20
67 66 66 4 12 10 20
5 1 2 7 ***
c) Borrar todo el array. Pone en todas sus posiciones un 0.
d) Presentar estadísticas. Visualiza por pantalla la frecuencia de aparición de los números ordenados de mayor a menor. No aparecen los que no existen dentro del array.
56 (15 veces) ***************
45 (10 veces) **********
15 (10 veces) **********
6 (4 veces) ****
5 (2 veces) **
e) Calcular la media de los elementos del array con dos decimales.
f) Invertir el array
g) Ordenar el array mediante los métodos de Bubblesort, Inserción y Quicksort. No modificar el contenido del vector original.
Ampliación -> medir el tiempo.Por ejemplo:
Método de la burbuja: 1 seg 110 milésimas
Método de inserción: 1 seg 9 milésimas
Método de Quicksort: 587 milésimas
menú
a) Inicializar
b) Visualizar
c) Borrar
d) Estadísticas
e) Media
f) Invertir
g) Ordenar
- import cs1.*;
- import java.text.SimpleDateFormat;
- import java.text.DateFormat;
- import java.util.Date;
- import java.text.DecimalFormat;
- import java.io.*;
- import java.util.*;
- import java.lang.Math.*;
- public class ex1 {
- public static void Inicialitzar(int vec[], int limit){
- int index;
- for (index = 0; index < limit; index++) // Posem valors a l'array (vector)
- vec[index] = (int)Math.round((Math.random()*100));
- }
- public static void Visualitzar(int arr[], int LIMIT){
- int index,len;
- int salt=0;
- String len1;
- for (index = 0; index < LIMIT; index++){ // Visualitza el contingut de cada casella
- len = arr[index];
- len1=Integer.toString(len);
- len = len1.length();
- if(len==1){
- System.out.print (" "+arr[index] + " ");
- }
- else{
- System.out.print (arr[index] + " ");
- }
- salt++;
- if(salt==6){
- salt=0;
- System.out.println("\n");
- }
- }
- salt= 6-salt;
- for(int x=0; x<salt; x++){
- System.out.print(" * ");
- }
- }
- public static void esborrar(int arr[], int limit){
- int index;
- for(index=0;limit>index;index++){
- arr[index] = 0;
- }
- }
- public static void Estadistiques(int arr[]){
- }
- public static void Mitjana(int arr[]){
- int index, suma=0;
- double mitjana;
- for(index=0;arr.length>index;index++){
- suma = suma + arr[index];
- }
- mitjana = arr.length;
- mitjana = suma/mitjana;
- DecimalFormat harry = new DecimalFormat("0.00");
- System.out.println("La mitjana és: "+harry.format(mitjana));
- }
- public static void Invertir(int arr[]){
- int invertir_int[] = new int[arr.length];
- int maximo = arr.length;
- int i,len,salt=0;
- String len1;
- for (i = 0; i<arr.length; i++) {
- invertir_int[maximo - 1] = arr[i];
- maximo--;
- }
- for(i =0; i<invertir_int.length; i++) {
- len = invertir_int[i];
- len1=Integer.toString(len);
- len = len1.length();
- if(len==1){
- System.out.print (" "+invertir_int[i] + " ");
- }
- else{
- System.out.print (invertir_int[i] + " ");
- }
- salt++;
- if(salt==6){
- salt=0;
- System.out.println("\n");
- }
- }
- salt= 6-salt;
- for(int x=0; x<salt; x++){
- System.out.print(" * ");
- }
- }
- public static void Ordenar_bombolla(int arr[]){
- int aux;
- for(int i = 0; i < arr.length; i++){
- for (int j = i + 1; j < arr.length; j++){
- if(arr[j]< arr[i]){
- aux = arr[i];
- arr[i] = arr[j];
- arr[j] = aux;
- }
- }
- }
- int index,len;
- int salt=0;
- String len1;
- for (index = 0; index < arr.length; index++){ // Visualitza el contingut de cada casella
- len = arr[index];
- len1=Integer.toString(len);
- len = len1.length();
- if(len==1){
- System.out.print (" "+arr[index] + " ");
- }
- else{
- System.out.print (arr[index] + " ");
- }
- salt++;
- if(salt==6){
- salt=0;
- System.out.println("\n");
- }
- }
- salt= 6-salt;
- for(int x=0; x<salt; x++){
- System.out.print(" * ");
- }
- }
- public static void ordenar_insercio(int arr[]){
- for (int i=1; i < arr.length; i++){
- int harry = arr[i];
- int j;
- for (j=i-1;j >= 0 && arr[j] > harry;j--){
- arr[j + 1] = arr[j];
- }
- arr[j+1] = harry;
- }
- }
- public static void ordena_Quicksort(int arr[]){
- }
- public static void main(String args[]){
- String opcio;
- int limit;
- System.out.print("Introdueix el limit del array: ");
- limit = Keyboard.readInt();
- int vec[]= new int[limit];
- do{
- System.out.println("\n\nMenú");
- System.out.println("\na) Inicialitzar");
- System.out.println("b) Visualitzar");
- System.out.println("c) Esborrar");
- System.out.println("d) Estadístiques");
- System.out.println("e) Mitjana");
- System.out.println("f) Invertir");
- System.out.println("g) Ordenar");
- System.out.println("h) Sortir");
- System.out.println("Escull una opció: ");
- opcio = Keyboard.readString();
- opcio = opcio.toUpperCase();
- System.out.println();
- if(opcio.equals("A")){
- Inicialitzar(vec,limit);
- }
- if(opcio.equals("B")){
- Visualitzar(vec,limit);
- }
- if(opcio.equals("C")){
- esborrar(vec,limit);
- }
- if(opcio.equals("D")){
- }
- if(opcio.equals("E")){
- Mitjana(vec);
- }
- if(opcio.equals("F")){
- Invertir(vec);
- }
- if(opcio.equals("G")){
- String met;
- System.out.println("Amb quin mètode vols ordenar: ");
- System.out.println("a) Bombolla.");
- System.out.println("b) Inserció.");
- System.out.println("c) Quicksort.");
- System.out.print(" Escull una opció: ");
- met = Keyboard.readString();
- met = met.toUpperCase();
- if(met.equals("A")){
- System.out.println("Has escollit el Mètode de la bombolla: ");
- Ordenar_bombolla(vec);
- }
- else if(met.equals("B")){
- ordenar_insercio(vec);
- }
- else if(met.equals("C")){
- }
- else{
- System.out.println("Opció no vàlida.");
- }
- }
- }while(!opcio.equals("H"));
- }
- }
No hay comentarios:
Publicar un comentario