summaryrefslogtreecommitdiffhomepage
path: root/pl-pl/brainfuck-pl.html.markdown
diff options
context:
space:
mode:
authorAdam <adam@adambard.com>2016-02-12 11:42:25 -0800
committerAdam <adam@adambard.com>2016-02-12 11:42:25 -0800
commit5aa692f5f3bbfa7b79224748dcfd8ca5fba7a8bc (patch)
tree96efb7799650065adc79769d03c0b7616dcd7276 /pl-pl/brainfuck-pl.html.markdown
parentb3c92c47b79f95be68f15d9d3b45161ae8b5e419 (diff)
brainfuck->bf
Diffstat (limited to 'pl-pl/brainfuck-pl.html.markdown')
-rw-r--r--pl-pl/brainfuck-pl.html.markdown93
1 files changed, 0 insertions, 93 deletions
diff --git a/pl-pl/brainfuck-pl.html.markdown b/pl-pl/brainfuck-pl.html.markdown
deleted file mode 100644
index 69d814c4..00000000
--- a/pl-pl/brainfuck-pl.html.markdown
+++ /dev/null
@@ -1,93 +0,0 @@
----
-language: brainfuck
-contributors:
- - ["Prajit Ramachandran", "http://prajitr.github.io/"]
- - ["Mathias Bynens", "http://mathiasbynens.be/"]
-translators:
- - ["Jakub Młokosiewicz", "https://github.com/hckr"]
-lang: pl-pl
----
-
-Brainfuck (pisane małymi literami, za wyjątkiem początku zdania) jest bardzo
-minimalistycznym, kompletnym w sensie Turinga, językiem programowania.
-Zawiera zaledwie 8 poleceń.
-
-Możesz przetesotwać brainfucka w swojej przeglądarce, korzystając z narzędzia
-[brainfuck-visualizer](http://fatiherikli.github.io/brainfuck-visualizer/).
-
-```
-Wszystkie znaki oprócz "><+-.,[]" (wyłączając znaki zapytania) są ignorowane.
-
-Pamięć w brainfucku jest reprezentowana przez tablicę 30.000 komórek
-zainicjalizowanych zerami, ze wskaźnikiem pokazującym na aktualną komórkę.
-
-Oto osiem poleceń brainfucka:
-+ : inkrementuje (zwiększa o jeden) wartość aktualnie wskazywanej komórki
-- : dekrementuje (zmniejsza o jeden) wartość aktualnie wskazywanej komórki
-> : przesuwa wskaźnik na następną komórkę (w prawo)
-< : przesuwa wskaźnik na poprzednią komórkę (w lewo)
-. : wyświetla wartość bieżącej komórki (w formie znaku ASCII, np. 65 = 'A')
-, : wczytuje (jeden) znak z wejścia do bieżącej komórki
- (konkretnie jego numer z tabeli ASCII)
-[ : jeśli wartość w bieżącej komórce jest rózna zero, przechodzi do
- odpowiadającego ]; w przeciwnym wypdaku przechodzi do następnej instrukcji
-] : Jeśli wartość w bieżącej komórce jest rózna od zera, przechodzi do
- następnej instrukcji; w przeciwnym wypdaku przechodzi do odpowiadającego [
-
-[ i ] oznaczają pętlę while. Oczywiście każda pętla rozpoczęta [
-musi być zakończona ].
-
-Zobaczmy kilka prostych programów w brainfucku.
-
-
-++++++ [ > ++++++++++ < - ] > +++++ .
-
-Ten program wypisuje literę 'A'. Najpierw zwiększa wartość komórki #1 do 6.
-Komórka #1 będzie wykorzystana w pętli. Następnie program wchodzi w pętlę ([)
-i przechodzi do komórki #2. Pętla wykonuje się sześć razy (komórka #1 jest
-dekrementowana sześć razy, nim osiągnie wartość zero, kiedy to program
-przechodzi do odpowiadającego ] i wykonuje kolejne instrukcje).
-
-W tym momencie wskaźnik pokazuje na komórkę #1, mającą wartość 0, podczas gdy
-komórka #2 ma wartość 60. Przesuwamy wskaźnik na komórkę #2, inkrementujemy ją
-pięć razy, uzyskując wartość 65. Następnie wyświetlamy wartość komórki #2.
-65 to 'A' w tabeli ASCII, więc właśnie ten znak jest wypisany na konsolę.
-
-
-, [ > + < - ] > .
-
-Ten program wczytuje znak z wejścia i umieszcza jego kod ASCII w komórce #1.
-Następnie zaczyna się pętla, w której znajdują się następujące instrukcje:
-przesunięcie wskaźnika na komórkę #2, inkrementacja wartości komóri #2,
-powrót do komórki #1 i dekrementacja wartości komórki #1. Instrukcje pętli
-wykonują się aż wartość komórki #1 osiągnie zero, a komórka #2 osiągnie
-poprednią wartość komórki #1. Ponieważ na końcu pętli wskaźnik pokazuje na
-komórkę #1, po pętli następuje instrukcja przejścia do komórki #2 i wysłanie
-jej wartości (w formie znaku ASCII) na wyjście.
-
-Zauważ, że odstępy służą wyłącznie poprawie czytelności.
-Równie dobrze można powyższy program zapisać tak:
-
-,[>+<-]>.
-
-
-Spróbuj odgadnąć, co robi poniższy program:
-
-,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >>
-
-Ten program pobiera z wejścia dwie liczby i je mnoży.
-
-Po wczytaniu dwóch wejść (do komórek #1 i #2) następuje pętla zewnętrzna,
-warunkowana wartością komórki #1. Następnie program przechodzi do komórki #2
-i rozpoczyna pętlę wewnętrzną z warunkiem zakończenia w komórce #2,
-inkrementującą komórkę #3. Tu jednak pojawia się problem: w chwili zakończenia
-wewnętrznej pętli komórka #2 ma wartość zero. W takim razie wewętrzna pętla
-nie wywoła się następny raz. Aby rozwiązać ten problem, inkrementujemy także
-wartość komórki #4, a następnie kopiujemy jej wartość do komórki #2.
-Ostatecznie wynik działania znajduje się w komórce #3.
-```
-
-I to właśnie jest brainfuck. Nie taki trudny, co? W ramach rozrywki możesz
-napisać własne programy w brainfucku. Możesz też napisać interpreter brainfucka
-w innym języku. Implementacja interpretera to dość proste zadanie. Jeśli
-jesteś masochistą, spróbuj napisać interpreter brainfucka w... brainfucku.