/*

Gör ett program som beräknar medelvärdet på ett givet antal heltal.
Användaren skall få mata in det önskade antalet tal, sedan skall talen läsas
in av användaren.

Använd gärna skilda metoder för de olika delarna av programmet.

*/

import java.io.*;
import javagently.*;

class Medelvarde2 {

	static BufferedReader Input;

	// beräknar och returnerar ett medelvärde
	public static float medelvarde (int[] Tal) {

		// initiera en summa till 0
		int Summa = 0;
		
		// iterera över alla element i Tal
		for ( int Index = 0; Index < Tal.length; Index++ ) {
			// addera talet till summan
			Summa = Summa + Tal[Index];
			
			// alternativt:
			// Summa += Tal;
		}

		// returnera ett medelvärde. Notera att vi typkonverterar talen till
		// float för att undvika en heltalsdivision!
		return (float)Summa / (float)Tal.length;
	}


	// fyller arrayen Tal med tal som användaren givit
	public static void lasTal (int[] Tal) {
		
		// iterera över alla element i Tal
		for ( int Index = 0; Index < Tal.length; Index++ ) {
			// fyll aktuell position med ett slumpmässigt tal
			// i områden 0 till 100
			Text.prompt ( "Ge tal " + (Index + 1 ) + ": " );

			// läs ett tal
			try {
				Tal[Index] = Text.readInt ( Input );
			}
			catch (IOException E) {
				// något gick snett
				System.out.println ( "Kunde inte läsa tal!" );
				System.exit ( 1 );
			}
			
		}
	}

	// fråga efter antalet tal
	public static int fragaAntal () {
		
		int Antal = 0;
	
		// iterera tills ett godkänt tal lästs in
		while ( true ) {
			// skriv en prompt
			Text.prompt ( "Antalet tal: " );

			// fösök läsa ett tal
			try {
				Antal = Text.readInt ( Input );
			}
			catch (IOException E) {
				// något gick snett
				System.out.println ( "Kunde inte läsa tal!" );
				System.exit ( 1 );
			}
			
			// är tal > 0?
			if ( Antal > 0 ) 
				// ja, returnera det
				return Antal;
			else
				System.out.println ( "Talet måste vara > 0!" );
		}
	}
	

	// huvudmetod
	public static void main (String[] args) {

		// öppna standard input för läsning
		Input = Text.open ( System.in );

		// fråga efter antalet tal
		int Antal = fragaAntal ();
		
		// skapa en array som kan hålla tillräckligt många tal
		int[] Tal = new int [Antal];

		// fyll arrayen med slumptal
		lasTal ( Tal );
		
		// beräkna medelvärdet på alla genererade tal
		float Medel = medelvarde ( Tal );
		
		// skriv ut svaret
		System.out.println ( "Medelvärdet av " + Tal.length + " tal är: " + Medel );
	}
}

