problemas

jairol
10 de Mayo del 2005
hola soy estudiante y estoy viendo java necesito hacer un programa de vectores y no se por donde empezar me pueden ayudar

ArthaSoft
10 de Mayo del 2005
/////////////////////////////////////////////////////////////////
// Aplicación que utiliza la clase CVector
//
public class Test
{
// Visualizar un vector
public static void visualizarVector(CVector v)
{
int ne = v.longitud();
for (int i = 0; i < ne; i++)
System.out.print(v.valorEn(i) + " ");
System.out.println();
}

public static void main(String[] args)
{
/*
CVector vector1 = new CVector(5);
visualizarVector(vector1);

CVector vector2 = new CVector();
for (int i = 0; i < vector2.longitud(); i++)
vector2.ponerValorEn(i, (i+1)*10);
visualizarVector(vector2);

CVector vector3 = new CVector(vector2);
visualizarVector(vector3);

double x[] = { 1, 2, 3, 4, 5, 6, 7 }; // matriz x
CVector vector4 = new CVector(x);
visualizarVector(vector4);

System.out.println("Fin de la aplicación");
*/
double x[] = { 1, 2, 3, 4, 5, 6, 7 }; // matriz x
CVector vector1 = new CVector(x);
visualizarVector(vector1); // escribe 1 2 3 4 5 6 7

CVector vector2 = new CVector(vector1);
for (int i = 0; i < vector2.longitud(); i++)
vector2.ponerValorEn(i, vector2.valorEn(i)*10);
visualizarVector(vector2); // escribe 10 20 30 40 50 60 70

if (vector1 == vector2)
System.out.println("referencias al mismo objeto");
else
System.out.println("referencias a objetos diferentes");

if (vector1.equals(vector2))
System.out.println("objetos iguales");
else
System.out.println("objetos diferentes");
}
}
///////////////////ahora viene la clase que implementa/////////
import java.util.Arrays;
/////////////////////////////////////////////////////////////////
// Definición de la clase CVector
//
public class CVector
{
private double[] vector; // matriz vector
private int nElementos; // número de elementos de la matriz

public CVector() // número de elementos por omisión: 10
{
nElementos = 10;
vector = new double[nElementos];
}

public CVector(int ne) // ne elementos
{
if ( ne < 1 )
{
System.out.println("Nº de elementos no válido: " + ne);
System.out.println("Se asignan 10 elementos");
ne = 10;
}
nElementos = ne;
vector = new double[nElementos];
}

public CVector(double[] m) // crea un CVector desde una matriz
{
nElementos = m.length;
vector = new double[nElementos];
// Copiar los elementos de la matriz m
for ( int i = 0; i < nElementos; i++ )
vector[i] = m[i];
}

public CVector(CVector v) // constructor copia
{
nElementos = v.nElementos;
vector = new double[nElementos];
// Copiar el objeto v
for ( int i = 0; i < nElementos; i++ )
vector[i] = v.vector[i];
}

public CVector copiar(CVector v) // copia un CVector en otro
{
nElementos = v.nElementos;
vector = new double[nElementos];
// Copiar el objeto v
for ( int i = 0; i < nElementos; i++ )
vector[i] = v.vector[i];

return this;
}

public void ponerValorEn( int i, double valor )
{
if (i >= 0 && i < nElementos)
vector[i] = valor;
else
System.out.println("Índice fuera de límites");
}

public double valorEn( int i )
{
if (i >= 0 && i < nElementos)
return vector[i];
else
{
System.out.println("Índice fuera de límites");
return Double.NaN;
}
}

public int longitud() { return nElementos; }

public boolean equals(CVector v)
{
return Arrays.equals(vector, v.vector);
}
}