Hallo liebe Community,
ich habe ein Problem mit einem Einsendeaufgabe meines Fernstudiums. Ich bin gerade bei Arrays und ich soll ein eindimensionales Array erzeugen durch die Eingabe von Zahlen in die Konsole. So funktioniert das auch jedoch soll eine untere und eine obere Grenze geben und nur die Zahlen innerhalb der Grenzen sollen ausgegeben werden. Und hier ist mein Problem. Wie bekomme ich es hin, die Zahlen innerhalb der Grenze in ein neues Array zu speichern, auf dem ich dann weitere Methoden anwenden kann, wie sortieren, kleinster Wert, größter Wert usw.
Wie funktioniert das? Ich habe das Forum schon durchsucht und beiße mir langsam die Zähne daran aus. Kann mir jemand helfen?
Hier ist die momentane Ausgabe:
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 4
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 5
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 1
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): -10
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 9
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 2
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 0
Zahlen der Reihung: [4, 5, 1, -10, 9, 2, 0, 0, 0, 0]
Sortierte Reihung: [4, 5, 1, -10, 9, 2, 0, 0, 0, 0]
Obere erlaubte Grenze: 5
Untere erlaubte Grenze:-5
Korrekte Eingaben: 4
Falsche Eingaben: 2
Der kleinste Wert der Reihung: -10
Der größte Wert der Reihung: 9
Die Summe der Zahlen aus der Reihung: 11
Und so sollte sie aussehen:
Zahlen der Reihung: [4, 5, 1, 2]
Sortierte Reihung: [1, 2, 4, 5]
Obere erlaubte Grenze: 5
Untere erlaubte Grenze:-5
Korrekte Eingaben: 4
Falsche Eingaben: 2
Der kleinste Wert der Reihung: 1
Der größte Wert der Reihung: 5
Die Summe der Zahlen aus der Reihung: 12
Testklasse:
Danke und Gruß
Celi
ich habe ein Problem mit einem Einsendeaufgabe meines Fernstudiums. Ich bin gerade bei Arrays und ich soll ein eindimensionales Array erzeugen durch die Eingabe von Zahlen in die Konsole. So funktioniert das auch jedoch soll eine untere und eine obere Grenze geben und nur die Zahlen innerhalb der Grenzen sollen ausgegeben werden. Und hier ist mein Problem. Wie bekomme ich es hin, die Zahlen innerhalb der Grenze in ein neues Array zu speichern, auf dem ich dann weitere Methoden anwenden kann, wie sortieren, kleinster Wert, größter Wert usw.
Wie funktioniert das? Ich habe das Forum schon durchsucht und beiße mir langsam die Zähne daran aus. Kann mir jemand helfen?
Hier ist die momentane Ausgabe:
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 4
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 5
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 1
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): -10
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 9
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 2
Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): 0
Zahlen der Reihung: [4, 5, 1, -10, 9, 2, 0, 0, 0, 0]
Sortierte Reihung: [4, 5, 1, -10, 9, 2, 0, 0, 0, 0]
Obere erlaubte Grenze: 5
Untere erlaubte Grenze:-5
Korrekte Eingaben: 4
Falsche Eingaben: 2
Der kleinste Wert der Reihung: -10
Der größte Wert der Reihung: 9
Die Summe der Zahlen aus der Reihung: 11
Und so sollte sie aussehen:
Zahlen der Reihung: [4, 5, 1, 2]
Sortierte Reihung: [1, 2, 4, 5]
Obere erlaubte Grenze: 5
Untere erlaubte Grenze:-5
Korrekte Eingaben: 4
Falsche Eingaben: 2
Der kleinste Wert der Reihung: 1
Der größte Wert der Reihung: 5
Die Summe der Zahlen aus der Reihung: 12
Java:
import java.util.Arrays;
public class Reihung {
int anzKorrekt;
int anzFalsch;
int summe = 0;
int min = 0;
int max = 0;
int temp = 0;
int maxAnzahl = 10;
int untereGrenze = -5;
int obereGrenze = 5;
int[]reihung = new int[maxAnzahl];
/** Konstruktor fuer eine Reihung
*
* @param maxAnzahl
* Die Laenge der Reihung wird hier gespeichert.
* @param untereGrenze
* Die untere Grenze der erlaubten einzugebenden Zahlen.
* @param obereGrenze
* Die obere Grenze der erlaubeten einzugebenden Zahlen.
*/
public Reihung(int maxAnzahl, int untereGrenze, int obereGrenze){
}
public Reihung(int[] reihung){
}
/**
* Methode zum einlesen der Werte fuer die Reihung.
*
*/
public void einlesen() {
for(int i = 0; i < reihung.length; i++ ){
reihung[i] = Konsole.getInputInt("Bitte geben Sie ein Zahl zwischen -5 und 5 ein (0 beendet das Programm): ");
if(reihung[i] == 0){
break;
}else if((reihung[i] >= untereGrenze) && (reihung[i] <= obereGrenze)){
anzKorrekt++;
} else {
anzFalsch++;
}
}
}
public int getMin() {
int minIndex = 0;
for(int i = 1; i < reihung.length; i++){
if(reihung[i] < reihung[minIndex]){
minIndex = i;
}
}
min = reihung[minIndex];
return min;
}
public int getMax() {
int maxIndex = reihung.length-1;
for(int i = 0; i < reihung.length; i++){
if(reihung[i] > reihung[maxIndex])
maxIndex = i;
}
max = reihung[maxIndex];
return max;
}
public int berechneSumme() {
for(int i = 0; i < reihung.length; i++){
summe += reihung[i];
}
return summe;
}
public int[] sortiereReihung(){
int temp;
for (int i = 1; i < reihung.length; i++) {
for(int j = 0; j < reihung.length-i; j++ ) {
if(reihung[i]>reihung[j+1]) {
temp = reihung[i];
reihung[i+1] = temp;
}
}
}
return reihung;
}
public String toString(){
return "\nZahlen der Reihung: " + Arrays.toString(reihung) + "\nSortierte Reihung: " + Arrays.toString(reihung) + "\nObere erlaubete Grenze: " + obereGrenze + "\nUntere erlaubte Grenze:" +
untereGrenze + "\nKorrekte Eingaben: " + anzKorrekt + "\nFalsche Eingaben: " + anzFalsch;
}
}
Testklasse:
Java:
public class ReihungTest {
public static void main(String[] args) {
Reihung arr = new Reihung(0,0,0);
arr.einlesen();
System.out.println(arr.toString());
System.out.println("Der kleinste Wert der Reihung: " + arr.getMin());
System.out.println("Der größte Wert der Reihung: " + arr.getMax());
System.out.println("Die Summe der Zahlen aus der Reihung: " + arr.berechneSumme());
}
}
Danke und Gruß
Celi