Informatik klasse Liste programmieren?

4 Antworten

Laufe durch die einzelnen Elemente des Arrays und schau je Element, ob dessen Wert dem gesuchten Wert entspricht. Findest du es, kannst du mit return die Methode sofort beenden, ansonsten wird halt -1 zurückgegeben.

Mal dir ein Aktivitätsdiagramm dazu. Danach wird dir die konkrete Implementation um einiges einfacher fallen.

ich verstehe nicht ganz wie ich anfangen soll ,da ich auch nicht das Programm verfüge und erst seit 1 Monat das ganze mit dem programmieren gemacht habe .
es wäre wirkliche eine Riesen Hilfe ,wenn sie mir helfen könnten wie ich beginne und wie ich das ganze aufschrieben muss ?

0
@regex9

alles klar , vielen Dank .
wie soll ich dann weiter vorgehen ?

public class Liste

hatListe = new Liste ;

... ?

0
@Aylin6638

Hast du den Programmablaufplan denn schon? So lange der nicht steht, brauchst du überhaupt keinen Code schreiben. Der Sinn ist, den Ablaufplan nach Fertigstellung 1-1 zu übersetzen, als würdest du gerade einen englischen Artikel in die deutsche Sprache übersetzen. Die Kontrollelemente von Java sind genauso primitiv wie die für den Plan.

0
@regex9

Ja die Grundlage habe ich schon und mein Programm läuft auch schon für einige Sachen wie MinSuche ,MaxSuche , Knopf Beenden , Knopf alles löschen

0
@regex9

und nun weiß ich halt nicht wie ich dies machen soll und dann richtig aufschrieben soll ,da ich absolut nicht weiterkomme

0
@Aylin6638

Schreib doch einmal die von deinem Ablaufplan übersetzte Funktion auf. MinSuche, etc. sind irrelevant. Es geht nur um diese eine Funktion.

0
@regex9

