Hi,
ich habe ein Programm geschrieben, welches ein Feld in verschiedenster Weise bearbeitet.
Am Anfang wird gefragt wie das "Grundfeld" sehen soll (wie groß und mit welchen Werten) und dieses Feld soll dann bearbeitet werden.
Folgende Sachen soll man mit dem Feld machen können:
-neues Element einfügen
-Element löschen
-Ein Element im Feld suchen
-Prüfen ob leeres Feld
Wenn ich jedoch z.B. im Ausgansfeld ein Element lösche, dann löscht er es erst.
Aber wenn ich dieses geänderte Feld weiterbearbeiten möchte, ändert er wieder nur das Grundfeld.
Hier mein Programm:
FÜr Hilfe wäre ich danbkar
ich habe ein Programm geschrieben, welches ein Feld in verschiedenster Weise bearbeitet.
Am Anfang wird gefragt wie das "Grundfeld" sehen soll (wie groß und mit welchen Werten) und dieses Feld soll dann bearbeitet werden.
Folgende Sachen soll man mit dem Feld machen können:
-neues Element einfügen
-Element löschen
-Ein Element im Feld suchen
-Prüfen ob leeres Feld
Wenn ich jedoch z.B. im Ausgansfeld ein Element lösche, dann löscht er es erst.
Aber wenn ich dieses geänderte Feld weiterbearbeiten möchte, ändert er wieder nur das Grundfeld.
Hier mein Programm:
Java:
boolean programm_running = true; //Programm läuft
System.out.print("Wie gross soll das Ausgangsfeld sein? ");
int gr = sc.nextInt();
int[] afeld = new int[gr]; // afeld = Ausgansfeld
for(int i = 0; i < gr; i++){
System.out.print("Wert Feld " + (i+1) + ": ");
afeld[i] = sc.nextInt();
}
int l = afeld.length;
while(programm_running){
System.out.println("\nWas möchten Sie mit diesem Feld machen? ");
System.out.println("1 - Prüfung auf leeres Feld");
System.out.println("2 - Neues Element in das Feld einfügen");
System.out.println("3 - Ein Element im Feld löschen");
System.out.println("4 - Ein Element im Feld suchen");
System.out.println("------------------------------------------");
System.out.println("5 - Programm beenden");
System.out.print("\nIhre Auswahl: ");
int menue = sc.nextInt();
if(menue == 1){
boolean status = false;
if( l == 0){
status = true;
System.out.println("Das Feld ist leer!");
} else{
status = false;
System.out.println("Das Feld ist gefüllt!");
}
}
if(menue == 2){
System.out.print("\nWelche Zahl soll eingefügt werden? ");
int x = sc.nextInt();
System.out.print("An welcher Stelle soll " + x + " eingefügt werden ");
int pos = sc.nextInt();
pos = pos-1;
int[] b = afeld;
int[] felda = new int[l+1];
for(int i = 0 ; i < l; i++){
felda[i] = b[i];
}
if( pos < l ){
for(int i = l ; i < pos ; i++){
felda[i] = afeld[i-1];
}
felda[pos] = x;
} else{
if(pos == l){
felda[pos] = x;
}
}
//Ausgabe des veränderten Feldes
System.out.println("\nIhr neues Feld: \n");
for(int i = 0 ; i < l; i++){
System.out.print(felda[i] + " ");
}
System.out.println("");
}
if(menue == 3){
System.out.print("\nDie Zahl an welcher Stelle im Feld soll gelöscht werden? ");
int pos = sc.nextInt();
pos = pos-1;
// b <-- afeld
int[] b = afeld;
if((pos+1) < l){
for(int i = (pos+1); i < l; i++){
b[i-1] = b[i];
}
}
int[] a = new int[l-1]; //Neues Feld vom Typ wie afeld mit Länge l-1
System.out.println();
//Ausgabe des veränderten Feldes
System.out.println("Ihr neues Feld: ");
for(int i = 0; i < l-1; i++){
a[i] = b[i];
System.out.print(a[i] + " ");
}
System.out.println();
}
if(menue == 4){
System.out.print("Bitte geben Sie eine Zahl ein : ");
int x = sc.nextInt();
for(int i = 0; i < l; i++){
if(x == afeld[i]){
int pos = i;
System.out.println(x + " liegt an der " + (pos+1) + ". Stelle");
}
}
}
if(menue == 5){
programm_running = false;
System.out.println("Das Programm wurde beendet!");
}
}
FÜr Hilfe wäre ich danbkar