angeles734

ttp1

Sep 15th, 2021
520
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //-UNIVERSIDAD NACIONAL DE JUJUY- FACULTAD DE INGENIERÍA                        -ESTRUCTURAS DE DATOS
  2. //-TRABAJO PRACTICO N°1: ARREGLOS, ARREGLOS DINÁMICOS, OBJETOS BÁSICOS          -GRUPO 3.2
  3. //-------------------------------------------------------------------------------------------------------  
  4.     import java.util.Random;
  5.     import java.util.Scanner;
  6. public class EJERC1 {
  7.  
  8.    
  9.     public static void main(String[] args) {
  10.         Scanner sc =new Scanner(System.in);
  11.        
  12.    
  13.         int OP;
  14.         int dim=PositivoInt(sc,"Ingrese la dimensión del arreglo: ");
  15.         int V1[]=new int [dim];
  16.         int V2[]=new int [dim];
  17.         int V3[]=new int [V1.length];
  18.         do {
  19.          OP=Menu(sc,"Ingrese una opción del menú: ");
  20.             System.out.println("");
  21.            
  22.             switch (OP){
  23.            
  24.             case 1:
  25.                  cargarVDiv(sc,V1);
  26.                  System.out.println("Vector generado");
  27.                  Mostrar(V1);
  28.                  System.out.println("Media del Vector: "+  Media(V1));
  29.                
  30.                  cargarVPrimo(sc,V2);
  31.                  System.out.println("Vector generado");
  32.                  Mostrar(V2);
  33.                  System.out.println("Media del Vector: "+  Media(V2));
  34.                  
  35.                  VectorSuma(V1,V2,V3);
  36.                  System.out.println("Media del Vector Suma: "+  Media(V3));
  37.                  MediaMen(V1,V3);
  38.                  MediaMay(V2,V3);
  39.                  
  40.                       break;
  41.             case 2:
  42.                
  43.                  AleatorioDiv(V1);
  44.                  System.out.println("Vector generado: Divisores de 1000");
  45.                  Mostrar(V1);
  46.                  System.out.println("Media del Vector: "+  Media(V1));
  47.                  
  48.                  AleatorioPrimo(V2);
  49.                  System.out.println("\nVector generado: Números primos");
  50.                  Mostrar(V2);
  51.                  System.out.println("Media del Vector: "+  Media(V2));
  52.                  
  53.                  VectorSuma(V1,V2,V3);
  54.                  System.out.println("Media del Vector Suma: "+  Media(V3));
  55.                  
  56.                  MediaMen(V1,V3);
  57.                  MediaMay(V2,V3);
  58.                       break;    
  59.             case 3:
  60.                     System.out.println("Muchas gracias, hasta luego.");
  61.                     break;
  62.             default:
  63.                  System.out.println("Opción no valida");
  64.             }
  65.        
  66.              } while (OP!=3);
  67.          
  68.          sc.close();
  69.          
  70.     }
  71.  
  72.     public static int Menu(Scanner sc,String message ){
  73.         int opcion;
  74.         do {
  75.             System.out.println("-----------------------------------");
  76.             System.out.println(" // ELIJA UNA OPCIÓN DEL MENÚ//");
  77.             System.out.println("1.Ingresar números al arreglo ");
  78.             System.out.println("2.Generar números aleatoriamente ");
  79.             System.out.println("3.Salir");
  80.            
  81.             opcion=ReadInt(sc,message);
  82.             if(opcion<0 || opcion>3){
  83.                 System.out.println("\nError: Ingrese una opción valida");
  84.             }
  85.         }while(opcion<0 || opcion>3);
  86.         return opcion;
  87.        
  88.     }
  89.     public static int ReadInt(Scanner sc, String message) {
  90.         int num;
  91.         String line;
  92.         while (true) {
  93.             try {
  94.                 System.out.print(message);
  95.                 line = sc.nextLine();
  96.                 num = Integer.parseInt(line);
  97.                 break;
  98.             }
  99.              catch (Exception e) {
  100.                 System.out.println("\nERROR al cargar un número entero");
  101.             }
  102.         }
  103.         return num;
  104.     }
  105.     //Valida que el tamaño del vector sea positivo y entero
  106.     public static int PositivoInt(Scanner sc, String message)
  107.     {
  108.         int num;
  109.         while(true) {
  110.              num=ReadInt(sc,message);
  111.              if (num>0) {
  112.                  
  113.                  break;
  114.              }
  115.              else {
  116.                  System.out.println("El valor de dimensión del vector debe ser positivo y entero");
  117.              }
  118.         }
  119.      
  120.         return num;
  121.        
  122.     }
  123.    
  124.     public static void cargarVDiv(Scanner sc, int V1[])
  125.     {
  126.         System.out.println("Cargando 1° Vector: Divisores de 1000");
  127.         for (int i=0; i < V1.length; i++ )
  128.         {
  129.             int num=ReadInt(sc,"Ingrese un numero entero: ");
  130.             if (DivisoresMil(num))
  131.             {
  132.                 V1[i]=num;
  133.             }else {
  134.                 i=i-1;
  135.             }
  136.                    
  137.                
  138.         }
  139.     }
  140.     public static void cargarVPrimo(Scanner sc, int V2[])
  141.     {
  142.         System.out.println("\nCargando 2° Vector: Números primos");
  143.         for (int i=0; i <V2.length; i++ )
  144.         {
  145.             int num=ReadInt(sc,"Ingrese un número entero: ");
  146.             if (EsPrimo(num)) {
  147.                
  148.                 V2[i]=num;
  149.             }else {
  150.                 i=i-1;
  151.             }
  152.                
  153.         }
  154.     }
  155.    
  156.     public static void AleatorioDiv(int V1[])
  157.      {
  158.          Random rnd=new Random();
  159.         for (int i=0; i < V1.length; i++ )
  160.         {
  161.             int num=rnd.nextInt(1000)+1;
  162.             if (DivisoresMil(num)) {
  163.                
  164.                 V1[i]=num;
  165.             }else {
  166.                 i=i-1;
  167.             }
  168.         }  
  169.      }
  170.    
  171.     public static void AleatorioPrimo(int V2[])
  172.      {
  173.          Random rnd=new Random();
  174.         for (int i=0; i < V2.length; i++ )
  175.         {
  176.             int num=rnd.nextInt(1000)+1;
  177.             if (EsPrimo(num)) {
  178.                
  179.                 V2[i]=num;
  180.             }else {
  181.                 i=i-1;
  182.             }
  183.         }  
  184.     }
  185.    
  186.     public static void Mostrar(int V[])
  187.     {  
  188.         for (int i=0; i < V.length; i++ )
  189.         {
  190.             System.out.println("Posición "+ (i+1)+ ": " + V[i]);
  191.         }
  192.     }
  193.    
  194.     public static boolean DivisoresMil(int num)
  195.     {
  196.         boolean divisor=false;
  197.         if(1000 % num==0)
  198.        {    
  199.         divisor=true;
  200.        
  201.        }
  202.         return divisor;
  203.     }
  204.  
  205.     public static boolean EsPrimo(int num)
  206.     {
  207.          int contador = 2;
  208.           boolean primo=true;
  209.           while ((primo) && (contador!=num)){
  210.             if ((num % contador == 0)||(num==1))
  211.               primo = false;
  212.             contador++;
  213.           }
  214.           return primo;
  215.         }
  216.    
  217.     public static void VectorSuma(int V1[],int V2[],int V3[])
  218.     {
  219.         for (int i=0; i < V1.length; i++ )  
  220.         {
  221.             V3[i]= V1[i]+V2[i];
  222.         }
  223.          System.out.println("\nVector suma del primer y segundo vector");
  224.         for (int i=0; i < V3.length; i++ )  {
  225.             System.out.println("Posición "+ (i+1)+ ": " + V3[i]);
  226.         }
  227.     }
  228.     //Calculo de la media del vector
  229.     public static double Media(int V[]) {
  230.         double suma = 0;
  231.         for (int i = 0; i < V.length; i++) {
  232.             suma=suma + V[i];
  233.         }
  234.         return suma / V.length;
  235.     }
  236.    
  237.     //valores del vector suma que resultan menores a la media del primer vector
  238.     public static void MediaMen(int V1[],int V3[])
  239.     {
  240.         System.out.println("\nValores del vector suma que resultan menores a la media del 1° vector ");
  241.        
  242.          for (int i = 0; i < V3.length; i++) {
  243.              if (V3[i]< Media(V1))
  244.              {
  245.                  System.out.println(V3[i]);
  246.                  
  247.              }
  248.          }
  249.          
  250.          
  251.     }
  252.     //valores del vector suma que resultan mayores a la media del segundo vector
  253.     public static void MediaMay(int V2[],int V3[])
  254.     {
  255.         System.out.println("\nValores del vector suma que resultan mayores a la media del 2° vector ");
  256.          for (int i = 0; i < V3.length; i++) {
  257.              if (V3[i]> Media(V2))
  258.              {
  259.                  System.out.println(V3[i]);
  260.              }
  261.          }
  262. }
  263. }
RAW Paste Data