Newer
Older

Jan Maximilian Michal
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import re
def gap(content, points):
return "[gap({points}P)]{gap}[/gap]".format(points=points, gap=content)
def p(content):
return '<p>{}</p>\n'.format(content)
def li(content):
return '<li>{}</li>\n'.format(content)
def tex(content):
return ('<span class="latex">' + content + '</span>').replace('\\', '\\\\')
def generate_ilias():
aufgabe = p('Berechnen Sie:')
aufgabe += li(tex(r'\{a,b\} \cdot \{\varepsilon, cd\} = \{') + gap('a, acd, b, bcd', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon, cd\} \cdot \{a, b\} = \{') + gap('a, b, cda, cdb', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon, a, ab\}^2 = \{') + gap('eps, a, aa, aab, aba, abab', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon\} \cdot \{\varepsilon\} = \{') + gap('eps', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon\} \cdot \emptyset = ') + gap('{}', 0.5))
aufgabe += li(tex(r'\{\varepsilon\} \cdot \emptyset = ') + gap('{}', 0.5))
aufgabe += li(tex(r'\emptyset^2 = ') + gap('{}', 0.5))
aufgabe += li(tex(r'\emptyset^* = \{') + gap('eps', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon\}^* = \{') + gap('eps', 0.5) + tex('\}'))
aufgabe += li(tex(r'\{\varepsilon, a\}^+ = \{') + gap('a*', 0.5) + tex('\}'))
aufgabe += ''' Verwenden Sie <code>eps</code> für {eps} und
<code>{{}}</code> für {empty}. Geben Sie alle Elemente der neuen Menge in
lexikographischer Reihenfolge an und verwenden Sie Leerzeichen nach einem
Komma. (Z.B. eps, a, ab, acd, ba)'''.format(eps=tex(r'\varepsilon'), empty=tex(r'\emptyset'))
return aufgabe.replace(r'"', r'\"')
def generate_solution():
solution = "<h3>Musterloesung</h3><br>"
solution += re.sub(r'\[gap\(\d+P\)\](.+)\[\/gap\]',
r'\1', generate_ilias())
return solution
### END OF SCRIPT ########################################################
meta = {
"type": "GAP",
"title": "Grundlagen",
"author": "Jan Maximilian Michal",
"gapLength": 10,
"question": generate_ilias(),
"solution": generate_solution(),
}