Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Algorithmen (http://www.informatikerboard.de/board/board.php?boardid=17)
----- Zahlenliste erstes Vorkommen eines Elements bestimmen (http://www.informatikerboard.de/board/thread.php?threadid=4347)


Geschrieben von Lalelilolu am 11.01.2021 um 18:15:

  Zahlenliste erstes Vorkommen eines Elements bestimmen

Meine Frage:
Ich hab folgende Aufgabe zu lösen stehe allerdings selber total auf dem Schlauch.

Gegeben ist der abstrakte Datentyp ?Zahlenliste?, Listen von Zahlen speichern und manipulieren können soll mittels folgender Operationen:
- Zahlenliste(): Konstruktor, erzeugt eine leere Zahlenliste
- anfügen(z): Fügt die Zahl z am Ende der aktuellen Liste ein
- auslesen(p): Liest die Zahl an der Position p aus und gibt diese zurück. Positionen in der Liste
beginnen bei 1.
- schreiben(p, z): Überschreibt die Zahl an Position p mit der Zahl z
- entfernen(p): Entfernt die Zahl an Position p
- anzahl(): Liefert die aktuelle Anzahl der Zahlen in der Zahlenliste
Die Pseudocode-Funktion ?ErstesVorkommen? soll das erste Vorkommen der Zahl x in der Zahlenliste L finden und die Position zurückgeben. Wenn die Zahl x in der Zahlenliste L gar nicht vorkommt, soll die Funktion als Ergebnis -1 liefern.
Füllen Sie die Lücken:
function ErstesVorkommen input L: Zahlenliste
x: Zahl, deren erste Position in der Liste L gesucht werden soll output Position des ersten Vorkommens der Zahl x in der Zahlenliste L
begin
for i := _____ to _____ do
z := _____
if _____ then
return i end
end
return _____ end
L := Zahlenliste()
L.anfügen(3)
L.anfügen(-8)
L.anfügen(7)
L.anfügen(1)
L.anfügen(7)
p := ErstesVorkommen(L, 7)
output p # gibt aus: _____

Vielen Dank schonmal für eure Hilfe!

Meine Ideen:
Erste Lücke: 1
Zweite Lücke: Länge(L)
Die Elemente der menge sollen ja Element für Element durchgegangen werden. Allerdings gibt die Länge ja die Anzahl an Elementen in der Menge und nicht das letzte Element an. Muss ich da also etwas anderes nutzen?
Dritte Lücke: keine Idee
Ich verstehe leider nicht so wirklich was ich mit z anstellen soll.
Vierte Lücke: z ungleich x
Es geht ja schließlich um den vergleich von x mit den anderen Elementen. Aber ist das hier die richtige Stelle und muss ich z mit x vergleichen?
Fünfte Lücke: i=i+1
Es sollen ja alle Elemente nacheinander verglichen werden.
Letzte Lücke: 3
Da die Zahlenliste scheinbar 3, -8, 7, 1, 7 lautet



Geschrieben von as_string am 13.01.2021 um 10:42:

 

Bei der zweiten Lücke: Die Funktion für die Länge von L heißt aber "L.anzahl()" und nicht "Länge(L)"
Ich denke, in der 3. Lücke soll z die Zahl zugewiesen werden, die an der aktuellen Stelle in der Liste steht (also an Stelle i von Liste L).
vierte Lücke: Aber er soll doch bei Gleichheit das aktuelle i zurück geben, also doch nicht wenn z ungleich x, sondern bei z gleich x, oder?
5. Lücke: Da soll der Rückgabewert stehen, bei Auffinden. Also einfach nur ein i
Das erhöhen von i macht die for-Schleife doch schon automatisch, da musst Du innerhalb der Schleife selbst kein i:=i+1 mehr machen!
Ja, bei der letzten sollte eine 3 raus kommen.

Gruß
Marco


Forensoftware: Burning Board, entwickelt von WoltLab GmbH