/** * @author monika heiner * @version 1.0 * @date 22.08.2001 * @class Max */ /** * Das Programm liest eine Zahlenfolge ganzer Zahlen von der * Standardeingabe und gibt das Maximum dieser Zahlenfolge * auf die Standardausgabe aus. */ // Importieren der benötigten Funktionen zum Einlesen und Anzeigen import java.util.Scanner; public class Max { /** * Die Funktion bestimmt den maximalen Wert der eingegebenen * Zahlenfolge. Wird eine leere Zahlenfolge uebergeben, so * ist das Ergebnis 0. Ist die Laenge der Zahlenfolge 1, so * ist das Ergebnis das Element dieser Zahlenfolge. In allen * anderen Faellen wird durch Iteration und Vergleich das * Maximum bestimmt, und als Ergebnis ausgewiesen. * * @param numbers Folge von ganzen Zahlen als eindimensionales Feld * @return Maximum der Zahlenfolge als ganze Zahl */ private static int max(int[] numbers) { int max; // Ergebnisvariable // bei Laenge gleich Null, Ergebnis wird zu 0 if(numbers.length == 0) { max = 0; // Laenge gleich 1, Ergebnis wird zum Wert des einzigen Elementes } else if (numbers.length == 1) { max = numbers[0]; // Iteration ueber alle Elemente zu Bestimmung des Maximums } else { max = numbers[0]; for(int i = 1;i < numbers.length;i++) { // ggf groeszeren Wert auf max setzen if (max < numbers[i]) { max = numbers[i]; } // if } // for } // if return max; } // max /** * Diese Funktion ist die Hauptfunktion des Programmes. * Die moeglichen Kommandozeilenargumente werden ignoriert. * Nach Eingabe einer Folge ganzer Zahlen wird diese Folge der * Funktion max zur Maximumbestimmung uebergeben und das * Ergebnis ausgegeben. * * @param string Kommandozeilenargumente als Feld von Strings * @return nichts */ public static void main(String argv[]) { int k = 0; // Kardinalitaet der Zahlenfolge int[] numbers; // Feld zur Aufnahme der Zahlenfolge Scanner in = new Scanner(System.in); // Eingabe Strom von der Konsole // Einlesen der Kardinalitaet der Zahlenfolge als natuerliche Zahl // vom Eingabestrom System.out.println("Wieviel Zahlen sollen verglichen werden: "); k = in.nextInt(); // Anlegen eines Feldes ganzer Zahlen in der Groesze der // Kardinalitaet numbers = new int[k]; // Einlesen der Elemente der Zahlenfolge als ganze Zahlen System.out.println("Bitte jetzt " + k + " Zahlen eingeben!"); for(int i = 0;i < k;i++) { System.out.print((i + 1) + ". Nr: "); numbers[i] = in.nextInt(); } // for // Berechnung und Ausgabe der Berechnung des Maximums der // eingegebenen Zahlenfolge System.out.println("Die groeszte Zahl ist: " + max(numbers)); } // main } // Max