Java - Ayuda! Programa para una actividad

 
Vista:
Imágen de perfil de Aby

Ayuda! Programa para una actividad

Publicado por Aby (1 intervención) el 06/12/2017 23:22:01
(soy de civil no se mucho sobre esto)Necesito estructurar un programa en java que obtenga el promedio con while y que el -1 termine el proceso, es decir, que sea el ultimo numero de las cantidades a promediar?
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda! Programa para una actividad

Publicado por Andrés (340 intervenciones) el 07/12/2017 07:33:30
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import java.util.Scanner;
 
/**
 * @author andreas
 *
 */
public class PromedioApp {
 
	//Metodo que calcula el promedio de varios numeros hasta que el usuario 
	//Introduce -1
	public static double bucle(final Scanner scanner) {
		//Indica la finalizacion del bucle
		final double TERMINAR = -1d;
		//Suma de los numeros introducidos
		double suma = 0d;
		//Numero introducido
		double numero = 0d;
		//cantidad de numeros introducidos
		int cantidad = 0;
		//Numero como string
		String numeroStr = null;
 
		//Indica al usuario lo que tiene que hacer
		System.out.println("Introduce n\u00FAmeros, -1 para terminar");
 
		//Mientra el usuario no introduzca -1
		while (TERMINAR != numero) {
		    //Obtener el numero como string
			numeroStr = scanner.next();
			//try-catch, evita errores por parseo (el usuario no introduce numeros)
			try {
				//Trata de convertir la cadena a numero (double)
				numero = Double.valueOf(numeroStr);
				//Si el usuario introduce -1, pasar a la siguiente iteracion
				if(TERMINAR == numero) {
					continue;
				}
				//incrementar la cantidad de numeros
				cantidad++;
				//incrementar la suma
				suma += numero;
 
			}catch(Exception e) {
 
				//Introdujo mal el numero, it is OK
				numero = 0d;
 
			}
 
		}
 
		//Retornar el promedio
		return suma/cantidad;
 
 
	}
 
	public static void main(String[] args) {
		//scanner de texto
		Scanner scanner = null;
		//Por si algo sale mal try-catch
		try {
 
			//El scanner se inicia para leer del teclado
			scanner = new Scanner(System.in);
			//se calcula el promedio invocando a la funcion bucle
			double promedio = bucle(scanner);
			//Impresion del mensaje 
			System.out.println("El promedio es "+promedio);
 
		}catch(Exception e) {
			//Muy mal !!!
			e.printStackTrace();
 
		}finally {
			//Pase lo qeu pase cerrar el scanner
			if(null != scanner) {
 
				scanner.close();
 
			}
 
		}
 
	}
 
}
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