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="5bbcc8376af80">
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 zeichen = String.fromCharCode(65);
var asc = txt.charCodeAt(0);
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>