ich habe leider kein Zugang auf mein Programm w o dies steht :(

0
@regex9

Ich benötige nur ein anstatz (Programmiersprache ) wie ich das machen soll , ich habe wirklich keine Ahnung wie ich das machen soll .

tut mir wirklich leid für die Störung :(

0
@Aylin6638

Das ist doch überhaupt nicht notwendig. Du hast doch nun den Programmablaufplan. Alle anderen relevanten Informationen (Namen der Elemente) stehen oben in der Aufgabenstellung.

1
@Aylin6638

Den Ansatz habe ich dir bereits gegeben. Wenn du ihn aber nicht befolgst bzw. tatsächlich darauf eingehst, wird das auch nichts. Nachschlagen bezüglich der Java Syntax kannst du auf verschiedenen Online-Seiten, wie den Oracle Tutorials.

1
@regex9

ich Entschuldige mich wirklich vielmals ,dass ich das nicht so verstehe :

public int indexElement(int pSuchelement)

{

Int zFeld ; 

Int zAnzahl;

{ if (indexElement == int pSuchelement , 

  IndexElemenf == z Feld , indexElement == zAnzahl ) 

{

then  ...   

}

Return -1 

}

0
@Aylin6638

Was soll denn hier genau passieren?

if (indexElement == int pSuchelement , 
  IndexElemenf == z Feld , indexElement == zAnzahl )
1
@regex9

Das war komplett falsch ,wollte das eigentlich mit den Elementen vergleichen ,ob dessen Wert dem gesuchten Wert entspricht. 

0
@Aylin6638

Dann schau zuerst, wie du das allererste Element eines Arrays in einer Variable speichern kannst. Und dann, wie du es mit dem gesuchten Wert vergleichen kannst.

Den Schleifen-Tipp von xxxcyberxxx würde ich erst einmal nach hinten schieben. Nur ein Element vergleichen zu können, wäre schon einmal ein guter Anfang.

0
@regex9

ein Element vergleicht man doch mit ==

0
@regex9

Können sie mir vielleicht ein Beispiel schicken damit ich mich orientieren kann ?

0
@regex9

public int indexElement(int pSuchelement) {

  //

  if ( zFeld == pSuchelement)

 { 

else if (zAnzahl == pSuchelement) 

  }

{then... 

}

Return -1

}

0
@Aylin6638
if ( zFeld == pSuchelement)

An der Stelle vergleichst du noch das Array mit einer Zahl. Stell dir das Array wie einen Schrank mit mehreren Fächern vor. In jedem Fach liegt eine Zahl. Um eine Zahl, die außen vor dem Schrank steht, mit einer Zahl in einem der Fächer zu vergleichen, musst du das Fach erst öffnen und die jeweilige Zahl daraus holen.

Mit

zFeld[irgendein Index]

wird ein Element aus dem Array geholt. http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_03_007.htm#mj11a4689950bdbe50e0c6342eb22737a6

Der Rest passt in der Syntax auch noch nicht. Schau dir nochmal deine Klammern an und überlege, was du derzeit tust und warum.

Wie gesagt, der erste Ansatz sollte dieser sein:

Dann schau zuerst, wie du das allererste Element eines Arrays in einer Variable speichern kannst. Und dann, wie du es mit dem gesuchten Wert vergleichen kannst.
1
@regex9

Wie soll ich das denn speichern ,meinen sie damit deklarieren ?
int [ ] zFeld ; ?

0
@regex9

Vielen Dank nochmals ,dass du soviel Zeit in mein Problem investierst

0
@regex9

Können sie mir vielleicht einen Lösungsweg zu dieser Aufgabe mitteilen ,ich komme echt garnicht weiter . Wie sehr ich das auch will :(

0

nur zum Verstädnis: deine Liste speichert dann auch nur Integer?

einfach mit einer for-schleife darüber iterieren und das gesuchte mit dem Momentanen Element vergleichen. Wenn diese gleich sind, einfach den Index zurückgeben

nach der Schleife entsprechend dann -1

public int indexElement(int pSuchelement)

{

Int zFeld ; 

Int zAnzahl;

{ if (indexElement == int pSuchelement , 

  IndexElemenf == z Feld , indexElement == zAnzahl ) 

{

then  ...   

}

Return -1 

}

0
@Aylin6638
  1. bitte nutz nächstes mal den Code tag
  2. du musst nicht zFeld und zAnzahl explizit neu initialisieren - du sollst ja auf der Klasse arbeiten, und damit auf dem in der Klasse Liste gespeicherten Listen-Objekt ...

dann schau dir mal an, wie eine Schleife aussieht (Hinweis: for-Schleife wäre hier hilfreich). Und halte dich an den Java-Styleguide für die Klammerung:

public int indexElement(int pSuchelement) {
  // do stuff
  if ( ... ) {
    // do more stuff
  }
}
0
@xxxcyberxxx

Soll ich also anstatt einer if schleife eine Form Schleife nutzen ? Warum ist diese eigentlich besser geeignet ?

0
@Aylin6638

if ist keine Schleife sondern dient zur einmaligen Überprüfung einer Bedingung (wenn Himmel ist blau, tue irgendwas). Mit Schleifen wie for kannst du einen Ablauf einfach wiederholen, statt ihn n-Mal hintereinander aufschreiben zu müssen.

1
@regex9

Das ist sehr hilfreich vielen Dank :)

0
@xxxcyberxxx

Können sie mir vielleicht ein möglichen Lösungsweg zeigen ? Ich weiß echt garnicht wie ich das machen soll :/ vielen lieben Dank im Voraus

0

Die Methode kann man in Java so implementieren:

class Liste {
    int[] zFeld;
    int zAnzahl;

    public int indexElement(int pSuchelement) {
        for (int i = 0; i < zAnzahl; i++) {
            if (zFeld[i] == pSuchelement) {
                return i;
            }
        }
        return -1;
    }

   // .... weiterer Code ...
}

Es wird in der Methode jedes Element im Array zFeld durchgegangen und überprüft, ob das momentane Element gleich dem gesuchten Element ist.

Falls das so ist, wird der Index vom momentanen Element zurückgegeben und falls die for-Schleife komplett durchläuft, ohne ein passendes Element zu finden, wird -1 zurückgegeben.

vielen. Vielen Dank muss ich noch etwas ergänzen ?
wofür steht das i und warum ist zwischen int und zAnzahl keine eckige Klammer ?

nochmals tausend dank :)

0
@Aylin6638

Nein, ich hab nur im Kommentar "weiterer Code" erwähnt, weil in die Klasse zumindest noch ein Konstruktor gehört, damit das gültiger Java-Code ist. Das ist aber nicht in der Aufgabe gefordert.
i ist eine integer-Variable und ist die Zählvariable, die nach jedem Schleifendurchlauf um 1 erhöht wird. Die stellt im Prinzip den index dar, den man gerade im array betrachtet.
Bei zAnzahl stehen nicht diese eckigen Klammern [], weil das kein array ist. Das ist eine einzelne integer-variable, in der die Länge des arrays zFeld gespeichert wird.

1
@Nilsneun

alles klar vielen Dank , muss ich also jetzt noch das ganze mit zAnzahl machen ?

0
@Aylin6638

Nicht böse gemeint, aber bist Du sicher, daß Du damit anfangen solltest?

Dir fehlen einfach noch die Grundlagen. Schau mal hier:
http://openbook.rheinwerk-verlag.de/javainsel/
Da gibt es ein recht passables Buch, mit dem Du wirklich von vorne und bei den Grundlagen anfangen kannst.

Programmieren macht Spaß, aber wenn Du Dich am Anfang überforderst, dann kann das auch sehr schnell frusten. Und das soll ja nicht Sinn der Sache sein.

Viel Erfolg!

1

Wo hängt es denn? Mach du so weit und so gut wie du kannst, dann können wir helfen.

Ich weiß nicht genau wie ich anfangen soll , ein Java Programm hab ich leider nicht . Muss daher einen Quellcode machen

0

Was möchtest Du wissen?