Merge pull request #1508 from urfuchs/master

Translate Brainfuck to German and minor other changes
This commit is contained in:
Geoff Liu 2016-08-21 17:13:39 -04:00 committed by GitHub
commit d81e9735c2
3 changed files with 94 additions and 5 deletions

View File

@ -175,7 +175,7 @@ in
# Liste der Fälle, die unterschieden werden sollen
0) echo "Hier ist eine Null."
1) echo "Hier ist eine Eins."
*) echo "Das ist nicht Null."
*) echo "Das ist etwas anderes."
esac
# 'for' Schleifen iterieren über die angegebene Zahl von Argumenten:

View File

@ -0,0 +1,89 @@
---
language: brainfuck
contributors:
- ["Prajit Ramachandran", "http://prajitr.github.io/"]
- ["Mathias Bynens", "http://mathiasbynens.be/"]
translators:
- ["urfuchs", "https://github.com/urfuchs"]
filename: brainfuck-de
lang: de-de
---
Brainfuck ist eine extrem minimalistische Turing-vollständige Programmiersprache
mit lediglich 8 Befehlen.
Mit dem [brainfuck-visualizer](http://fatiherikli.github.io/brainfuck-visualizer/) kann
Brainfuck im Browser ausprobiert werden.
```
Alle Zeichen außer "><+-.,[]" (ohne die Klammern) werden ignoriert.
Brainfuck besteht aus einem Array mit unendlich vielen Elementen, die alle mit Null initalisiert
sind und einem Datenzeiger auf das aktuelle Element.
Es gibt acht Befehle:
+ : Erhöht den Wert an der aktuellen Stelle um Eins.
- : Verringert den Wert an der aktuellen Stelle um Eins.
> : Bewegt den Zeiger um eine Stelle weiter.
< : Bewegt den Zeiger um eine Stelle zurück.
. : Gibt den Wert der aktuellen Zelle als ASCII Wert aus (z.B. 65 = 'A').
, : Liest ein einzelnes Zeichen von der Standardeingabe und speichert dessen ASCII Wert in der aktuellen Zelle.
[ : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger hinter den
zugehörigen ]-Befehl.
Ansonsten, bewege den Zeiger ein Element weiter.
] : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger um eine Stelle
weiter.
Ansonsten, bewege den Zeiger hinter den zugehörigen [-Befehl.
[ und ] bilden eine while-Schleife. Offensichtlich müssen sie paarweise vorkommen.
Schauen wir uns einige grundlegende Programme an.
++++++ [ > ++++++++++ < - ] > +++++ .
Dieses Programm gibt den Buchstaben 'A' aus. Zunächst erhöht es den Wert der 1. Zelle auf 6.
Diese erste Zelle wird für die Schleife verwendet. Danach beginnt das Programm
die Schleife ([) und geht vor zu Zelle #2. Es erhöht den Zellwert inkrementell 10 Mal, geht dann zurück
zu Zelle #1, und verringert Zelle #1. Diese Schleife wird 6 Mal durchlaufen (nach 6
Durchläufen ist der Wert der Zelle #1 auf 0 reduziert, dadurch wird die Schleife abgebrochen
und das Programm hinter dem korrespondierenden ] fortgesetzt).
An dieser Stelle befinden wir uns an Zelle #1, die jetzt den Wert 0 hat, während Zelle #2
den Wert 60 hat. Wir gehen vor zu Zelle #2, inkrementieren 5 Mal, bis zum Wert 65,
und geben dann den Wert der Zelle #2 aus. 65 ist ein 'A' im ASCII Zeichensatz,
daher wird 'A' am Terminal ausgegeben..
, [ > + < - ] > .
Dieses Programm liest ein Zeichen von der Benutzereingabe und schreibt dessen Wert
in Zelle #1. Danach beginnt eine Schleife. Rücke vor auf Zelle #2, erhöhe den Wert der Zelle #2,
gehe zurück auf Zelle #1, verringere den Wert der Zelle #1. Dies geht solange bis
Zelle #1 den Wert 0 und Zelle #2 den alten Wert aus #1 hat. Da wir am Ende der Schleife
bie Zelle #1 sind, gehe vor zu Zelle #2 und gibt denb Wert als ASCII Zeichen aus.
Beachte biite, dass die Leerzeichen nur aus Gründen der Lesbarkeit geschrieben werden.
Man könnte genauso schreiben:
,[>+<-]>.
Versuche herauszufinden, was dieses Programm macht:
,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >>
Dieses Programm nimmt zwei Zahlen als Eingabe und multipliziert sie.
Im Wesentlichen liest es zunächst zwei Werte ein. Dann beginnt die äußere Schleife
mit Zelle #1 als Zähler. Danach geht das Programm zu Zelle #2 vor und startet die innere Schleife
mit Zelle #2 als Zähler. Diese zählt Zelle #3 hoch. Es gibt jedoch ein Problem:
Am Ende der inneren Schleife hat Zelle #2 den Wert Null. Daher würde die innere
Schleife beim nächsten Durchgang nicht mehr funktionieren. Daher wird auch Zelle #4
erhöht und anschließend in Zelle #2 zurückkopiert.
Am Ende steht in Zelle #3 das Ergebnis.
```
Das ist Brainfuck. Nicht so schwierig, oder? Zum Spaß kannst du dein eigenes Brainfuck
Programm schreiben oder du schreibst einen Brainfuck Interpreter in einer anderen
Programmiersprache. Der Interpreter lässt sich ziemlich einfach implementieren.
Falls du Masochist bist, kannst du auch versuchen, einen Brainfuck Interpreter in Brainfuck zu implementieren.

View File

@ -149,10 +149,10 @@ selector {
## Benutzung
Speichere das CSS, das du benutzen willst mit der endung '.css'.
Speichere das CSS, das du benutzen willst, mit der Endung '.css'.
```xml
<!-- du musst die CSS-Datei im <head>-bereich der seite einbinden -->
<!-- du musst die CSS-Datei im <head>-bereich der Seite einbinden -->
<link rel='stylesheet' type='text/css' href='filepath/filename.css' />
<!-- Einbindung funktioniert auch inline, wobei diese Methode nicht
@ -203,9 +203,9 @@ und das folgende Markup:
Die Spezifität der Stile ist wie folgt:
(die Spezifität gilt nur für **einzelne Eigenschaften**, nicht für ganze Blöcke)
* `E` hat die größte Spezifität wegen dem Schlüsselwort `!important`.
* `E` hat die größte Spezifität wegen des Schlüsselworts `!important`.
man sollte diese Form aber vermeiden.
* `F` ist als nächstes dran, da es direkt an dem element definiert ist.
* `F` ist als nächstes dran, da es direkt an dem Element definiert ist.
* Dann folgt `A`, da es "spezifischer" als alle anderen ist.
spezifischer = mehr Zuweisungen: 1 Tagname `p` +
Klassenname `klasse1` + 1 Attribut `attr='value'`