/**************************************************************************************
***************************************************************************************
				Übungsblatt 7, Aufgabe 3
		Gruppe: Madlen Frieseke, Carsten Kötter, Erik Streb
***************************************************************************************
**************************************************************************************/


public class Maxsum {

	// schreibt die als Argumente übergebenen Zahlen in eine int[]
	public int[] Stringlist2Intlist(String[] daten){
		int[] liste = new int[daten.length];
		for (int i=0; i<daten.length; i++) liste[i]=Integer.parseInt(daten[i]);
		return liste;
	}

	// sucht die Teilliste, mit der maximalen Summe und gibt die Summe zurück
	public int suchsum(int[] liste){
		int max=0, testsumme;
		for (int i=0; i<liste.length; i++){
			for (int j=i; j<liste.length; j++){
				testsumme=0;
				for (int k=i; k<=j; k++){
					testsumme=testsumme+liste[k];
				}
				if (testsumme>max){
					max=testsumme;
				}
			}
		}
		return max;
	}

	public static void main(String[] args) {
		Maxsum maxi = new Maxsum();
		System.out.println("Maximale Summe einer Teilliste ist: "+maxi.suchsum(maxi.Stringlist2Intlist(args)));
	} //Ende von void main
} //Ende von class Maxsum



/* Pseudocode für die Ermittlung der Teilliste (einer Liste von ganzen Zahlen) mit der größten Summe:
=====================================================================================================	
Eine Frage noch: Wozu soll man Pseudocode schreiben, wenn man das Programm schon in Java geschrieben hat??? Was
hat das bitte für einen Sinn? Kannste im Tutorium ja mal verraten. :)
	
	maximalesumme:=0
	for i = erstes bis letztes Element der Liste
		for j = aktuelles i bis letztes Element der Liste
			testsumme:= Summe aller Zahlen vom i-ten bis zum j-ten Element aus der Liste
			wenn testsumme größer als maximalesumme, dann soll maximalesumme:=testsumme
		ende der j-Schleife
	ende der i-Schleife

*/
