Es ist also noch gar nicht klar, wie lang das Array werden soll. Statt es mit einer Konstante zu belegen, kann der Anwender hier selber entscheiden, wie viele Zahlen abgezählt werden sollen. Wichtig ist ferner: arr [ i ] += tot womit gezählt wird und die Definition tot = arr [ i ] um eine Variable ausgeben zu können.

Damit Java's Index nicht immer irritiert, wurde im Output ein kleiner Eingriff arr [ i ] + 1 vorgenommen. Das Wichtigste sind aber folgende Änderungen in der for Schleife. Die neue Variable braucht keinen Parameter, da jede Zahl ein Wert für sich ist: zah += tot und tot = zah sind entstanden. Es werden also nicht nur die Belegungen des Index, sondern auch Ihre Eingaben addiert und ausgegeben. Auch; denn arr.length bleibt zur Orientierung erhalten. Achten Sie ferner auf den Programmablauf; also die Reihenfolge der Kommandos!

Um den maximalen Wert ohne Math.max ( a, b ) zu ermitteln, also im Array beliebiger Länge, muss zumindest zweimal gezählt werden. Der Übersichtlichkeit wegen, habe ich viele der obigen Möglichkeiten der Belegungen weggelassen.
1.) Die erste for Schleife nimmt Ihre Zahlen auf und belegt nacheinander das gesamte Array mit diesen Zahlen arr [ i ] = zah
2.) Dann wird die Variable max als Array definiert aber vorerst mit dem Parameter 0 und so ist das Maximum im kleinsten Fall 0 eben.
3.) Das Ermitteln des Maximums liest sich im Pseudocode der zweiten Schleife etwa so: wenn grössere Werte im Array - also arr [ i ] - hinzukommen, wird das Maximum neu definiert mit max = arr [ i ]
4.) Das gilt natürlich auch für negative Zahlen, denn -5 ist z.B. kleiner als 0 und so wäre 0 das Maximum.

Freilich werden Minimum und Maximum in einem Programm benötigt. Doch hierbei ist jeweils eine eigene Zählroutine notwendig. Bei der Gelegenheit können Sie wieder die Anzahl der Zahlen selber bestimmen. Vergessen Sie aber nicht die Deklaration, die gleich zu Beginn stehen muß.
Der Unterschied zwischen Minimum und Maximum ist im Kern schnell hervorgehoben: max < arr [ i ] also Maximum kleiner als die Werte des Arrays wird in min > arr [ i ] verwandelt, was im Pseudocode etwa Minimum größer als die Werte des Arrays heißt.

Die konstante Deklaration des Arrays ist hier etwas anders als in C++ aber gleichermassen unkompliziert.
Wieder sind zwei Hauptschleifen nötig: die eine berechnet, die andere gibt aus. Innerhalb der Hauptschleifen werden die Elemente der Zeilen und die Elemente der Spalten gezählt.
Wichtig sind die Bedingungen: int i = 0; i < koor.length; i++ und dann int j = 0; j < koor [ i ].length; j++ was die Spalten auf die Elemente der Zeilen begrenzt.

Die Fortführung mit Variablen zu obigem Progrämmchen und damit verbunden der Scanner dürfte keine Probleme mehr bereiten. Beachten Sie nur, die Koordinaten mit int [ ][ ] koor = new int [ a ][ b ] erst nach der Aufnahme der Zeilen und Spalten zu deklarieren.
Bei der Gelegenheit nenne ich zwei Kommandos zum Text: \ t ist ein Tabulator und \ n ist ein Absatz. Dann ergibt sich, daß System.out.println ( " \ n " ) eine neue Zeile samt Leerzeile erzeugt. Diese Kommandos sind mit denen in C++ und in JavaScript identisch.

Wäre ganz praktisch, wenn man im Laufe eines Programms in der Hauptklasse nicht unübersichtlich viele Zählschleifen hätte. Wäre also noch praktischer, diese Routine in die Klasse zu schreiben und in der Subklasse, die Superklasse mit knappem Kommando nur aufzurufen...

Verglichen mit struct und record ist es erheblich einfacher ein neues Objekt zu erzeugen. Notwendig hierfür sind zwei Zählschleifen: eine nimmt die Werte auf und die andere gibt diese aus.
Auch in Java ist der kleine Eingriff für die Startposition nötig: for ( i = 1 ... ) um nicht bei 0 zu beginnen.

Da hier nur bestimmte Eingaben erlaubt sein sollen, bauen wir eine while Schleife ein. Sobald die Bedingungen erfüllt sind geht das Programm dazu über, diesen Parameter für die Erstellung neuer Objekte zu definieren und die Zählroutinen abzuarbeiten.
In der for Schleife konnte i = 1 nicht definiert werden, weil darauffolgend i <= anz die Ausgabe streiken lässt.
Daher eine andere Methode: for ( i = 0 ; i < anz ; i++ ) ... und in der Ausgabe System.out.println ( ( i + 1 ) + " ...

Startseite  |  Hinweise und Impressum  |  Facebook  |  Twitter  |  Google plus