Java - Proceso que permita ingresar 200 números validando que sean menores a 1000

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

Proceso que permita ingresar 200 números validando que sean menores a 1000

Publicado por Juan (24 intervenciones) el 12/09/2020 21:12:57
Saludos a todos. Necesito sus criticas para poder aprender, para saber si mi resolución del enunciado es la correcta. Por favor espero sus comentarios. Muchas 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
28
29
30
31
32
/*proceso que permita ingresar 200 números validando que sean menores a 1000.
Imprimir el valor mínimo y la suma de todos los valores
*/
package logic;
import java.util.Scanner;
 
public class Logic {
 
 
 
 
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
      int nro= 0;
      int menor = 9999;
 
      while (nro <1000){
 
      }
        for(nro =0; nro<201; nro++){
            System.out.println("Ingrese numero");
            nro = sc.nextInt();
            if (nro  < menor){
                menor = nro;
            }
            System.out.println("El número menor es :" + menor);
 
 
    }
 
}
}
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Proceso que permita ingresar 200 números validando que sean menores a 1000

Publicado por Kabuto (1381 intervenciones) el 12/09/2020 21:43:00
Este bucle.

1
2
3
while (nro <1000){
 
}

Esta vacío, no hace nada. No influye ni condiciona nada.

Recomiendo, antes de meterse a escribir código, hacer un pseudocódigo sencillo para tener las ideas claras.
Nos piden:
- ingresar 200 números
- validar que sean menores que 1000,es decir, si es mayor, esta entrada no contaría y el contador de 200 números no se vería afectado
- mostrar el valor mínimo introducido
- mostrar la suma de TODOS los valores.


Entonces, necesitaremos una variable para contar los 200 números, otra para controlar cuál es el valor más bajo y otra para acumular la suma de los valores aceptados.
El valor mínimo ha de comenzar con un valor que nos sirva para comparar, puesto que solo aceptaremos números menores que 1000, pues cualquier número de 1000 para arriba nos sirve para inicializar esta variable

- cantidad = 200
- mínimo = 1000
- suma = 0

Cada vez que aceptemos un número, podemos restar -1 a la variable cantidad, así cuando llegue a 0, el bucle que usamos para pedir valores finalizará.

1
mientras cantidad > 0 ...

Cada número introducido, solo trabajaremos con el si es menor que 1000. Si no lo es, no hacemos nada, si a caso un mensaje informando, el bucle se repetirá y pedirá otro valor

1
2
3
4
5
mientras cantidad > 0
    leer numero
    si numero >= 1000
        escribir "El numero ha de ser menos que 1000"
    si no .....

OK. Si el número es válido, tenemos que hacer tres cosas:
- acumular en la variable suma
- comprobar si es menor que el valor que tenemos en variable mínimo.
Si es menor, actualizamos el valor de esta variable. Si no lo es, no hacemos nada.
- restar -1 a la variable cantidad

Tras esto, el bucle mientras(while) se repite hasta que cantidad llegue a 0.
Y ya entonces, mostramos resultados

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mientras cantidad > 0
    leer numero
    si numero >= 1000
        escribir "El numero ha de ser menos que 1000"
    si no
 
        suma = suma  + numero
 
        si numero < minimo
            minimo = numero
 
        cantidad = cantidad - 1
 
fin mientras
 
escribir "El valor mínimo es: " + minimo
escribir "La suma de todos los valores es: " + suma


Con este simple pseudocódigo, ya se ve más claramente la lógica que ha de seguir el programa para cumplir lo que pide el enunciado.

Prueba a transcribirlo a Java y si surgen problemas, publícalo aquí y lo comentamos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Proceso que permita ingresar 200 números validando que sean menores a 1000

Publicado por Juan (24 intervenciones) el 12/09/2020 22:09:28
Muchas gracias por la enorme ayuda. Eternamente agradecido. Lo transcribir y lo publicare.
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: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda JavaProceso que permita ingresar 200 números validando que sean menores a 1000

Publicado por Juan (24 intervenciones) el 12/09/2020 22:28:54
Lo transcribi, no surgieron inconvenientes, segui su instrucción. Muchas gracias. Adjunto lo que escribí en Java.


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
34
35
36
37
38
39
package logic;
import java.util.Scanner;
 
public class Logic {
 
 
 
 
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
      int nro =0;
      int minimo = 1000;
      int cantidad=200;
      int suma =0;
 
      while (cantidad >0){
 
          if (nro >=0) {
 
                  System.out.println("El numero debe ser menor a 1000");
      }
 
      else {
 
              suma = suma + nro;
              if (nro < minimo) {
                  minimo = nro;
              }
 
              cantidad = cantidad -1;
              }
 
            System.out.println("El número menor es :" + minimo);
            System.out.println("La suma de todos lo valores es: " +suma);
 
    }
 
}
}
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
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

Ayuda Java

Publicado por Rodrigo (623 intervenciones) el 13/09/2020 01:40:31
Tienes que corregir esta condicion:

nro >=0

por

nro >= 1000

y pareciera que los System.out estuvieran dentro del ciclo y no fuera de el?
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

Ayuda Java

Publicado por Juan (24 intervenciones) el 14/09/2020 21:08:22
Gracias por su apoyo. Realice la modificación. Al final del código adjunto y/o pego lo devuelto al ejecutar el mencionado código. Muchas 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
28
29
30
31
32
33
34
35
36
37
38
39
public class Logic {
 
 
 
 
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
      int nro =0;
      int minimo = 1000;
      int cantidad=200;
      int suma =0;
 
