Array?

3 Antworten

Ich mache die kleinen Aufgaben immer gerne mit Streams, weil die schön kurz und übersichtlich sind. Vermutlich sollt ihr das aber mit Schleifen lösen.

import java.util.Arrays;
import java.util.Random;

public class Feldarbeiten {
	// Es geht um Ganzzahlen, also deklarieren wir ein int-Array
	int[] zahlen;
	
	// Konstruktor
	public Feldarbeiten(int n) {
		// Das Array wird gefüllt mit
		zahlen = new Random() // zufälligen
					.ints() // Ganzzahlen (ohne Beschränkung, also zwischen -2147483648 und 2147483647)
					.distinct() // ohne Duplikate
					.limit(n) // Anzahl: n
					.toArray();
	}
	
	// Die kleinste Zahl des Arrays wird zurückgegeben
	public int minimum() {
		return Arrays.stream(zahlen).min().getAsInt();
	}
	
	// Die Summe der Zahlem im Array wird zurückgegeben
	// (da die einzelnen Werte im Array unbegrenzt sind, kann es gut sein, 
	// dass die Summe zu groß oder zu klein für ein int ist und die Methode
	// eine Fehlermeldung ausgibt)
	public int summe() {
		return Arrays.stream(zahlen).sum();
	}
}


Also erstmal hat eine Konstruktor als Rückgabetyp die Klasse selbst. Das double[] ist also völliger Unsinn.

Dann hast du die Variablen "feldarbeiten" und "n" nirgends definiert. "feldarbeiten" sollte ein Attribut der Klasse sein und n ein Parameter des Konstruktors.

class Example

  double attribute;

  public Example(double parameter) {
    attribute = parameter;
  }

}

Dieses Beispiel sollte diese beiden Punkte erklären.

Um die Summe eines Arrays zu berechnen musst du durch das Array iterieren und dabei die jeweiligen Werte zu einer Summenvariable addieren. Um das Minimum zu erhalten, iteriere und vergleiche mit einer Minimumvariable. Ist der Wert kleiner als das derzeitige Minimum, wird dies das neue Minimum.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.

Ich mache mal ein beispiel in Python

from random import randint


def minimum(array):
    minZahl = array[0]
    for i in range(1,len(array)):
       if array[i]<minZahl:
           minZahl = array[i]
    return minZahl
array = []
n = 10
for i in range(n):
    array += [randint(1,100)]
print(*array)
print(minimum(array))
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
Tentucky 
Fragesteller
 10.03.2022, 19:40

Wir müssen es in BlueJ machen wäre das das Selbe?

0
whgoffline  10.03.2022, 19:41
@Tentucky

Ähnlich die einzelnen Elemente wie die For-Schleife und das If kannst du (fast) 1 zu 1 übertragen.

0