Pages: [1]   Go Down
Print
Author Topic: terzo vettore con valori dei primi due e stampa di valori ripetuti  (Read 601 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
ChiaraT91S
Matricola
*
Offline Offline

Posts: 64


« on: 22-11-2012, 16:24:04 »

Code:
/* Dati due vettori ordinati, creare un terzo vettore che contenga tutti i valori e dire se un valore compare più volte*/
import javax.swing.*;

public class OrdinareTerzoArray
{

      public static void main(String[] args)
     {
     int i=1,j=1,k=0,n,m,p;
     int[] v1,v2,v3;
     n=Integer.parseInt(JOptionPane.showInputDialog("Inserisci la dimensione del primo vettore: "));
     v1=new int[n];
     v1[0]=(int)(Math.random()*n);
      System.out.println("-Primo vettore ordinato-");
     System.out.println(v1[0]);
     while(i<v1.length)
            {
  v1[i]=v1[i-1]+1+(int)(Math.random()*n);
                          System.out.println(v1[i]);
  i++;    
    }
     m=Integer.parseInt(JOptionPane.showInputDialog("Inserisci la dimensione del secondo vettore: "));
     v2=new int[m];
     v2[0]=(int)(Math.random()*m);
     System.out.println("-Secondo vettore ordinato-");
     System.out.println(v2[0]);   
     while(j<v2.length)
            {
  v2[j]=v2[j-1]+1+(int)(Math.random()*m);
                          System.out.println(v2[j]);
  j++;    
    }
     p=n+m;
     i=0;
     j=0;
     v3=new int[p];
     System.out.println("La dimensione del vettore risultante è: "+p);
     if(n>m)
     {
     System.out.println("Il primo vettore è più grande del secondo");
     while(j<v2.length)
     {
     
     if(v1[i]>v2[j])
     {
     v3[k]=v2[j];
     j++;
     k++;
     }
       else
     {
     v3[k]=v1[i];
     i++;
     k++;
     }
     }
     while(k<v3.length)
     {
     
      v3[k]=v1[i];
     i++;
     k++;
     }
}
  else
     {
     System.out.println("Il secondo vettore è più grande del primo");
     while(i<v1.length)
     {
     if(v1[i]>v2[j])
     {
     v3[k]=v2[j];
     j++;
     k++;
     }
       else
     {
     v3[k]=v1[i];
     i++;
     k++;
     }
     }
     while(k<v3.length)
     {
     
      v3[k]=v2[j];
     j++;
     k++;
     }
}
k=0;
System.out.println("-Il terzo vettore è: ");
while(k<v3.length)
            {
                          System.out.println(v3[k]);
  k++;    
    }
k=0;
while(k<v3.length-1)
{
int cont=1;
if(v3[k]==v3[k+1])
{     
cont++;
System.out.println("Il valore "+v3[k]+ "è stato ripetuto "+cont+ "volte.");
k++;
}
else k++;
}
   
     
     }
}
funziona! pc
Logged
DarioL19F
Matricola
*
Offline Offline

Posts: 90


« Reply #1 on: 23-11-2012, 00:30:31 »

Code:
/* Dati due vettori ordinati, creare un terzo vettore che contenga tutti i valori e dire se un valore compare più volte*/
import javax.swing.*;

public class OrdinareTerzoArray
{

      public static void main(String[] args)
     {
     int i=1,j=1,k=0,n,m,p;
     int[] v1,v2,v3;
     n=Integer.parseInt(JOptionPane.showInputDialog("Inserisci la dimensione del primo vettore: "));
     v1=new int[n];
     v1[0]=(int)(Math.random()*n);
      System.out.println("-Primo vettore ordinato-");
     System.out.println(v1[0]);
     while(i<v1.length)
            {
  v1[i]=v1[i-1]+1+(int)(Math.random()*n);
                          System.out.println(v1[i]);
  i++;    
    }
     m=Integer.parseInt(JOptionPane.showInputDialog("Inserisci la dimensione del secondo vettore: "));
     v2=new int[m];
     v2[0]=(int)(Math.random()*m);
     System.out.println("-Secondo vettore ordinato-");
     System.out.println(v2[0]);   
     while(j<v2.length)
            {
  v2[j]=v2[j-1]+1+(int)(Math.random()*m);
                          System.out.println(v2[j]);
  j++;    
    }
     p=n+m;
     i=0;
     j=0;
     v3=new int[p];
     System.out.println("La dimensione del vettore risultante è: "+p);
     if(n>m)
     {
     System.out.println("Il primo vettore è più grande del secondo");
     while(j<v2.length)
     {
     
     if(v1[i]>v2[j])
     {
     v3[k]=v2[j];
     j++;
     k++;
     }
       else
     {
     v3[k]=v1[i];
     i++;
     k++;
     }
     }
     while(k<v3.length)
     {
     
      v3[k]=v1[i];
     i++;
     k++;
     }
}
  else
     {
     System.out.println("Il secondo vettore è più grande del primo");
     while(i<v1.length)
     {
     if(v1[i]>v2[j])
     {
     v3[k]=v2[j];
     j++;
     k++;
     }
       else
     {
     v3[k]=v1[i];
     i++;
     k++;
     }
     }
     while(k<v3.length)
     {
     
      v3[k]=v2[j];
     j++;
     k++;
     }
}
k=0;
System.out.println("-Il terzo vettore è: ");
while(k<v3.length)
            {
                          System.out.println(v3[k]);
  k++;    
    }
k=0;
while(k<v3.length-1)
{
int cont=1;
if(v3[k]==v3[k+1])
{     
cont++;
System.out.println("Il valore "+v3[k]+ "è stato ripetuto "+cont+ "volte.");
k++;
}
else k++;
}
   
     
     }
}
funziona! pc

 
Logged
Pages: [1]   Go Up
Print
Jump to: