16/09/2019, 05:19:31 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Puedes practicar LATEX con el cómodo editor de Latex online
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Cómo operar números de un arreglo  (Leído 5470 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Antoniio
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« : 19/08/2015, 10:29:16 pm »

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:
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.
En línea
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #1 : 19/08/2015, 11:43:21 pm »

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
En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #2 : 20/08/2015, 01:34:51 am »

De acuerdo, ya indagué un poco más. Pude realizar suma:

Código:
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:
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?...
En línea
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #3 : 20/08/2015, 01:48:19 am »

Seguramente es porque la división por cero no está permitida.
En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #4 : 20/08/2015, 02:10:12 am »

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.
En línea
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #5 : 20/08/2015, 02:15:13 am »

De acuerdo, ya indagué un poco más. Pude realizar suma:

Código:
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:
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?
En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #6 : 20/08/2015, 02:44:10 am »

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:
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...
En línea
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #7 : 20/08/2015, 02:51:46 am »

...

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.
En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #8 : 20/08/2015, 03:34:00 am »

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
En línea
ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #9 : 20/08/2015, 03:48:33 am »

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?...
En línea

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

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 8.358



Ver Perfil
« Respuesta #10 : 20/08/2015, 06:01:52 am »


la resta debería ser -23, pero está iniciando con el 0...

Hola. En resta, define  “resta = matricula [ 0 ] ”, de esta forma te irá restando al primer elemento de la lista (o sea, 2 en este caso) los demás; y te dará -23. Creo que eso es lo que quieres, si estoy entendiendo, que no estoy seguro.

Saludos.

Bueno, ahora que lo pienso si haces eso te empieza restando 2-2 no 2-1. Para que te reste el siguiente pudes cambiar la línea de ejecución del bucle por

resta=resta-matricula[i+1]

con un condicional "if" antes para que cuando llegue al último no se produzca un error





Pones la sentencia de la resta la última y delante el condicional

if (i+1 == matricula.length) {break};

supongo que funcionará, ejecutará todas las demás menos ésa última, así no se ejecuta par i+1
 

(Ingamrov ya había dicho lo mismo que yo en cuanto a lo de la inicialización, no había leído)



En línea

ingmarov
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Honduras Honduras

Mensajes: 4.270



Ver Perfil
« Respuesta #11 : 20/08/2015, 08:23:25 pm »

Spoiler (click para mostrar u ocultar)
(Ingamrov ya había dicho lo mismo que yo en cuanto a lo de la inicialización, no había leído)



[/color]

Bueno feriva, al menos ya no me siento tan solo de haber sido ignorado en esta sugerencia.  :sonrisa_amplia: :sonrisa_amplia: :sonrisa_amplia:
En línea

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

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 8.358



Ver Perfil
« Respuesta #12 : 20/08/2015, 10:03:48 pm »



Bueno feriva, al menos ya no me siento tan solo de haber sido ignorado en esta sugerencia.  :sonrisa_amplia: :sonrisa_amplia: :sonrisa_amplia:

Es que me salto cosas al leer porque veo menos que un galápago en lejía  :tranqui: (es una frase de un humorista español :cara_de_queso: )
En línea

argentinator
Consultar la FIRMAPEDIA __________________________________________________________________________________________________________________
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 7.275

Vean mis posts activos en mi página personal


Ver Perfil WWW
« Respuesta #13 : 21/08/2015, 02:32:05 am »

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:
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...

La división es entera, sin decimales.
Si divides 1 por cualquier número mayor, te da 0.
A partir de ahí, las demás divisiones todas darán 0.
En línea

Antoniio
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #14 : 22/08/2015, 05:12:57 pm »

En efecto, gracias!, así quedó el código:

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

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

if (matricula[i]==0){matricula[i]=-1;}

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

    }
    System.out.println("La matricula es: (2,1,4,2,0,1,9,5,3) ");
    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);


   }
}

Perfecto y andando :3
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!