Looking for SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen test answers and solutions? Browse our comprehensive collection of verified answers for SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen at elearning.tgm.ac.at.
Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!
Der nächste Schritt verspricht interessanter zu werden, doch zunächst wird wieder indexZähler
erhöht und mit der Länge verglichen.
Nachdem die Länge noch immer nicht erreicht wurde, wird nun das Zeichen mit Index 3 geholt - das Zeichen - und in die Variable gespeichert. Wenn nun der Inhalt dieser Variablen mit dem Wert der Variablen verglichen wird, dann wird festgestellt, dass diese beiden Zeichen gleich sind. Da wir nun das Zeichen gefunden haben, müssen wir uns merken, wo dieses Zeichen steht. Deshalb wird der Wert von kopiert.e
aktuellesZeichen
gesuchtesZeichen
indexZähler
in die Variable indexMerken
Danach wird wieder erhöht und die Schleife macht nach dem gleichen Prinzip weiter. Erst wenn nicht mehr kleiner als die Länge des Textes ist, hört die Schleife auf.indexZähler
indexZähler
Wie man an diesem Ablauf sieht, hört die Suche nicht sofort auf, sobald ein passendes Zeichen gefunden wurde. Falls das gesuchte Zeichen 2-Mal oder öfter im Text vorhanden ist, wird auch immer wieder der neu gefundene Index in der Variablen gespeichert. Das führt dazu, dass am Schluss nur der Index des zuletzt gefundenen Zeichens in der Variable indexMerken
indexMerken
gespeichert ist.
Wenn man dies nicht möchte und dem Computer unnötige Sucharbeit ersparen möchte, kann man eine zweite Bedingung zur Schleife hinzufügen. Diese zweite Bedingung könnte z.B. angeben, dass die Schleife nur wiederholt wird, solange noch negativ ist (zusätzlich zum Vergleich ob noch kleiner ist als die Länge des Textes ist).indexGefunden
indexZähler
Setze nun die Tabelle aus der vorherigen Aufgabe fort. Zur Erinnerung: es wird der Buchstabe n
im Wort Sonne
gesucht.
gesuchtesZeichen: n
indexMerken | indexZähler | aktuellesZeichen | Text | Länge |
---|---|---|---|---|
-1 | 0 | S | 5 | |
-1 | 1 | o | 5 | |
Laut dem Algorithmus wird das Zeichen n
bei Index Nummer gefunden.
Im Folgenden ist ein Beispielablauf Schritt für Schritt abgebildet. Dazu schauen wir uns in jeder Zeile die Werte von den oben besprochenen Variablen an. Zum einfacheren Verständnis ist auch noch die Länge des Textes extra angeführt.
Bevor wir mit dem eigentlichen Algorithmus beginnen, muss das gesuchte Zeichen und der Text, in dem gesucht werden soll, festgelegt werden. Dadurch ergibt sich auch die Länge des Textes.
Der Algorithmus startet, in dem die Variablen auf -1 und wird dazu verwendet, ein Zeichen aus dem Text zu holen. Wenn sie auf 0 ist, „zeigt" sie auf das erste Zeichen (= das Zeichen mit dem Index 0).indexMerken
indexZähler
auf 0 gesetzt wird. Die Variable indexZähler
Mit Hilfe von wird ein Zeichen geholt und in die Variable gespeichert. Dieses wird dann mit dem Inhalt der Variablen indexZähler
aktuellesZeichen
gesuchtesZeichen
verglichen.
Nachdem der Wert in nicht mit dem Wert inaktuellesZeichen
gesuchtesZeichen
übereinstimmt, wird indexMerken
nicht verändert. Anschließend wird indexZähler
erhöht und wieder zum Anfang der Schleife gesprungen. Dort wird indexZähler
mit der Länge des Textes verglichen und die Schleife dann wiederholt, wenn der Wert in indexZähler
kleiner als die Länge ist.
Nun zeigt auf ein neues Zeichen (das Zeichen mit Index 1), das wieder geholt, in gespeichert und dann verglichen wird. Nachdem auch dieses Zeichen nicht mit dem Wert in übereinstimmt, wird indexZähler
aktuellesZeichen
gesuchtesZeichen
indexMerken
wieder nicht verändert.
Der Wert in wird erhöht und mit der Länge verglichen. Die Länge wurde noch nicht erreicht und so wird auch das nächste Zeichen geholt, gespeichert und - ohne anderes Ergebnis - verglichen.indexZähler
Versuche nun in ähnlicher Weise die ersten 2 Zeilen für so eine Tabelle aufzustellen, wenn der Buchstabe n
im Wort Sonne
gesucht wird.
gesuchtesZeichen:
indexMerken | indexZähler | aktuellesZeichen | Text | Länge |
---|---|---|---|---|
Im Folgenden ist ein Beispielablauf Schritt für Schritt abgebildet. Dazu schauen wir uns in jeder Zeile die Werte von den oben besprochenen Variablen an. Zum einfacheren Verständnis ist auch noch die Länge des Textes extra angeführt.
Bevor wir mit dem eigentlichen Algorithmus beginnen, muss das gesuchte Zeichen und der Text, in dem gesucht werden soll, festgelegt werden. Dadurch ergibt sich auch die Länge des Textes.
Der Algorithmus startet, in dem die Variablen auf -1 und wird dazu verwendet, ein Zeichen aus dem Text zu holen. Wenn sie auf 0 ist, „zeigt" sie auf das erste Zeichen (= das Zeichen mit dem Index 0).indexMerken
indexZähler
auf 0 gesetzt wird. Die Variable indexZähler
Mit Hilfe von wird ein Zeichen geholt und in die Variable gespeichert. Dieses wird dann mit dem Inhalt der Variablen indexZähler
aktuellesZeichen
gesuchtesZeichen
verglichen.
Nachdem der Wert in nicht mit dem Wert inaktuellesZeichen
gesuchtesZeichen
übereinstimmt, wird indexMerken
nicht verändert. Anschließend wird indexZähler
erhöht und wieder zum Anfang der Schleife gesprungen. Dort wird indexZähler
mit der Länge des Textes verglichen und die Schleife dann wiederholt, wenn der Wert in indexZähler
kleiner als die Länge ist.
Nun zeigt auf ein neues Zeichen (das Zeichen mit Index 1), das wieder geholt, in gespeichert und dann verglichen wird. Nachdem auch dieses Zeichen nicht mit dem Wert in übereinstimmt, wird indexZähler
aktuellesZeichen
gesuchtesZeichen
indexMerken
wieder nicht verändert.
Der Wert in wird erhöht und mit der Länge verglichen. Die Länge wurde noch nicht erreicht und so wird auch das nächste Zeichen geholt, gespeichert und - ohne anderes Ergebnis - verglichen.indexZähler
Versuche nun in ähnlicher Weise die ersten 2 Zeilen für so eine Tabelle aufzustellen, wenn der Buchstabe n
im Wort Sonne
gesucht wird.
gesuchtesZeichen:
indexMerken | indexZähler | aktuellesZeichen | Text | Länge |
---|---|---|---|---|
Der Ablauf einer Suche durch die Überprüfung jedes einzelnen Zeichens sieht im Flussdiagramm folgendermaßen aus:
Dieser Ablauf wird "Lineare Suche" genannt und ist das grundlegende Verfahren, um zu durchsuchen. Die Daten und Variablen im obigen Ablauf haben folgende Bedeutung:
Text : Der Text ist die Datenmenge, die durchsucht werden soll. Dieser muss entweder eingelesen oder durch eine andere Möglichkeit zur Verfügung gestellt werden (z.B. als Parameter, wenn die Suche innerhalb einer Methode stattfindet).
: Das ist das Zeichen, das im Text gesucht werden soll. Wie schon der Text muss auch dieses Zeichen entweder eingelesen werden, oder über andere Möglichkeiten dem Algorithmus zur Verfügung gestellt werden.gesuchtesZeichen
: In dieser Variable "merkt" sich das Programm an welcher Stelle - genauer bei - das Zeichen gefunden wurde. Damit am Schluss überprüft werden kann, ob überhaupt ein passendes Zeichen gefunden wurde, wird am Anfang der Wert auf -1 gesetzt. Dieser Wert (-1) kann als Index nicht vorkommen (ein Index beginnt immer bei 0) und kann deswegen auch kein gültiger "Merk-Wert" innerhalb der Schleife sein. Wenn am Schluss der ganze Text durchsucht wurde (d.h. wenn die Schleife aufgehört hat) und diese Variable immer noch den Wert -1 hat, dann weiß man, dass kein passendes Zeichen gefunden wurde.indexMerken
: Mit Hilfe von dieser Variable wird der ganze Text Index für Index durchgegangen. Daher muss diese Variable bei 0 beginnen und aufhören, wenn der letzte Index erreicht wurde. Damit muss diese Variable immer einen Wert haben, der die Länge ist (z.B. hat das Wort Objekt eine Länge von 6 aber der letzte Index beim Buchstaben t hat den Wert 5).indexZähler
: Das ist da Zeichen, das gerade an Stelle im Text steht, auf die der gerade "zeigt". Dieses wird mit der Variablen verglichen und wenn beide übereinstimmen, dann wird der Wert von gespeichert. Damit wird sich der Index dieses Zeichens gemerkt.aktuellesZeichen
indexZähler
gesuchtesZeichen
indexZähler
in die Variable indexMerken
Der Text muss
Die Variable gesuchtesZeichen
muss ebenfalls
Die Aufgabe der Variable
In der Variablen
indexZähler
im Text steht.Wenn das Zeichen in aktuellesZeichen
mit dem Zeichen in gesuchtesZeichen
übereinstimmt, dann wird der Index von aktuellesZeichen
in der Variablen
Wenn die Variable
Der Ablauf einer Suche durch die Überprüfung jedes einzelnen Zeichens sieht im Flussdiagramm folgendermaßen aus:
Dieser Ablauf wird "Lineare Suche" genannt und ist das grundlegende Verfahren, um zu durchsuchen. Die Daten und Variablen im obigen Ablauf haben folgende Bedeutung:
Text : Der Text ist die Datenmenge, die durchsucht werden soll. Dieser muss entweder eingelesen oder durch eine andere Möglichkeit zur Verfügung gestellt werden (z.B. als Parameter, wenn die Suche innerhalb einer Methode stattfindet).
: Das ist das Zeichen, das im Text gesucht werden soll. Wie schon der Text muss auch dieses Zeichen entweder eingelesen werden, oder über andere Möglichkeiten dem Algorithmus zur Verfügung gestellt werden.gesuchtesZeichen
: In dieser Variable "merkt" sich das Programm an welcher Stelle - genauer bei - das Zeichen gefunden wurde. Damit am Schluss überprüft werden kann, ob überhaupt ein passendes Zeichen gefunden wurde, wird am Anfang der Wert auf -1 gesetzt. Dieser Wert (-1) kann als Index nicht vorkommen (ein Index beginnt immer bei 0) und kann deswegen auch kein gültiger "Merk-Wert" innerhalb der Schleife sein. Wenn am Schluss der ganze Text durchsucht wurde (d.h. wenn die Schleife aufgehört hat) und diese Variable immer noch den Wert -1 hat, dann weiß man, dass kein passendes Zeichen gefunden wurde.indexMerken
: Mit Hilfe von dieser Variable wird der ganze Text Index für Index durchgegangen. Daher muss diese Variable bei 0 beginnen und aufhören, wenn der letzte Index erreicht wurde. Damit muss diese Variable immer einen Wert haben, der die Länge ist (z.B. hat das Wort Objekt eine Länge von 6 aber der letzte Index beim Buchstaben t hat den Wert 5).indexZähler
: Das ist da Zeichen, das gerade an Stelle im Text steht, auf die der gerade "zeigt". Dieses wird mit der Variablen verglichen und wenn beide übereinstimmen, dann wird der Wert von gespeichert. Damit wird sich der Index dieses Zeichens gemerkt.aktuellesZeichen
indexZähler
gesuchtesZeichen
indexZähler
in die Variable indexMerken
Der Text muss
Die Variable gesuchtesZeichen
muss ebenfalls
Die Aufgabe der Variable
In der Variablen
indexZähler
im Text steht.Wenn das Zeichen in aktuellesZeichen
mit dem Zeichen in gesuchtesZeichen
übereinstimmt, dann wird der Index von aktuellesZeichen
in der Variablen
Wenn die Variable
Wer immer schon die Such-Funktion des Betriebssystems oder in einem Texteditor verwendet hat, weiß wie praktisch es ist, Daten nach bestimmten Dingen zu durchsuchen. Wenn die Daten keine bestimmte Reihenfolge haben, wie z.B. üblicherweise die Buchstaben in einem Text, dann ist es notwendig, diese Buchstaben/Zeichen einem nach dem anderen zu überprüfen.
Dazu sollte man sich vor Augen führen, dass ein String aus einzelnen Buchstaben, die mit Hilfe eines Index herausgesucht werden können, besteht:
Die Länge des Textes Suche
ist
Der Index des Buchstabens S
in Suche
ist
Der Buchstabe beim Index 2 in Suche
ist
Der Index des Buchstabens e
in Suche
ist
Mit Referenzvariablen läuft es zunächst ganz ähnlich ab. Wenn sie deklariert werden, wird zunächst eine leere Variable auf dem Stack erzeugt.
String text1;
Wenn dieser -Variablen jedoch ein Text zugewiesen wird, dann kann dieser Text -Variablen gespeichert werden. Texte können beliebig groß sein. Daher kann man nicht wie bei einfachen Datentypen von vornherein eine bestimmte Anzahl an Bytes als Größe festlegen. Deshalb sind Texte als umgesetzt worden. Objekte werden auf einem viel größeren Speicherbereich dem (engl. für Haufen) gespeichert. Damit man sie dort findet wird in der Variablen am Stack eine auf dieses Objekt abgelegt. Diese Referenz (bzw. Verweis) kann man sich als Adresse vorstellen oder als Schnur zum Objekt am Heap oder auch als Fernsteuerung, mit der ich das Objekt am Heap ansprechen kann. In Grafiken stelle ich sie meist als Pfeil dar. Die folgende Zeile erzeugt ein und speichert die Referenz zu diesem Objekt in der Variablen String
String
String
-Objekt mit dem Inhalt Ich mag SEW!text1
:
text1 = "Ich mag SEW!";
Die lokale Variable selbst wird auch bei Referenzdatentypen im -Bereich des Arbeitsspeichers angelegt.
Der "Inhalt" einer Referenzvariablen (z.B. der Text) wird in einem Speicherbereich namens gespeichert.
Im Heap werden alle
Der Text, den wir in eine String
-Variable speichern wollen (z.B. Ich mag SEW!), ist also auch ein und wird am gespeichert.
Damit ein Objekte am Heap gefunden werden kann, wird eine auf dieses Objekt benötigt.
Diese Referenz wird dann in die am Stack gespeichert.
Welche der folgenden Umschreibungen kann man für den Begriff "Referenz!" verwenden?
Das folgende Bild zeigt anschaulich die Organisation eines Stacks und eines Heaps. Dabei ist 0 der und 1 der
(Und auf dem Heap findet man eben ohne Referenzen kaum das gesuchte Kleidungsstück )
Eine lokale Variable wird im Arbeitsspeicher angelegt (erinnere dich an das Konservenglas-Bild). Der Bereich des Arbeitsspeichers, in dem lokale Variablen angelegt werden, wird (engl. für Stapel) genannt. Das folgende Programmstück deklariert zwei Variablen für ganze Zahlen auf dem Stack.
public classMeinProgramm {
public static void
main(String[] args) {
int
zahl1;
int
zahl2;
Diese zwei Anweisungen erzeugen zwei leere Variablen, die noch keinen Inhalt haben. Man könnte sich das entsprechende Speicherbild so vorstellen:
Erst wenn die Variablen mit einem Wert initialisiert werden, haben sie auch einen Wert in ihrem Speicherbereich im Stack gespeichert.
zahl1 = 75;
zahl2 = -
19;
Diese Werte werden bei einfachen Variablen
Lokale Variablen werden in einem speziellen Bereich des Arbeitsspeichers angelegt, der genannt wird.
Direkt nach der Deklaration (noch vor der Initialisierung) ist der Speicherbereich der Variablen
Bei lokalen Variablen von einfachen Datentypen wird der zugewiesene Wert
Bei welchen Datentypen werden die Werte der lokalen Variablen direkt im Stack gespeichert?
Bei welchen Datentypen werden die Werte der lokalen Variablen NICHT im Stack gespeichert?
Gegeben ist folgende Klasse und Methode (die Methode ist in der gegebenen Klasse definiert):
Ergänze die folgenden Aussagen, so dass sie für diese Methode zutreffen.
Die gegebene Klasse befindet sich im Package .
Dieses Package
Die gegebene Methode ist in der Klasse definiert.
Der Name der Methode lautet .
Das Schlüsselwort in der API-Dokumentation dieser Methode zeigt an, dass es sich um eine
Klassenmethoden werden grundsätzlich mit .
aufgerufen.
Diese Methode wird daher konkret mit .
aufgerufen.
Wieviele Parameter hat die Methode?
Alle Parameter haben den Datentyp .
Daher wird für die Parameter jeweils
Welche der folgenden Werte wäre ein gutes Beispiel für einen Aktualparameter, der für diesen Parameter eingesetzt werden kann.
Diese Methode benötigt
Der Rückgabetyp der Methode ist , deshalb muss auch die Auffangvariable den Typ haben.
Deklariere eine passende Auffangvariable mit dem Namen ergebnis
:
Schreibe einen Aufruf für diese Methode hin, die das Ergebnis in die bereits deklarierte Variable namens ergebnis
speichert. Als Parameter sollen jeweils Werte verwendet werden, die 1/2 darstellen. Achte auf den Datentyp des Parameters.
Im Gegensatz zu den bisherigen Schleifen ( ) steht bei fußgesteuerten Schleifen die Bedingung erst in der -Schleife (manchmal auch einfach nur while
und for
do
-while
do
-Schleife genannt). Sie ist folgendermaßen aufgebaut:
In der Kopfzeile befindet sich lediglich das Schlüsselwort . Anschließend beginnt der Schleifenblock mit einer geschwungenen Klammer. Erst in der Fußzeile findet man neben dem Schlüsselwort auch die Laufbedingung. Wichtig ist hier auch noch, dass die fußgesteuerte Schleife do
while
Bei der fußgesteuerten Schleife steht die Bedingung
Die Kopfzeile der fußgesteuerten Schleife in Java besteht nur aus dem Schlüsselwort .
Wie bei den anderen Kontrollstrukturen wird der Block der Schleife durch begonnen und durch beendet.
Das Schlüsselwort steht am Ende der Schleife nach dem Schleifenblock und gibt an, dass jetzt die Bedingung folgt.
Wie bei den kopfgesteuerten Schleifen handelt es sich bei der Bedingung um eine . Sie besagt, dass die Schleife weiter läuft, solange die Bedingung
Gerne vergessen wird der Abschluss der Schleifenanweisung mittels .
Im Gegensatz zur kopfgesteuerten Schleife,
Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!