logo

Crowdly

SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen

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!

Fortsetzung Beispielablauf:

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

e

- und in die Variable

aktuellesZeichen

gespeichert. Wenn nun der Inhalt dieser Variablen mit

dem Wert der Variablen

gesuchtesZeichen

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

indexZähler in die Variable indexMerken

kopiert.

Danach wird indexZähler

wieder erhöht und die Schleife macht nach dem gleichen

Prinzip weiter. Erst wenn

indexZähler

nicht mehr kleiner als die Länge

des Textes ist, hört die Schleife auf.

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

indexMerken

gespeichert. Das führt

dazu, dass am Schluss nur der Index des zuletzt gefundenen Zeichens in

der Variable

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

indexGefunden

noch negativ ist (zusätzlich zum Vergleich ob

indexZähler

noch kleiner

ist als die Länge des Textes ist).

Löse folgende Aufgabe:

Setze nun die Tabelle aus der vorherigen Aufgabe fort. Zur Erinnerung: es wird der Buchstabe n im Wort Sonne gesucht.

gesuchtesZeichen: n

indexMerkenindexZähleraktuellesZeichenTextLänge
-10S5
-11o5
 

 

Laut dem Algorithmus wird das Zeichen n bei Index Nummer gefunden.

View this question

Ein Beispielablauf

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 indexMerken

auf -1 und

indexZähler auf 0 gesetzt wird. Die Variable indexZähler

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).

Mit Hilfe von indexZähler

wird ein Zeichen geholt und in die Variable

aktuellesZeichen

gespeichert. Dieses wird dann mit dem Inhalt der

Variablen

gesuchtesZeichen verglichen.

Nachdem der Wert in aktuellesZeichen

nicht mit dem Wert in

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 indexZähler

auf ein neues Zeichen (das Zeichen mit Index 1),

das wieder geholt, in

aktuellesZeichen

gespeichert und dann verglichen

wird. Nachdem auch dieses Zeichen nicht mit dem Wert in

gesuchtesZeichen

übereinstimmt, wird

indexMerken wieder nicht verändert.

Der Wert in indexZähler

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.

 

Löse folgende Aufgabe:

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:

indexMerkenindexZähleraktuellesZeichenTextLänge

Bitte beantworten Sie alle Teile der Frage.
View this question

Ein Beispielablauf

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 indexMerken

auf -1 und

indexZähler auf 0 gesetzt wird. Die Variable indexZähler

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).

Mit Hilfe von indexZähler

wird ein Zeichen geholt und in die Variable

aktuellesZeichen

gespeichert. Dieses wird dann mit dem Inhalt der

Variablen

gesuchtesZeichen verglichen.

Nachdem der Wert in aktuellesZeichen

nicht mit dem Wert in

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 indexZähler

auf ein neues Zeichen (das Zeichen mit Index 1),

das wieder geholt, in

aktuellesZeichen

gespeichert und dann verglichen

wird. Nachdem auch dieses Zeichen nicht mit dem Wert in

gesuchtesZeichen

übereinstimmt, wird

indexMerken wieder nicht verändert.

Der Wert in indexZähler

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.

 

Löse folgende Aufgabe:

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:

indexMerkenindexZähleraktuellesZeichenTextLänge

View this question

Lineare Suche

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

unsortierte Daten

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).

  • gesuchtesZeichen

    : 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.

  • indexMerken

    : In dieser Variable "merkt" sich das Programm an welcher

    Stelle - genauer bei

    welchem Index

    - 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.

  • indexZähler

    : 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

    kleiner als

    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).

  • aktuellesZeichen

    : Das ist da Zeichen, das gerade an Stelle im Text

    steht, auf die der

    indexZähler

    gerade "zeigt". Dieses wird mit der

    Variablen

    gesuchtesZeichen

    verglichen und wenn beide übereinstimmen,

    dann wird der Wert von

    indexZähler in die Variable indexMerken

    gespeichert. Damit wird sich der Index dieses Zeichens gemerkt.

Ergänze folgende Zusammenfassung:

  • Der Text muss

    werden, BEVOR mit dem Algorithmus begonnen wird.

  • Die Variable gesuchtesZeichen muss ebenfalls

    werden, BEVOR mit dem Algorithmus begonnen wird.

  • Die Aufgabe der Variable

    ist es, alle Indexe des Textes durchzugehen, damit alle Zeichen des Textes einzeln geholt werden können.

  • In der Variablen

    wird jenes Zeichen gespeichert, das beim Index von 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

    gesichert.

  • Wenn die Variable

    nach dem Durchlaufen des Algorithmus noch immer den Wert hat, dann wurde das gesuchte Zeichen nicht im Text gefunden.

