Java - JAVA Asignar Valores

 
Vista:
sin imagen de perfil
Val: 66
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JAVA Asignar Valores

Publicado por Osvaldo (60 intervenciones) el 01/10/2020 21:14:18
Saludos a todos vuelvo a consultar, es que estoy trabajando en el siguiente enunciado de la empresa que me la encomendaron. Deseo conocer sus criticas y opiniones sobre la resolución a la que llegue. Espero la ayuda de ustedes. Gracias por todo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*Ingresar por teclado dos números, validando que sean enteros positivos.
Asignar un valor a una variable de acuerdo a las sgtes condiciones
Si el 1ro. es divisible por el 2do. (solamente), asignar el valor 10.
Si el 2do. es divisible por el 1nro. (solamente), asignar el valor 25.
Si ambos son divisibles entre sí, asignar el valor 50
Si ambos no son divisibles entre sí, asignar el valor 0.
Repetir este proceso para 60 pares de valores.  */
package asignar;
import java.util.Scanner;
public class Asignar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nro1 =1 , nro2 =1, auxnro;
        nro1 = sc.nextInt();
        nro2 = sc.nextInt();
         while (nro1  != 0 && nro2  != 0) {
            for (nro1 =1 ; nro1 <= 60 ; nro1++) {
            if (nro1%nro2 ==0) {
                  auxnro = 10;
            }
                   if ( nro2%nro1 ==0) {
                  auxnro = 25;
                  }
            if ( nro1%nro2 ==0 && nro2%nro1 == 0) {
                auxnro = 50;
            }
               else if (nro1%nro2 !=0 && nro2%nro1 != 0) {
                   auxnro = 0;
           }
            }
        }
        }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JAVA Asignar Valores

Publicado por Rodrigo (623 intervenciones) el 02/10/2020 02:16:41
La lectura de datos se tiene que hacer dentro del ciclo, sino iteraras 60 veces con los mismos datos.

Sugiero comenzar la secuencia de ifs con la expresion
nro1%nro2 ==0 && nro2%nro1 == 0

los siguientes else, dado que lo de arriba fue false, o bien alguno de los 2 items fue != 0 o ambos.
Comparas en el siguiente else una de las opciones, en el siguiente la otra opcion y en el ultimo nada (es superfluo poner un if() ahi), puesto que no hay mas alternativas.

Sugiero imprimir el valor de auxnro para que compruebes que la asignacion es correcta.

Sabes hacer funciones?
Tal vez te conviene hacer de esto una funcion y que tu programa sea del estilo:

1
2
3
4
repetir 60 veces {
  pedir valor1 y valor2
  valor3 = asignar( valor1, valor2 )
}

es mas facil probar esto porque podrias hacer codigo de pruebas como:

1
2
3
probar( asignar( 8, 2 ), 10 )
probar( asignar( 2, 8 ), 25 )
...

y la funcion probar recibe 2 numeros, los compara y reclama si no son iguales
o bien

1
2
3
probar( 8, 2, 10 )
probar( 2, 8, 25 )
...

y la funcion probar toma los 2 numeros, invoca la funcion asignar, y reclama si el valor que se retorna es igual al tercer parametro.

Agregando el codigo de pruebas te ahorras probar manualmente a cada rato tu programa. Haces primero el codigo de pruebas y cada vez que reclame, analizas que esta mal y lo reparas hasta que no haya mas problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 66
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JAVA Asignar Valores

Publicado por Osvaldo (60 intervenciones) el 03/10/2020 20:34:58
Eternamente agradecido por su ayuda. Lamentablemente no se hacer funciones. Me pido inicializar el auxnro. No me da ningún resultado al ejecutar el código. Vuelvo a adjuntar el código. Por favor vuelvo a solicitar su ayuda y criticas. GRACIAS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package asignar;
import java.util.Scanner;
public class Asignar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nro1 =1 , nro2 =1, auxnro =0;
               while (nro1  != 0 && nro2  != 0) {
            for (nro1 =1 ; nro1 <= 60 ; nro1++) {
                  nro1 = sc.nextInt();
                  nro2 = sc.nextInt();
          if (nro1%nro2 ==0 && nro2%nro1 ==0){
                            auxnro = 10;
          }
          else {
                             auxnro = 25;
          }
                if ( nro1%nro2 ==0 && nro2%nro1 == 0) {
                auxnro = 50;
            }
               else {
                   auxnro = 0;
           }
            }
            System.out.println("AUXILIAR:" + auxnro);
        }
        }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar