Bergervei/Javascript-Spielwiese
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
== Gebrauch des Smileys ==
<code id="575e4fe7ef3fd">
function ggT(m, n) {
if (n == 0)
return m;
else
return ggT(n, m % n);
}
</code>
<check execute="(ggT(123, 69) == 3) && (ggT(9797, 303) == 101) && (ggT(31, 5) == 1)">
true
</check>
<run id="575e4fe7ef477">
ggT(123, 9);
</run>
== Dreieckprüfer ==
<table cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top" width="460">[[Bild:DreieckPruefer.gif]]</td>
<td align="left" valign="top" width="740">
<code id="5bd5881c0731e">
function DreieckPruefer(a, b, c) {
var txt = "";
// -- weitere Anweisngen --
return txt;
}
</code>
<check execute="(DreieckPruefer(5, 3, 4).search('nicht konstruierbar') == -1) && (DreieckPruefer(97, 3, 1).search('nicht konstruierbar') != -1)">
true
</check>
<run id="5bd593cfb3c71">
(DreieckPruefer(3, 5, 4));
</run>
</td>
</tr>
</table>
== Tilgung eines zinslosen Kredits ==
<code id="5bd593cfb3ae9">
function tilgung(kredit, prozent) {
// -- weitere Anweisungen --
return kredit;
}
</code>
<run id="5bd593cfb3cfe">
tilgung(25000, 7.5);
</run>
== Taxigebühr ==
Das Taxiunternehmen "LöbTax" bietet seinen Kunden folgende Tarife an:
{| border=0
|-
|<ul><li>Grundgebühr:</li></ul>
|2,50 €
|-
|<ul><li>Kilometerpreis bis 5 km:</li></ul>
|1,70 €
|-
|<ul><li>Kilometerpreis bis 10 km:</li></ul>
|1,55 €
|-
|<ul><li>Kilometerpreis ab 10 km:</li></ul>
|1,40 €
|}
<code id="5bd593cfb3b84">
function TaxiPreis(km) {
var preis = 0;
// -- weitere Anweisungen --
return preis;
}
</code>
<run id="5bd593cfb3d89">
TaxiPreis(12.5);
</run>
== Turtlegrafik ==
<code id="57617d4f30174" hidden>
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);
}
</code>
<code id="57618d00e9982">
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);
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="57618d00e99ff">
canvas1.clear();
turtle1.move(200, 150);
farbstern(turtle1, 75, 5, 55);
</run>
<code id="5b0c70d02658f">
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);
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="5b0c70d026631">
canvas2.clear();
kreis(turtle2, 200, 150, 50);
</run>
== Zeichenzähler ==
<code id="5ba880a3466e7">
function zeichenzaehler(zeichenkette, z) {
var zaehler = 0;
for (var i = 0; i < zeichenkette.length; i++)
if (z == zeichenkette.substr(i, 1)) zaehler++;
return zaehler;
}
</code>
<run id="5ba87ccf7e1d4">
zeichenzaehler("Mississippi-Missouri", "i");
</run>
== Vokalzähler ==
<code id="5ba880a346776">
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;
}
</code>
<run id="5ba87ccf7e23f">
vokalzaehler("Mississippi-Missouri");
</run>
== Drei Chinesen mit dem Kontrabass... ==
<code id="5bbcd022ed78a">
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="5bbcd022ed841">
dreiChinesen("Drei Chinesen mit dem Kontrabass saßen auf der Straße und erzählten sich was.", "i");
</run>
== Plindromprüfung ==
<code id="5ba880a346807">
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);
}
</code>
<run id="5b9619346de9e">
palindrompruefer("Rentner");
</run>
== Schüttelwörter ==
<code id="5bbcd6e2a1b86" 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="5ba880a3468ae">
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;
}
</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="5b960f62e3580">
schuetteln("Informatik");
</run>
== Cäsar-Verschlüsselung ==
<code id="5bc36b68951aa">
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);
}
</code>
<run id="5ba880a346a3f">
caesarVerschluesseln("Informatik", "B");
</run>
<run id="5ba880a346ae6">
caesarEntschluesseln("JOGPSNBUJL", "B");
</run>
=== Häufigkeitsuntersuchungen ===
<code id="5bc4ebd3e782b">
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 schritt = maxBuchstabe(zeichenkette).charCodeAt() - buchstabe.charCodeAt();
var code = 65 + schritt;
while (code > 90) code = code - 26;
while (code < 65) code = code + 26;
var 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);
}
}
</code>
<run id="5bc36b689535a">
txt = "Das ist ein relativ kurzer, aber brisanter Informatik-Text!";
txt_geheim = caesarVerschluesseln(txt, "D");
caesarTesten(txt_geheim, "ERNSTL");
</run>