Bitte beantworten Sie alle Teile der Frage.
View this question

Lineare Suche

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

unsortierte Daten

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).

  • gesuchtesZeichen

    : 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.

  • indexMerken

    : In dieser Variable "merkt" sich das Programm an welcher

    Stelle - genauer bei

    welchem Index

    - 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.

  • indexZähler

    : 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

    kleiner als

    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).

  • aktuellesZeichen

    : Das ist da Zeichen, das gerade an Stelle im Text

    steht, auf die der

    indexZähler

    gerade "zeigt". Dieses wird mit der

    Variablen

    gesuchtesZeichen

    verglichen und wenn beide übereinstimmen,

    dann wird der Wert von

    indexZähler in die Variable indexMerken

    gespeichert. Damit wird sich der Index dieses Zeichens gemerkt.

Ergänze folgende Zusammenfassung:

  • Der Text muss

    werden, BEVOR mit dem Algorithmus begonnen wird.

  • Die Variable gesuchtesZeichen muss ebenfalls

    werden, BEVOR mit dem Algorithmus begonnen wird.

  • Die Aufgabe der Variable

    ist es, alle Indexe des Textes durchzugehen, damit alle Zeichen des Textes einzeln geholt werden können.

  • In der Variablen

    wird jenes Zeichen gespeichert, das beim Index von 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

    gesichert.

  • Wenn die Variable

    nach dem Durchlaufen des Algorithmus noch immer den Wert hat, dann wurde das gesuchte Zeichen nicht im Text gefunden.

View this question

Suchen in Texten

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:

Beantworte folgende Wiederholungsfragen:

  • 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

View this question

Referenzdatentypen im Arbeitsspeicher

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 String

-Variablen jedoch ein Text zugewiesen wird, dann kann

dieser Text

nicht innerhalb der String

-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

Objekte

umgesetzt worden. Objekte

werden auf einem viel größeren Speicherbereich dem

Heap

(engl. für

Haufen) gespeichert. Damit man sie dort findet wird in der Variablen am

Stack eine

Referenz

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

String-Objekt mit dem Inhalt Ich mag SEW!

und

speichert die Referenz zu diesem Objekt in der Variablen

text1:

   text1 = "Ich mag SEW!"

;

 

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • 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

    gespeichert.

  • 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 lächelnd )

View this question

Einfache Datentypen im Arbeitsspeicher:

Eine lokale Variable wird im Arbeitsspeicher angelegt (erinnere dich an

das Konservenglas-Bild). Der Bereich des Arbeitsspeichers, in dem lokale

Variablen angelegt werden, wird

Stack

(engl. für Stapel) genannt.

Das folgende Programmstück deklariert zwei Variablen für ganze Zahlen

auf dem Stack.

public class

MeinProgramm {

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

direkt in den Speicherplatz im Stack gespeichert.

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • 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

    im Stack gespeichert.

  • 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?

View this question

Löse folgende Aufgabe:

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

    importiert werden, bevor sie verwendet werden kann.

  • 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

    handelt.

  • 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

    angegeben.

  • 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

    Auffangvariable, weil der Rückgabetyp in der Methodendokumentation
    ist.

  • 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.

View this question

Fußgesteuerte Schleife

Im Gegensatz zu den bisherigen Schleifen (while und for

) steht bei

fußgesteuerten Schleifen die Bedingung erst

am Ende der Schleife

in der

Fußzeile. In Java gibt es dazu die do-while

-Schleife (manchmal auch

einfach nur

do-Schleife genannt). Sie ist folgendermaßen aufgebaut:

In der Kopfzeile befindet sich lediglich das Schlüsselwort do

.

Anschließend beginnt der Schleifenblock mit einer geschwungenen Klammer.

Erst in der Fußzeile findet man neben dem Schlüsselwort

while

auch die

Laufbedingung. Wichtig ist hier auch noch, dass die fußgesteuerte

Schleife

mit einem Strichpunkt endet.

Ergänze folgende Zusammenfassung:

  • Bei der fußgesteuerten Schleife steht die Bedingung

    der Schleife.

  • 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

    ist.

  • Gerne vergessen wird der Abschluss der Schleifenanweisung mittels .

  • Im Gegensatz zur kopfgesteuerten Schleife,

    ausgeführt werden.

View this question

Want instant access to all verified answers on elearning.tgm.ac.at?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!