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>
== Plindromprü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="5bbef3e123b12">
function dreiChinesen(zeichenkette, zeichen) {
var neukette = "", zei = "";
var vokale = "AEIOUÄÖÜaeiouäöü";
var pos = -1;
for (var i = 0; i < zeichenkette.length; i++) {
zei = zeichenkette.substr(i, 1);
pos = vokale.indexOf(zeichenkette.substr(i, 1));
if (pos >= 0)
if (pos < 8)
neukette = neukette + zeichen.toUpperCase();
else
neukette = neukette + zeichen.toLowerCase();
else
neukette = neukette + zei;
}
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>