Autor Tema: ¿Es posible restar el contenido de dos vectores de números o de palabras? (java)  (Leído 12566 veces)

Browwwnnn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Buenas, tengo una simple duda, si yo tengo los siguientes vectores:
A= 1,2,3
B=2,3
quiero mediante condiciones restar estos vectores y almacenar el dato resultante en  un vector C.
La cosa seria algo asi:
A=1,2,3
B=2,3
C=1
« Última modificación: 02 de Noviembre 2014, 13:38 por Ogramar »

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Re:Es posible restar el contenido de dos vectores?
« Respuesta #1 en: 01 de Noviembre 2014, 19:04 »
No pones el lenguaje que usas  ???

Te lo explico sin utilizar ninguna sintaxis...  :P

tenemos 3 array

PrimerArray = 22,33,3
segundoArray = 12,30
TercerArray;
Utilizamos un bucle for que vaya a un maximo de 2 ¿por que de 2? por que el array que ocupa el menor indece es segundoArray(que tiene 2) es decir NO PODEMOS restarle la posicion 2 del primerArray a la posicion 2 del segundoArray (ya que segundoArray no tiene posicion 2)

primerArray
La posicion 0 = 22
la posicion 1 = 33
la posicion 2 = 3

segundoArray
la posicion 0 = 12
la posicion 1 = 30

Entonces hacemos un FOR
For(int i = 0; i < 2;i++)
{
 TercerArray{i} = primerArray{i} - segundoArray{i};
}

por que TercerArray[ i ] ¿que significa esa i ? ---> Simplemente le decimos que guarde en la posicion 0 y 1 los valores de restar la posicion 0 del primerArray con la posicion 0 del segundoArray

No se si me explique bien si no te entereastes dilo que te lo vuelvo a decir, es que estoy viendo un partido y ando deprisa
« Última modificación: 02 de Noviembre 2014, 13:38 por Ogramar »

Browwwnnn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Re:Es posible restar el contenido de dos vectores?
« Respuesta #2 en: 01 de Noviembre 2014, 21:27 »
Gracias por la respuesta, uso java XD me olvide, nose porque me da -1, pero igual no importa.

Código: [Seleccionar]
int a[]=new int[3];
a[0]=1;
a[1]=2;
a[2]=3;
int b[]=new int[2];
b[0]=2;
b[1]=3;
int c[]=new int[3];
for(int x=0;x< 2;x++){

c[x]=a[x]-b[x];
}

for(int x=0;x<1;x++){
System.out.println(c[x]);
}

}
}

Otra duda, si tengo el mismo vector pero en vez de int utilizo String, es posible restar las palabras?
« Última modificación: 01 de Noviembre 2014, 21:29 por Browwwnnn »

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Re:Es posible restar el contenido de dos vectores?
« Respuesta #3 en: 01 de Noviembre 2014, 22:04 »
Hola amigo  :)

antes que nada esta línea esta mal:

Código: [Seleccionar]
for(int x=0;x<1;x++){
System.out.println(c[x]);
}

seria así:

Código: [Seleccionar]
for(int x=0;x<2;x++){
System.out.println(c[x]);
}

¿por que te devuelve -1?, esto es muy fácil

Vector a en la posición 0 tiene el valor 1
vector b en la posicion 0 tiene el valor -2

 por que vector b tiene -2 y no 2 como yo le puse? por la siguiente línea:

Código: [Seleccionar]
c[x]=a[x]-b[x];
Fijate que es -b es decir esto hay que tener un poco de sentido comun:
RECTA:
Si a es mayor que b = El valor es POSITIVO  es decir 10 -5 = 5
Si a es MENOR que b = el valor es NEGATIVO es decir 2-3 = -1

Browwwnnn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Re:Es posible restar el contenido de dos vectores?
« Respuesta #4 en: 01 de Noviembre 2014, 23:33 »
Bueno el caso real es este, tengo que hacer un programa en el que tengo los siguientes vectores:

Locales: playa,rambla, barrio
Libres:
En venta:

Mediante una variable "x" ingreso alguno de los tres valores que hay en "Locales", si
x=Locales, que el dato se transfiera a "En venta" (esto lo se hacer), luego en "Libres" tendrían que cargarse los datos que quedaron sin ingresar.

Si yo ingreso x=playa, Libres=rambla, barrio y En venta= playa

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Re:Es posible restar el contenido de dos vectores?
« Respuesta #5 en: 02 de Noviembre 2014, 12:48 »
Bueno el caso real es este, tengo que hacer un programa en el que tengo los siguientes vectores:

Locales: playa,rambla, barrio
Libres:
En venta:

Mediante una variable "x" ingreso alguno de los tres valores que hay en "Locales", si
x=Locales, que el dato se transfiera a "En venta" (esto lo se hacer), luego en "Libres" tendrían que cargarse los datos que quedaron sin ingresar.

Si yo ingreso x=playa, Libres=rambla, barrio y En venta= playa

Muy buenas amigo!!!  :P

Es un ejercicio sencillo, cuando estes saturado te aconsejo que pares y hagas otra cosa unos minutos, por que no veras ni el ejercicio mas simple del mundo  ;)

Vamos a crear 3 arrays de tipo cadena de texto, todos con un indice de 3  :)
Los nombres de los array que yo e creado:

locales
ventas
libre

Por último creamos un bucle For
Este apartado del ejercicio decías que si sabías:

 
Código: [Seleccionar]
for (int i = 0; i < 3;i++ )
            {
                if (Locales[i] == x)
                {
                   
                    Ventas[0] = Locales[i];
                }
                else
                {
             Libres[i] = Locales[i];
               }
            }

Osea lo único que te faltaba es el else y la línea  Libres[ i ] = Locales[ i ]; , creo que con el ejemplo de código de arriba es suficiente para que te des cuenta.


Te propongo un ejercicio:(escribe en la variable x la palabra "playa" y veras que tiene algunos errores) El código no esta completo ya que deja espacios de nombres en las posiciones, haz que cuando se imprima en consola aparezcan en orden y no que empiece por el 2 por ejemplo.  :)
« Última modificación: 02 de Noviembre 2014, 13:36 por Ogramar »

Browwwnnn

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 9
    • Ver Perfil
Muchisimas gracias!! ya lo pude resolver :D
la verdad que era simple si jaja, tan simple que no me di cuenta XD

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Hola Browwwnnn, si lo has resuelto se agradece que pegues el código compilable (la clase) para poder ver cómo lo has hecho, de esa forma ayudas a personas que tengan el mismo problema. Salu2!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".