Advertisement
Cabana_Mario_Ariel_F

TP01E1_Definitivo

Sep 14th, 2020 (edited)
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.53 KB | None | 0 0
  1. /*
  2.  * Estructura de Datos - Facultad de Ingeniería - Universidad Nacional de Jujuy
  3.   =============================================================================
  4.  */
  5.  
  6. /**
  7.  * @Autor: Equipo 5.1 Estructura de Datos.
  8. /*      @Integrantes:                  |    @Carrera:             |   @DNI:
  9.                                        |                          |
  10.   Camacho, Mauro Rodrigo               | Ing. Informática         | 41.654.090
  11.   Cabana, Mario Ariel Fernando         | Ing. Informática         | 42.268.639
  12.   Cruz, Facundo Emanuel                | Ing. Informática         | 41.609.573
  13.   López, Juan Carlos                   | Ing. Informática         | 41.400.550
  14.   Machaca, Aldo Martin                 | Ing. Informática         | 31.455.538
  15.  
  16.  * @Ingeniera: Perez Ibarra.
  17.  * @Fecha: 14/09/2020.
  18.  */
  19.  
  20.  /*
  21.    Trabajo Práctico N°1 / Arreglos, Arreglos Dinámicos, Objetos Básicos / Ejercicio 1
  22.   ---------------------   ---------------------------------------------   ------------
  23.   * Objetivo General: Ingresar 2 vectores, almacenar la suma de los mismo en un tercer vector y mostrar.  
  24.   * Metodología Empleada: Ingresar por la consola o teclado dos arreglos enteros con la misma dimensión.
  25.                           En uno de los arreglos se deben ingresar solamente divisores de 1000
  26.                           y en el otro arreglo se deben ingresar solamente números primos.
  27.                           Mostrar la suma de los mismos en un tercer vector, la media de cada arreglo,
  28.                           los valores del vector suma menores a la media del primer vector
  29.                           y los mayores a la media del segundo vector.
  30.   * El funcionamiento será a traves del entorno de desarrollo integrado Eclipse 2020-06(4.16)-(IDE for Java Developers), empleando el leguaje de programación Orientado a Objeto Java.
  31.   * Api a utilizar. Paquete:- Java.Util / Clase:- Scanner y - Random.
  32.   */
  33. import java.util.Scanner;
  34. import java.util.Random;
  35. public class Tp01E01 {
  36. //----------------Variables para toda la clase Tp01E1----------------//    
  37.     public static Scanner entrada = new Scanner(System.in);
  38.     public static int i,j;
  39.     public static String respuesta;
  40. //-------------------------Principal - main--------------------------//    
  41.     public static void main(String[] args) {
  42.         int dimencion, mediaA, mediaB, mediaC;
  43.         System.out.println("Vectores A (primos), B(divisores de 1000), C(suma de A y B)\n==================");
  44.         dimencion=validarDato("dimención de los vectores: ");
  45.         int vectorA[]=new int [dimencion];
  46.         int vectorB[]=new int [dimencion];
  47.         int vectorC[]=new int [dimencion];
  48.         procesoCargar(vectorA,vectorB);
  49.         CargarVector3(vectorA,vectorB,vectorC);
  50.         MostrarTodosVectores(vectorA,vectorB,vectorC);
  51.         mediaA=CalcularMedia(vectorA);
  52.         mediaB=CalcularMedia(vectorB);
  53.         mediaC=CalcularMedia(vectorC);
  54.         mostrarMedias(mediaA,mediaB,mediaC);
  55.         menorMayorqueMedia(vectorC,mediaA,mediaB);
  56.     }
  57. //------------------------- Validar Entradas-------------------------//
  58.     public static int validarDato(String mensaje) {//Proceso de validación a un entero.
  59.         int dato;
  60.         do {
  61.             System.out.println("Ingrese la "+ mensaje);
  62.             dato=validarValor(entrada.nextLine());
  63.         }while(dato==0);
  64.         return dato;
  65.     }
  66.    
  67.     public static int validarValor(String entrada){//Módulo dedicado a reconocer si un número es natural.
  68.         int posible;
  69.         try {
  70.              posible=Integer.parseInt(entrada);
  71.         } catch (NumberFormatException nfe) {
  72.             posible=0;
  73.         } // fin catch.
  74.         if (posible>0) {
  75.             return posible;
  76.         }else {
  77.             System.out.println("ERROR, debe ingresar un entero positivo");
  78.             return 0;
  79.         }
  80.     }
  81. //--------------------------Vector - Cargar--------------------------//
  82.     public static void procesoCargar(int[] v1,int[] v2) {//Proceso para llenar los vectores principales A y B.
  83.         boolean vectorprimo;
  84.         System.out.println("\nProceso cargar Vectores\n------------------------\nCargar vector A");
  85.         vectorprimo=true;
  86.         comoCargar(v1,"A",vectorprimo);
  87.         System.out.println("Cargar vector B");
  88.         vectorprimo=false;
  89.         comoCargar(v2,"B",vectorprimo);
  90.     }
  91.     public static void comoCargar(int[] v,String aob,boolean esVectorA) {//Permite elejir si llena un vector por consola o automaticamente.
  92.         System.out.println("¿Desea generar valores en el vector "+ aob +" automaticamente?(SI/NO)");
  93.         respuesta=entrada.nextLine().toUpperCase();
  94.         if (respuesta.equals("SI")){
  95.             if (esVectorA) {
  96.                 cargarRandomA(v);
  97.             }else {
  98.                 cargarRandomB(v);
  99.             }
  100.         }else {
  101.             System.out.println("Ingrese números para el vector "+ aob +":");
  102.             if (esVectorA) {   
  103.                 cargarIndividualA(v);
  104.             }else {
  105.                 cargarIndividualB(v);
  106.             }
  107.            
  108.         }
  109.     }
  110.     public static void CargarVector3(int[] v1,int[] v2,int[] v3) {//Carga en el vector C la suma de A y B.
  111.         for(i=0;i<v3.length;i++) {
  112.             v3[i]=v1[i]+v2[i];
  113.         }
  114.     }
  115. //-----------------------Vector - Tipo de Carga-----------------------//
  116.     public static void cargarRandomA(int[] v) {//Almacena valores aleatorios en el vector A.
  117.         Random rnd=new Random();
  118.         int valorA;
  119.         for (i=0;i<v.length;i++) {
  120.             valorA=CalculaPrimo(rnd.nextInt(1000));
  121.             if(valorA!=0) {
  122.                 v[i]=valorA;    
  123.             }
  124.             else {
  125.                 i--;
  126.             }
  127.         }
  128.     }
  129.     public static void cargarRandomB(int[] v) {//Almacena valores aleatorios en el vector B.
  130.         Random rnd=new Random();
  131.         int valorB;
  132.         for (i=0;i<v.length;i++) {
  133.             valorB=CalculaDivisor(rnd.nextInt(1000));
  134.             if(valorB!=0) {
  135.                 v[i]=valorB;    
  136.             }
  137.             else {
  138.                 i--;
  139.             }
  140.         }
  141.     }
  142.     public static void cargarIndividualA(int[] v) {//Carga el vector A por consola.
  143.         int valorA;
  144.         for (i=0;i<v.length;i++) {
  145.             valorA=CalculaPrimo(validarDato("posición A("+(i+1)+"):"));
  146.             if(valorA!=0) {
  147.                 v[i]=valorA;    
  148.             }
  149.             else {
  150.                 System.out.println("El número ingresado no es primo");
  151.                 i--;
  152.             }
  153.         }
  154.     }
  155.     public static void cargarIndividualB(int[] v) {//Carga el vector B por consola.
  156.         int valorB;
  157.         for (i=0;i<v.length;i++) {
  158.             valorB=CalculaDivisor(validarDato("posición B("+(i+1)+"):"));
  159.             if(valorB!=0) {
  160.                 v[i]=valorB;    
  161.             }
  162.             else {
  163.                 System.out.println("El número ingresado no es divisor de 1000");
  164.                 i--;
  165.             }
  166.         }
  167.     }  
  168.     public static int CalculaPrimo(int posiblePrimo) {//Calcula si un número es primo a traves de sus divisores.
  169.          int divisores=0;
  170.          for(j=1;j<=posiblePrimo;j++) {
  171.              if(posiblePrimo%j==0)
  172.                  divisores++;
  173.          }
  174.          if(divisores==2)
  175.              return posiblePrimo;
  176.          else
  177.              return 0;
  178.     }
  179.     public static int CalculaDivisor(int num) {//Calcula si un número es divisor de 1000.
  180.         if(1000%num==0)
  181.             return num;
  182.         else
  183.             return 0;
  184.     }
  185.    
  186. //--------------------------Vector - Mostrar-------------------------//
  187.     public static void MostrarTodosVectores(int[] v1,int[] v2,int[] v3) {//Proceso para mostrar todos los vectores.
  188.         System.out.println("\nMostrar Vectores\n-----------------");
  189.         MostrarVector(v1,"A");
  190.         MostrarVector(v2,"B");
  191.         MostrarVector(v3,"C");
  192.     }
  193.     public static void MostrarVector(int[] v,String abc){//Muestra solo un vector.
  194.         System.out.print("El Vector "+ abc +" es : {");
  195.         for(int numero:v) {
  196.             System.out.print("|"+numero+"| ");
  197.         }
  198.         System.out.println("}\n");
  199.     }
  200.    
  201. //--------------------Media - Calcular y Mostrar --------------------//    
  202.     public static int CalcularMedia(int[] v) {//Calcula promedio entero de un vector.
  203.         int acumulador=0;
  204.         for(i=0;i<v.length;i++) {
  205.             acumulador+=v[i];
  206.         }
  207.         return acumulador/v.length;
  208.     }
  209.     public static void mostrarMedias(int mA,int mB,int mC) {//Muestra el promedio de cada vector.
  210.         System.out.println("Mostrar la media de cada Vector\n--------------------------------");
  211.         System.out.println("La media del vector A es : "+ mA);
  212.         System.out.println("La media del vector B es : "+ mB);
  213.         System.out.println("La media del vector C es : "+ mC);
  214.     }
  215. //Valores de C: menores y mayores a la Media de A y B respectivamente//
  216.     public static void menorMayorqueMedia(int[] v3,int mA,int mB) {//Proceso adicional.
  217.         System.out.print("\nAdicionales\n------------");
  218.         MenorMedia(v3, mA);
  219.         MayorMedia(v3, mB);
  220.     }
  221.     public static void MenorMedia(int[] v3,int media) {//Obtiene valores de C menores que la media de A y los muestra.
  222.         System.out.print("\nLos valores del vector C menores a la media del vector A son : { ");
  223.         for(i=0;i<v3.length;i++) {
  224.             if(v3[i]<media) {
  225.                 System.out.print("|"+v3[i]+"| ");
  226.             }
  227.         }
  228.         System.out.print("}");
  229.     }
  230.     public static void MayorMedia(int[] v3,int media) {//Obtiene valores de C mayores que la media de B y los muestra.
  231.         System.out.print("\nLos valores del vector C mayores a la media del vector B son : { ");
  232.         for(i=0;i<v3.length;i++) {
  233.             if(v3[i]>media) {
  234.                 System.out.print("|"+v3[i]+"| ");
  235.             }
  236.         }
  237.         System.out.print("}");
  238.     }
  239. }
  240.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement