Zum Inhalt
Javascript-Spielwiese
Aus ProgrammingWiki
<
Bergervei
Archivierte Version vom 2018-10-14T16:14:32+00:00.
Aktuelle Version
Inhaltsverzeichnis
1
Gebrauch des Smileys
2
Turtlegrafik
3
Zeichenzähler
4
Vokalzähler
5
Drei Chinesen mit dem Kontrabass...
6
Plindromprüfung
7
Schüttelwörter
8
Cäsar-Verschlüsselung
8.1
Häufigkeitsuntersuchungen
Gebrauch des Smileys
function ggT(m, n) { if (n == 0) return m; else return ggT(n, m % n); }
jetzt prüfen
ggT(123, 9);
ausführen
Turtlegrafik
function center(turtle) { turtle.move(200, 150); } function black(turtle) { turtle.penColor(0, 0, 0); } function red(turtle) { turtle.penColor(255, 0, 0); } function brown(turtle) { turtle.penColor(100, 50, 0); } function orange(turtle) { turtle.penColor(255, 100, 0); } function yellow(turtle) { turtle.penColor(255, 200, 0); } function green(turtle) { turtle.penColor(0, 255, 0); } function blue(turtle) { turtle.penColor(0, 0, 255); } function pink(turtle) { turtle.penColor(200, 50, 200); }
var farbliste = ["red", "orange", "yellow", "green", "blue", "pink"]; function n_eck(turtle, x, n) { var winkel = 360 / n; for (var i = 1; i <= n; i++) { turtle.forward(x); turtle.right(winkel); } } function farbstern(turtle, x, n, m) { var winkel = 360 / m; var farbe; for (var i = 1; i <= m; i++) { farbe = farbliste[Math.floor((i - 1) * farbliste.length / m)]; switch (farbe) { case "red": red(turtle); break; case "brown": brown(turtle); break; case "orange": orange(turtle); break; case "yellow": yellow(turtle); break; case "green": green(turtle); break; case "blue": blue(turtle); break; case "pink": pink(turtle); break; default: black(turtle); break; } n_eck(turtle, x, n); turtle.right(winkel); } }
Ihr Browser unterstützt Canvas nicht.
canvas1.clear(); turtle1.move(200, 150); farbstern(turtle1, 75, 5, 55);
ausführen
function kreis(turtle, x, y, r) { var winkel = 180 / r / Math.PI; var n = 360 / winkel; turtle.move(x - r, y); for (var i = 1; i <= n; i++) { turtle.forward(1); turtle.right(winkel); } }
Ihr Browser unterstützt Canvas nicht.
canvas2.clear(); kreis(turtle2, 200, 150, 50);
ausführen
Zeichenzähler
function zeichenzaehler(zeichenkette, z) { var zaehler = 0; for (var i = 0; i < zeichenkette.length; i++) if (z == zeichenkette.substr(i, 1)) zaehler++; return zaehler; }
zeichenzaehler("Mississippi-Missouri", "i");
ausführen
Vokalzähler
function vokalzaehler(zeichenkette) { var zaehler = 0; var vokale = "AEIOU"; zeichenkette = zeichenkette.toUpperCase(); for (var j = 0; j < vokale.length; j++) for (var i = 0; i < zeichenkette.length; i++) if (vokale.substr(j, 1) == zeichenkette.substr(i, 1)) zaehler++; return zaehler; }
vokalzaehler("Mississippi-Missouri");
ausführen
Drei Chinesen mit dem Kontrabass...
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; }
jetzt prüfen
dreiChinesen("Drei Chinesen mit dem Kontrabass saßen auf der Straße und erzählten sich was.", "i");
ausführen
Plindromprüfung
function palindrompruefer(zeichenkette) { var neukette = ""; zeichenkette = zeichenkette.toUpperCase(); for (var i = 0; i < zeichenkette.length; i++) neukette = zeichenkette.substr(i, 1) + neukette; return (zeichenkette == neukette); }
palindrompruefer("Rentner");
ausführen
Schüttelwörter
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; }
function schuetteln(zeichenkette) { var neukette = ""; var pos, zeichen; do { pos = Math.floor(Math.random() * zeichenkette.length); zeichen = zeichenkette.substr(pos, 1); neukette = neukette + zeichen; zeichenkette = zeichenkette.replace(zeichen, ""); } while (zeichenkette.length > 0); return neukette; }
jetzt prüfen
schuetteln("Informatik");
ausführen
Cäsar-Verschlüsselung
function wandeln(zeichen, schritt) { var code = zeichen.charCodeAt(); if (code > 64 && code < 91) { code = code + schritt; while (code > 90) code = code - 26; while (code < 65) code = code + 26; return String.fromCharCode(code); } else return zeichen; } function caesarCodieren(zeichenkette, schluesselbuchstabe, richtung) { var neukette = ""; zeichenkette = zeichenkette.toUpperCase(); schluesselbuchstabe = schluesselbuchstabe.toUpperCase(); for (var i = 0; i < zeichenkette.length; i++) { let buchstabe = zeichenkette.substr(i, 1); let schritt = schluesselbuchstabe.charCodeAt() - 65; neukette = neukette + wandeln(buchstabe, richtung * schritt); } return neukette; } function caesarVerschluesseln(zeichenkette, schluesselbuchstabe) { return caesarCodieren(zeichenkette, schluesselbuchstabe, 1); } function caesarEntschluesseln(zeichenkette, schluesselbuchstabe) { return caesarCodieren(zeichenkette, schluesselbuchstabe, -1); }
caesarVerschluesseln("Informatik", "B");
ausführen
caesarEntschluesseln("JOGPSNBUJL", "B");
ausführen
Häufigkeitsuntersuchungen
function maxBuchstabe(zeichenkette) { var alphabet ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var maxzeichen = "", maxanzahl = 0; zeichenkette = zeichenkette.toUpperCase(); for (var j = 0; j < alphabet.length; j++) { let zeichen = alphabet.substr(j, 1); let anzahl = 0; for (var i = 0; i < zeichenkette.length; i++) if (zeichenkette.substr(i, 1) == zeichen) anzahl++; if (anzahl > maxanzahl) { maxzeichen = zeichen; maxanzahl = anzahl; } } return maxzeichen; } function caesarKnacken(zeichenkette, buchstabe) { zeichenkette = zeichenkette.toUpperCase(); buchstabe = buchstabe.toUpperCase(); var schluesselbuchstabe = "A" var schritt = maxBuchstabe(zeichenkette).charCodeAt() - buchstabe.charCodeAt(); var code = 65 + schritt; if (code > 64 && code < 91) schluesselbuchstabe = String.fromCharCode(code); return caesarEntschluesseln(zeichenkette, schluesselbuchstabe); } function caesarTesten(zeichenkette, testkette) { for (var i = 0; i < testkette.length; i++) { let txt = caesarKnacken(zeichenkette, testkette.substr(i, 1)); console.log(txt); } }
txt = "Das ist ein relativ kurzer, aber brisanter Informatik-Text!"; txt_geheim = caesarVerschluesseln(txt, "D"); caesarTesten(txt_geheim, "ERNSTL");
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten