Gymnasium Löbau/Vertiefungsklasse 2013/Zeichenketten
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
== Eigenschaften und Methoden ==
Zur Manipulation und Analyse von Zeichenketten stehen in JavaScript vielfältige Eigenschaften und Methoden bereit.<br />
Nachfolgend sind einige angegeben. Teste sie in der entsprechenden Dialogbox.
<code id="5bcce73a71eda">
var txt = "Das ist ein Probetext.";
var n = txt.length;
var pos1 = txt.indexOf("ein");
var pos2 = txt.search("ein");
var teil1 = txt.slice(8, 11);
var teil2 = txt.substring(8, 11);
var teil3 = txt.substr(8, 3);
var zeichen1 = txt[8];
var zeichen2 = String.fromCharCode(65);
var asc = txt.charCodeAt(8);
var neu1 = txt.replace("Probetext", "kurzer Text");
var neu2 = txt.toUpperCase();
var neu3 = txt.toLowerCase();
</code>
<run id="5ba8905222f56">
n;
</run>
== Zeichenzähler ==
Mit der nachfolgenden Funktion soll ermittelt werden, wie oft ein Zeichen in einer Zeichenkette vorkommt.<br />
Ergänze den erforderlichen Quelltext.
<code id="5ba8905222da6">
function zeichenzaehler(zeichenkette, z) {
var zaehler = 0;
// -- weitere Anweisungen --
return zaehler;
}
</code>
<check execute="(zeichenzaehler('', 'z') == 0) && (zeichenzaehler('Mississippi-Missouri', 'i') == 6) && (zeichenzaehler('Mississippi-Missouri', 'M') == 2)">
true
</check>
<run id="5ba8905222fb3">
zeichenzaehler("Mississippi-Missouri", "i");
</run>
== Vokalzähler ==
Die Funktion <tt>zeichenzaehler</tt> soll nun zu einem Vokalzähler erweitert werden, in dem alle Vokale unabhängig von ihrer Groß- bzw. Kleinschreibung gezählt werden sollen.
<code id="5ba8905222e1d">
function vokalzaehler(zeichenkette) {
var zaehler = 0;
var vokale = "AEIOU";
// -- weitere Anweisungen --
return zaehler;
}
</code>
<check execute="(vokalzaehler('') == 0) && (vokalzaehler('Mississippi-Missouri') == 8) && (vokalzaehler('Krk') == 0)">
true
</check>
<run id="5ba890522300c">
vokalzaehler("Mississippi-Missouri");
</run>
== Palindromprüfung ==
Ein Palindrom ist eine Zeichenkette, die vor- und rückwärts gelesen gleich lautet. Auch hier bleibt die Groß- bzw. Kleinschreibung unberücksichtigt.<br />
Implementiere eine Funktion, die eine Zeichenkette hinsichtlich dieser Eigenschaft testet.<br />
Sie soll <tt>true</tt> zurückgeben, falls ein Palindrom vorliegt, anderenfalls <tt>false</tt>.
<code id="5ba8905222e82">
function palindrompruefer(zeichenkette) {
var neukette = "";
// -- weitere Anweisungen --
return (zeichenkette == neukette);
}
</code>
<check execute="(palindrompruefer('') == true) && (palindrompruefer('Rentner') == true) && (palindrompruefer('Krk') == true) && (palindrompruefer('Informatik') == false)">
true
</check>
<run id="5ba890522306c">
palindrompruefer("Rentner");
</run>
== Schüttelwörter ==
In Schüttelwörtern werden die Zeichen einer Zeichenkette in eine zufällige Reihenfolge gebracht.<br />
Ein Schüttelwort, das einen neuen Sinn ergibt, heißt ''Anagramm''.
<code id="5bbef3e123a8d" hidden>
function schuettelTest(zeichenkette, neukette) {
var test = (zeichenkette.length == neukette.length);
var pos = -1;
if (test)
for (i = 0; i < neukette.length; i++) {
pos = zeichenkette.indexOf(neukette.substr(i, 1));
test = test && (pos >= 0);
}
return test;
}
</code>
<code id="5ba8905222edf">
function schuetteln(zeichenkette) {
var neukette = "";
var pos, zeichen;
// -- weitere Anweisungen --
return neukette;
}
</code>
<check execute="schuettelTest('das ist ein langer Text', schuetteln('das ist ein langer Text')) && (schuetteln('das ist ein langer Text') != schuetteln('das ist ein langer Text'))">
true
</check>
<run id="5ba89052230cc">
schuetteln("Informatik");
</run>
== Drei Chinesen mit dem Kontrabass... ==
Du kennst sicher dieses bekannte Kinderlied, bei dem von Strophe zu Strophe alle Vokale durch einen einzigen zu ersetzen sind:
"Drei Chinesen mit dem Kontrabass sassen auf der Strasse und erzaehlten sich was."
--> "Drii Chinisin mit dim Kintribiss sissin iif dir Strissi ind irziihltin sich wis."
Vervollständige die nachfolgende Funktion, die eine beliebige Strophe dieses Kinderliedes erzeugen kann.<br />
Achte dabei auf eine unveränderte Groß- und Kleinschreibung aller Wörter. Du kannst den Vokalen auch die Umlaute ä, ö, ü in Groß- und Kleinschreibung zuordnen.
<code id="5bd1ee5f284d3">
function dreiChinesen(zeichenkette, zeichen) {
var neukette = "", zei = "";
var vokale = "AEIOUÄÖÜaeiouäöü";
var pos = -1;
// -- weitere Anweisungen --
return neukette;
}
</code>
<check execute="(dreiChinesen('Drei Chinesen mit dem Kontrabass...', 'a') == 'Draa Chanasan mat dam Kantrabass...') && (dreiChinesen('AeIoU', 'e') == 'EeEeE') && (dreiChinesen('', 'i') == '')">
true
</check>
<run id="5bbef3e123ba7">
dreiChinesen("Drei Chinesen mit dem Kontrabass saßen auf der Straße und erzählten sich was.", "i");
</run>
== Zum Weiterarbeiten ==
=== Zickzack-Verschlüsselung ===
Durch ein strukturiertes Umordnen von Buchstaben, Ziffern, Satz- und Sonderzeichen lassen sich Texte bereits in einfacher Weise verschlüsseln. Eine Möglichkeit besteht darin, die Zeichen eines Textes wechselseitig in zwei Teilzeichenketten abzulegen und diese dann aneinander zu hängen. Zum Entschlüsseln muss nun diese Zeichekette geteilt werden, um die Zeichen wechselseitig (also zickzackförmig) zum Klartext zusammenzusetzen.
Implementiere diese Zickzack-Ver- und Entschlüsselung.
Zur [[Gymnasium Löbau/Vertiefungsklasse 2013/Zickzack-Verschlüsselung|Problemlösung]].