262 lines
5.6 KiB
JavaScript
262 lines
5.6 KiB
JavaScript
jsonp_handle(
|
|
{
|
|
"key": "tasks",
|
|
"value": [
|
|
{
|
|
"id": "einfuehrung",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "Einführung",
|
|
"text": "Bewege die Figur vom Eingang (links) zum Ausgang (rechts)!",
|
|
"tests": [
|
|
{
|
|
"input": [],
|
|
"accept": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "start_symbol",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "Start-Symbol",
|
|
"text": "Annehmen, wenn die input mit ${s1} beginnt; andernfalls ablehnen",
|
|
"tests": [
|
|
{
|
|
"input": [],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [0],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [1],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0,1],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [1,0,1,1,0,0,0,1,0],
|
|
"accept": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "dreifaltigkeit",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "Dreifaltigkeit",
|
|
"text": "Annehmen genau dann, wenn die input mindestens drei ${s1} enthält",
|
|
"tests": [
|
|
{
|
|
"input": [1],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [0,0,1,1],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [1,0,1,0,0,1,0],
|
|
"accept": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "abwechslung_erfreuet",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "Abwechslung erfreuet",
|
|
"text": "annehmen genau dann wenn: Die Farben der input (${s0} / ${s1}) sich immer abwechseln",
|
|
"tests": [
|
|
{
|
|
"input": [],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0,0],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [1,0,1],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0,1,0,1,0,1],
|
|
"accept": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "ans_ende",
|
|
"kind": "transductor",
|
|
"parameter": {
|
|
"titel": "Ans Ende",
|
|
"text": "die input (${s0} / ${s1}), aber mit dem ersten Symbol am Ende",
|
|
"tests": [
|
|
{
|
|
"input": [0,0,1,1,1,0,1,0,1,1,1,0,1],
|
|
"output": [0,1,1,1,0,1,0,1,1,1,0,1,0]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "tauschen",
|
|
"kind": "transductor",
|
|
"parameter": {
|
|
"titel": "Tauschen",
|
|
"text": "aus der input (${s0} / ${s1}) alle ${s0} durch ${s2} ersetzen und alle ${s1} durch ${s3}",
|
|
"tests": [
|
|
{
|
|
"input": [0,1,1,0],
|
|
"output": [2,3,3,2]
|
|
},
|
|
{
|
|
"input": [0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,0],
|
|
"output": [2,3,2,3,2,3,3,2,2,2,2,3,2,3,3,2]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "waehlerisch",
|
|
"kind": "transductor",
|
|
"parameter": {
|
|
"titel": "Wählerisch",
|
|
"text": "aus der input alle ${s0} entfernen und alle ${s1} beibehalten",
|
|
"tests": [
|
|
{
|
|
"input": [0,0,0,1,0],
|
|
"output": [1]
|
|
},
|
|
{
|
|
"input": [1,0,1,0,1],
|
|
"output": [1,1,1]
|
|
},
|
|
{
|
|
"input": [1,1,1,1,0],
|
|
"output": [1,1,1,1]
|
|
},
|
|
{
|
|
"input": [0,0,0,0,1,0,1,1,0],
|
|
"output": [1,1,1]
|
|
},
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "dekorator",
|
|
"kind": "transductor",
|
|
"parameter": {
|
|
"titel": "Dekorator",
|
|
"text": "Alles wird hübscher mit Schnörkeln, Schleifchen und Kinkerlitzchen aller Art! Zumindest glauben das die Leute … Shopping-Sender im Fernsehen sind der Beweis! Ob das auch für das Band der Figur gilt, wenn es nur ${s0} und ${s1} enthält? Finden wir's raus: Setz ein ${s2} an den Anfang und ein ${s3} an das Ende!",
|
|
"tests": [
|
|
{
|
|
"input": [1,1,0],
|
|
"output": [2,1,1,0,3]
|
|
},
|
|
{
|
|
"input": [0,0,1,0,0],
|
|
"output": [2,0,0,1,0,0,3]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "alpha_und_omega",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "Alpha und Omega",
|
|
"text": "inputn (${s0} / ${s1}), die mit den gleichen Symbolen anfangen und enden",
|
|
"tests": [
|
|
{
|
|
"input": [],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [1],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0,1],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [0,1,1,1,0],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [1,1,0,0],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [1,0,1,1,1],
|
|
"accept": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "an_den_anfang",
|
|
"kind": "transductor",
|
|
"parameter": {
|
|
"titel": "An den Anfang",
|
|
"text": "die input (${s0} / ${s1}), aber mit dem letzten Symbol am Anfang",
|
|
"tests": [
|
|
{
|
|
"input": [0,0,1,1,1,0,1,0,1,1,1,0,1],
|
|
"output": [1,0,0,1,1,1,0,1,0,1,1,1,0]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "a_n_b_n",
|
|
"kind": "acceptor",
|
|
"parameter": {
|
|
"titel": "a^n b^n",
|
|
"text": "Jaja, die berühmt berüchtige Sprache, die sich mit einem endlichen Automaten nicht erkennen lässt … Das ist deine Chance zu zeigen, dass dieses Ding hier mehr ist als so ein kümmerlicher DEA … und das ganz ohne Kellerspeicher! Also: Eine beliebige Anzahl an ${s0}, dann die gleiche Anzahl an ${s1}!",
|
|
"tests": [
|
|
{
|
|
"input": [],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [0,0,1,1],
|
|
"accept": true
|
|
},
|
|
{
|
|
"input": [0,0,0,1,1],
|
|
"accept": false
|
|
},
|
|
{
|
|
"input": [0,0,0,0,0,0,0,1,1,1,1,1,1,1],
|
|
"accept": true
|
|
}
|
|
],
|
|
"hinweise": [
|
|
"Ein Wort ist genau dann Element der Sprache ${s0}^n ${s1}^n, wenn sie entweder 1) leer ist (also n = 0 gilt) oder 2) sie mit ${s0} beginnt, mit ${s1} endet und dazwischen ein Wort der Form ${s0}^(n-1) ${s1}^(n-1) steht … Stichwort: Rekursion"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
);
|
|
|