diff options
-rw-r--r-- | ru-ru/brainfuck-ru.html.markdown | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/ru-ru/brainfuck-ru.html.markdown b/ru-ru/brainfuck-ru.html.markdown index f6e27ed2..500ac010 100644 --- a/ru-ru/brainfuck-ru.html.markdown +++ b/ru-ru/brainfuck-ru.html.markdown @@ -12,10 +12,10 @@ Brainfuck (пишется маленькими буквами, кроме нач маленький Тьюринг-полный язык программирования лишь с 8 командами. ``` -Любой символ игнорируется кроме "><+-.,[]" (исключая кавычки). +Любой символ, кроме "><+-.,[]", игнорируется, за исключением кавычек. Brainfuck представлен массивом из 30000 ячеек, инициализированных нулями, -и указателем, указывающего на текущую ячейку. +и указателем с позицией в текущей ячейке. Всего восемь команд: + : Увеличивает значение на единицу в текущей ячейке. @@ -29,22 +29,22 @@ Brainfuck представлен массивом из 30000 ячеек, ини ] : Если значение в текущей ячейке равно нулю, то перейти к следующей инструкции. В противном случае, вернуться назад к соответствующей [ . -[ и ] образуют цикл while. Очевидно, они должны быть сбалансированы. +[ и ] образуют цикл while. Естественно, они должны быть сбалансированы. -Давайте рассмотрим некоторые базовые brainfuck программы. +Давайте рассмотрим некоторые базовые brainfuck-программы. ++++++ [ > ++++++++++ < - ] > +++++ . -Эта программа выводит букву 'A'. Сначала, программа увеличивает значение -ячейки №1 до 6. Ячейка #1 будет использоваться циклом. Затем, программа входит +Эта программа выводит букву 'A'. Сначала программа увеличивает значение +ячейки №1 до 6. Ячейка №1 будет использоваться циклом. Затем программа входит в цикл ([) и переходит к ячейке №2. Ячейка №2 увеличивается до 10, переходим назад к ячейке №1 и уменьшаем ячейку №1. Этот цикл проходит 6 раз (ячейка №1 уменьшается до нуля, и с этого места пропускает инструкции до соответствующей ] и идет дальше). -В этот момент, мы в ячейке №1, которая имеет значение 0, значение ячейки №2 -пока 60. Мы переходим на ячейку №2, увеличиваем 5 раз, до значения 65, и затем -выводим значение ячейки №2. Код 65 является символом 'A' в кодировке ASCII, +В этот момент мы находимся в ячейке №1, которая имеет значение 0, значение +ячейки №2 пока 60. Мы переходим на ячейку №2, увеличиваем 5 раз, до значения 65, +и затем выводим значение ячейки №2. Код 65 является символом 'A' в кодировке ASCII, так что 'A' выводится на терминал. @@ -53,11 +53,11 @@ Brainfuck представлен массивом из 30000 ячеек, ини Данная программа считывает символ из пользовательского ввода и копирует символ в ячейку №1. Затем мы начинаем цикл. Переходим к ячейке №2, увеличиваем значение ячейки №2, идем назад к ячейке №1 и уменьшаем значение ячейки №1. Это продолжается -до тех пор пока, ячейка №1 не равна 0, а ячейка №2 сохраняет старое значение -ячейки №1. Мы завершаем цикл на ячейке №1, поэтому переходим в ячейку №2, и +до тех пор, пока ячейка №1 не равна 0, а ячейка №2 сохраняет старое значение +ячейки №1. Мы завершаем цикл на ячейке №1, поэтому переходим в ячейку №2 и затем выводим символ ASCII. -Также, имейте в виду, что пробелы здесь исключительно для читабельности. Вы можете +Также имейте в виду, что пробелы здесь исключительно для читабельности. Вы можете легко написать и так: ,[>+<-]>. @@ -71,13 +71,13 @@ Brainfuck представлен массивом из 30000 ячеек, ини Суть в том, что программа сначала читает два ввода. Затем начинается внешний цикл, сохраняя ячейку №1. Затем программа перемещается в ячейку №2, и начинается внутренний цикл с сохранением ячейки №2, увеличивая ячейку №3. Однако появляется -проблема: В конце внутреннего цикла, ячейка №2 равна нулю. В этом случае, +проблема: В конце внутреннего цикла ячейка №2 равна нулю. В этом случае, внутренний цикл не будет работать уже в следующий раз. Чтобы решить эту проблему, мы также увеличим ячейку №4, а затем копируем ячейку №4 в ячейку №2. Итак, ячейка №3 - результат. ``` Это и есть brainfuck. Не так уж сложно, правда? Забавы ради, вы можете написать -свою собственную brainfuck программу или интерпретатор на другом языке. +свою собственную brainfuck-программу или интерпретатор на другом языке. Интерпретатор достаточно легко реализовать, но если вы мазохист, попробуйте -написать brainfuck интерпретатор... на языке brainfuck. +написать brainfuck-интерпретатор... на языке brainfuck. |