Problema con algoritmo clase vector-java
Publicado por Norela M. (4 intervenciones) el 27/05/2011 05:24:20
Hola!!
Espero que alguien pueda orientarme.
Tengo un inconveniente con un algoritmo que debo desarrollar. La instrucción es la siguiente:
Elabore un programa que lea dos vectores A y B con m y n datos respectivamente, ambos con los datos no ordenados. Ni A ni B tienen datos repetidos, pero puede haber datos comunes a ambos vectores. Elabore un subprograma que construya un tercer vector C que sea la unión de los datos de los vectores A y B. En C no deben quedar datos repetidos. Muestre por pantalla los tres vectores A, B y C.
Ya hice el algoritmo, e intercalé los Vectores A y B a través de un método llamado intercala (Vector b).
El problema es que cuando lo invocó no me muestra el Vector C (que es el resultante de la intercalación entre A y B)
Les envío el algorimo para que me orienten y saber en que está fallando.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cuartapractica_norelamesa;
import java.util.*;
import BibliotecaCuartaPractica.Vector;
import BibliotecaCuartaPractica.CuartaPractica;
/**
*
* @author Y Norela M
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int i, m = 0, n = 0, num, j, nume, d;
Vector V[], V1[];
Vector A, B;
A = V[10];
B = V1[6];
Vector C = new Vector((int) (m + n ));
Scanner teclado = new Scanner(System.in);
System.out.println ("digite dimension de vector:");
n = teclado.nextInt();
for(i=1;i<=n;i++)
{
System.out.println("digite un numero:");
num = teclado.nextInt();
}
System.out.println ("digite dimension de vector:");
m = teclado.nextInt();
for(j=1;j<=m;j++)
{
System.out.println("digite un numero:");
nume = teclado.nextInt();
}
C = A.intercala(B); // para este método utilicé el algoritmo que describo al final y se encuentra ubicado en la Biblioteca de Clases BibliotecaCuartaPractica.Vector;
System.out.println(V[i] + " ");
System.out.println(V1[j] + " ");
System.out.println(C + " ");
}
}
Algoritmo Método Intercala Vector:
public Vector intercala (Vector b)
{
int m = (int) posicionesUsadas();
int p = (int) b.posicionesUsadas();
Vector c = new Vector((int) (m + p ));
int i = 1;
int j = 1;
while(i<=m && j<=p)
{
int da = (int) retornaDatoEn(i);
int db = (int) b.retornaDatoEn(j);
if(da<db){
c.agregarDato(da);
i=i+1;
}
else{
if(da>da){
c.agregarDato(db);
j=j+1;
}
else{
c.agregarDato(da);
i=i+1;
j=j+1;
}
}
}
while(i<=m)
{
c.agregarDato(retornaDatoEn(i));
i++;
}
while(j<=p)
{
c.agregarDato(b.retornaDatoEn(j));
j++;
}
return c;
}
He cacharreado bastante y no logro encontrar porque no me muestra los datos del vector... o mejor dicho, no sé como hacer para que me los muestre :(
Les agradezco mucho su asesoría!!!
Norela M.
Espero que alguien pueda orientarme.
Tengo un inconveniente con un algoritmo que debo desarrollar. La instrucción es la siguiente:
Elabore un programa que lea dos vectores A y B con m y n datos respectivamente, ambos con los datos no ordenados. Ni A ni B tienen datos repetidos, pero puede haber datos comunes a ambos vectores. Elabore un subprograma que construya un tercer vector C que sea la unión de los datos de los vectores A y B. En C no deben quedar datos repetidos. Muestre por pantalla los tres vectores A, B y C.
Ya hice el algoritmo, e intercalé los Vectores A y B a través de un método llamado intercala (Vector b).
El problema es que cuando lo invocó no me muestra el Vector C (que es el resultante de la intercalación entre A y B)
Les envío el algorimo para que me orienten y saber en que está fallando.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cuartapractica_norelamesa;
import java.util.*;
import BibliotecaCuartaPractica.Vector;
import BibliotecaCuartaPractica.CuartaPractica;
/**
*
* @author Y Norela M
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int i, m = 0, n = 0, num, j, nume, d;
Vector V[], V1[];
Vector A, B;
A = V[10];
B = V1[6];
Vector C = new Vector((int) (m + n ));
Scanner teclado = new Scanner(System.in);
System.out.println ("digite dimension de vector:");
n = teclado.nextInt();
for(i=1;i<=n;i++)
{
System.out.println("digite un numero:");
num = teclado.nextInt();
}
System.out.println ("digite dimension de vector:");
m = teclado.nextInt();
for(j=1;j<=m;j++)
{
System.out.println("digite un numero:");
nume = teclado.nextInt();
}
C = A.intercala(B); // para este método utilicé el algoritmo que describo al final y se encuentra ubicado en la Biblioteca de Clases BibliotecaCuartaPractica.Vector;
System.out.println(V[i] + " ");
System.out.println(V1[j] + " ");
System.out.println(C + " ");
}
}
Algoritmo Método Intercala Vector:
public Vector intercala (Vector b)
{
int m = (int) posicionesUsadas();
int p = (int) b.posicionesUsadas();
Vector c = new Vector((int) (m + p ));
int i = 1;
int j = 1;
while(i<=m && j<=p)
{
int da = (int) retornaDatoEn(i);
int db = (int) b.retornaDatoEn(j);
if(da<db){
c.agregarDato(da);
i=i+1;
}
else{
if(da>da){
c.agregarDato(db);
j=j+1;
}
else{
c.agregarDato(da);
i=i+1;
j=j+1;
}
}
}
while(i<=m)
{
c.agregarDato(retornaDatoEn(i));
i++;
}
while(j<=p)
{
c.agregarDato(b.retornaDatoEn(j));
j++;
}
return c;
}
He cacharreado bastante y no logro encontrar porque no me muestra los datos del vector... o mejor dicho, no sé como hacer para que me los muestre :(
Les agradezco mucho su asesoría!!!
Norela M.
Valora esta pregunta
0