Autor Tema: Cómo operar números de un arreglo

0 Usuarios y 2 Visitantes están viendo este tema.

20 Agosto, 2015, 03:29 am
Leído 7648 veces

Antoniio

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 261
  • Karma: +0/-0
  • Sexo: Masculino
Hola, a penas ayer comencé a llevar un curso de programación en java por medio de internet. Me han solicitado un primer programa donde necesito crear un arreglo que contenga x números (por ejemplo: 2,7,3,0,5) y que esos números se sumen, dividan, resten y multipliquen. Intenté hacer la división y me quedó así:

Código: [Seleccionar]
public class PrimerProgra {
 public static void main(String[] args) { 
             int a=2, b=7, c=3, d=0, e=5;
             int divInt = a/b/c/d/e;
                System.out.println("El valor entero de la division es " + divInt);
 }
 
}

Pero no supe cómo hacerlo sin crear tantas variables, osea, eso no debe hacerse. Alguna sugerencia para hacerlo sin tener variables?, que sea sólo en 1 arreglo?, gracias de antemano.

20 Agosto, 2015, 04:43 am
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

No sé nada de Java pero si tienes un arreglo, ¿por qué no lo usas (al arreglo) para contener a todos los número? y luego accedes a ellos a través de índices, pienso que en Java también se ha de poder hacer. Quiero decir si tienes el arreglo "a"             a[0]: correspondería al primer elemento del arreglo "a"

Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

20 Agosto, 2015, 06:34 am
Respuesta #2

Antoniio

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 261
  • Karma: +0/-0
  • Sexo: Masculino
De acuerdo, ya indagué un poco más. Pude realizar suma:

Código: [Seleccionar]
class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,0,1,9,5,3};
    int suma = 0;

    for(int i=0;i<matricula.length;i++){

           suma+=matricula[i];
    }
    System.out.println("La suma es igual a: " +suma);

   }
}

Realizando un for, quedó perfecto. Después intenté hacerlo con las demás operaciones ( resta, multiplicación y división) pero no pude hacer que funcionara, intenté pero no puedo :s lo dejé así pero todos suman:

Código: [Seleccionar]
class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,0,1,9,5,3};
    int suma = 0;
    int resta = 0;
    int multi = 1;
    int div = 0;

    for(int i=0;i<matricula.length;i++){

           suma+=matricula[i];
   resta+=matricula[i];
           multi+=matricula[i];
           div+=matricula[i];
    }
    System.out.println("La suma es igual a: " +suma);
    System.out.println("La restauki aaaaes igual a: " +resta);
    System.out.println("La multiplicacion es igual a: " +multi);
    System.out.println("La division es igual a: " +div);
   }
}

dónde debo modificar para que se realice cada función?...

20 Agosto, 2015, 06:48 am
Respuesta #3

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Seguramente es porque la división por cero no está permitida.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

20 Agosto, 2015, 07:10 am
Respuesta #4

Antoniio

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 261
  • Karma: +0/-0
  • Sexo: Masculino
No, dudo mucho que sea por eso (después de solucionar esto cambiaré los 0 por -1 como se me ha solicitado) pero el código que envié sólo suma los números de la matrícula, todos realizan la misma operación pues es la única que pude hacer, no se qué es lo que debe cambiar para que en lugar de sumar reste, en lugar de sumar multiplica y en lugar de sumar divida.

20 Agosto, 2015, 07:15 am
Respuesta #5

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
De acuerdo, ya indagué un poco más. Pude realizar suma:

Código: [Seleccionar]
class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,0,1,9,5,3};
    int suma = 0;

    for(int i=0;i<matricula.length;i++){

           suma+=matricula[i];
    }
    System.out.println("La suma es igual a: " +suma);

   }
}

Realizando un for, quedó perfecto. Después intenté hacerlo con las demás operaciones ( resta, multiplicación y división) pero no pude hacer que funcionara, intenté pero no puedo :s lo dejé así pero todos suman:

Código: [Seleccionar]
class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,0,1,9,5,3};
    int suma = 0;
    int resta = 0;
    int multi = 1;
    int div = 0;

    for(int i=0;i<matricula.length;i++){

           suma+=matricula[i];
   resta+=matricula[i];
           multi+=matricula[i];
           div+=matricula[i];
    }
    System.out.println("La suma es igual a: " +suma);
    System.out.println("La restauki aaaaes igual a: " +resta);
    System.out.println("La multiplicacion es igual a: " +multi);
    System.out.println("La division es igual a: " +div);
   }
}

dónde debo modificar para que se realice cada función?...


AH, ya veo

NO uses         suma+=matricula

Usa    suma=suma+matricula                Aunque es lo mismo, escribe así para que tu programa sea más facil de leer, no ganas nada escribiendo de forma resumida.



Para resta pon     resta=resta-matricula       lo que escribiste fue suma para todos


y así sucesivamente, ¿Ves tu error?
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

20 Agosto, 2015, 07:44 am
Respuesta #6

Antoniio

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 261
  • Karma: +0/-0
  • Sexo: Masculino
De acuerdo, tienes razón. Bien, la suma y la multiplicación están perfectas, la división lógicamente no me permitía correr el programa por el error del 0 así que lo quité, de todas maneras me envía un resultado erróneo al igual que la resta, este es el code:

Código: [Seleccionar]
class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,1,9,5,3};
    int suma = 0;
    int resta = 0;
    int multi = 1;
    int div = 1;

    for(int i=0;i<matricula.length;i++){

           suma=suma+matricula[i];
           resta=resta-matricula[i];
   multi=multi*matricula[i];
           div=div/matricula[i];

    }

    System.out.println("La suma es igual a: " +suma);
    System.out.println("La resta es igual a: " +resta);
    System.out.println("La multiplicacion es igual a: " +multi);
    System.out.println("La division es igual a: " +div);

   }
}

los resultados son:
27
-27
2160
0

la resta debería ser -23, pero está iniciando con el 0 que declaré arriba, el problema es que si quito ese valor de resta me manda error, osea, si lo dejo int resta; me dice que no está declarado. Lo de la división no se por qué me da 0...

20 Agosto, 2015, 07:51 am
Respuesta #7

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
...

los resultados son:
27
-27
2160
0

la resta debería ser -23, pero está iniciando con el 0 que declaré arriba, el problema es que si quito ese valor de resta me manda error, osea, si lo dejo int resta; me dice que no está declarado. Lo de la división no se por qué me da 0...


Es que así como planteas el programa no se le puede pedir más, la suma resta y multiplicación están "aceptables".

En cuanto a la división si divides cero entre cualquier número te dará 0, ¿no lo sabías?

Algo que puedes hacer es inicializar todas las variables (suma,resta,...) como matricula[0]    (quiero decir por ejemplo int suma=matricula[0],...)  y en el ciclo for inicia i=1.

Pruébalo y estúdialo.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

20 Agosto, 2015, 08:34 am
Respuesta #8

Antoniio

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 261
  • Karma: +0/-0
  • Sexo: Masculino
Si lo sabía Haha pero no estoy dividiendo entre cero, es porque es entero que me da el 0 :3

Ahora sólo cambiaré el 0 de la matrícula por un -1, eso ya lo he hecho antes, a ver como me va en java.

Gracias, está resuelto :3

20 Agosto, 2015, 08:48 am
Respuesta #9

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Si lo sabía Haha pero no estoy dividiendo entre cero, es porque es entero que me da el 0 :3
...

Ah claro.




Yo me había referido erróneamente a tu anterior código

...

Realizando un for, quedó perfecto. Después intenté hacerlo con las demás operaciones ( resta, multiplicación y división) pero no pude hacer que funcionara, intenté pero no puedo :s lo dejé así pero todos suman:

class operaciones {
  public static void main(String[] args){
   
    int matricula[] = {2,1,4,2,0,1,9,5,3};
    int suma = 0;
    int resta = 0;
    int multi = 1;
    int div = 0;

   ...
dónde debo modificar para que se realice cada función?...
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...