      while (cantidad >0){
 
          if (nro >=1000) {
 
                  System.out.println("El numero debe ser menor a 1000");
      }
 
      else {
 
              suma = suma + nro;
              if (nro < minimo) {
                  minimo = nro;
              }
 
              cantidad = cantidad -1;
 
 
 
            System.out.println("El número menor es :" + minimo);
            System.out.println("La suma de todos lo valores es: " +suma);
 
              }
 
    }
 
}
}



La suma de todos lo valores es: 0
El número menor es :0
La suma de todos lo valores es: 0
El número menor es :0
La suma de todos lo valores es: 0
El número menor es :0
La suma de todos lo valores es: 0
El número menor es :0
La suma de todos lo valores es: 0
BUILD SUCCESSFUL (total time: 1 second)
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Java

Publicado por Kabuto (1381 intervenciones) el 14/09/2020 22:39:35
Los System.out que muestran los resultados, han de ir fuera del while, después de que este haya terminado
No tendremos resultados hasta que no se hayan leído los 200 números.

1
2
3
4
5
6
7
8
9
si numero < minimo
            minimo = numero
 
        cantidad = cantidad - 1
 
fin mientras
 
escribir "El valor mínimo es: " + minimo
escribir "La suma de todos los valores es: " + suma


Y te falta una cosa importante, no estás pidiendo ningún número al usuario.
Es lo primero que tiene que hacer el bucle cada vez que se repite, leer número por teclado.

1
2
3
4
5
mientras cantidad > 0
    leer numero
    si numero >= 1000
        escribir "El numero ha de ser menos que 1000"
    si no

Otra cosa, para probar el programa, meter 200 números por teclado es una locura.
Para hacer la prueba, baja el valor de la variable cantidad a 10, ó a 20 como mucho..., pero no 200 ... -_-x
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
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

Ayuda Java

Publicado por Rodrigo (623 intervenciones) el 14/09/2020 22:39:43
Te falta leer el numero desde la entrada y no sacaste los System.out.println fuera del ciclo, aun los veo al interior del ciclo. Ponlos despues de la llave de cierre del ciclo while que tienes.
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

Ayuda Java

Publicado por Juan (24 intervenciones) el 15/09/2020 21:09:48
Gracias por sus aportes y ayudas. Vuelvo a adjuntar la resolución.


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
34
35
public class Logic {
 
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
 
      int nro =0;
      int minimo = 1000;
      int cantidad=200;
      int suma =0;
 
      nro = sc.nextInt();
      while (cantidad >0){
 
          if (nro >=1000) {
 
                  System.out.println("El numero debe ser menor a 1000");
      }
 
      else {
 
              suma = suma + nro;
              if (nro < minimo) {
                  minimo = nro;
              }
 
              cantidad = cantidad -1;
 
              }
 
    }
       System.out.println("El número menor es :" + minimo);
       System.out.println("La suma de todos lo valores es: " +suma);
 
}
}
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda Java

Publicado por Kabuto (1381 intervenciones) el 16/09/2020 00:37:00
Pides el número, justo antes de que comience el bucle, eso implica que solo se pedirá una vez

1
2
3
4
5
6
7
8
9
10
11
12
13
14
nro = sc.nextInt(); //Está fuera del bucle while
while (cantidad >0){
 
if (nro >=1000) {
 
System.out.println("El numero debe ser menor a 1000");
}
 
else {
 
suma = suma + nro;
if (nro < minimo) {
minimo = nro;
}

Ha de ir DENTRO del bucle, para que cada ciclo que el while repita, se pida un nuevo número al usuario


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while (cantidad >0){
 
nro = sc.nextInt(); //Ahora está dentro del bucle
 
if (nro >=1000) {
 
System.out.println("El numero debe ser menor a 1000");
}
 
else {
 
suma = suma + nro;
if (nro < minimo) {
minimo = nro;
}

Y por último, si ponemos un mensaje en pantalla, mejor. Si no el usuario solo verá una ventana negra que parece no hacer nada, pero lo que pasa es que está esperando que el usuario introduzca un número.
Y mejor informarle sobre lo que tiene que hacer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (cantidad >0){
 
System.out.print("Introduzca un número: ")
nro = sc.nextInt();
 
if (nro >=1000) {
 
System.out.println("El numero debe ser menor a 1000");
}
 
else {
 
suma = suma + nro;
if (nro < minimo) {
minimo = nro;
}
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

Ayuda Java

Publicado por Juan (24 intervenciones) el 16/09/2020 21:29:29
Muchas Gracias. Por su aporte. Eternamente agradecido. Adjunto el código.


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
34
35
36
37
38
39
40
41
42
43
44
public class Logic {
 
 
 
 
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
 
      int nro =0;
      int minimo = 1000;
      int cantidad=200;
      int suma =0;
 
 
      while (cantidad >0){
 
          System.out.println("Introduzca un número: ");
            nro = sc.nextInt();
          if (nro >=1000) {
 
                  System.out.println("El numero debe ser menor a 1000");
      }
 
      else {
 
              suma = suma + nro;
              if (nro < minimo) {
                  minimo = nro;
              }
 
              cantidad = cantidad -1;
 
 
 
 
 
              }
 
    }
       System.out.println("El número menor es :" + minimo);
       System.out.println("La suma de todos lo valores es: " +suma);
 
}
}
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