Баг в BF-программе
От: TheEvilOne Россия  
Дата: 11.04.08 06:58
Оценка: :)
Здравствуйте, Roman Odaisky, Вы писали:

RO>Вот самый правильный алфавитонезависимый язык!


Вот тебе программа:

,>,>,>,-[>+>+<<]>>-<<<[>++<]<<[>>>>[<+>>>+<<]>>[<<+>>]<<<<<<]>[-<+][>>>>>[<<+>>>+<]>[<+>]<<<<<<]>>>.


Угадай, чего делает. Найдешь ошибку — пришли исправленный вариант.

11.04.08 16:52: Ветка выделена из темы Язык программирования ПРОФТ
Автор:
Дата: 08.04.08
— Кодт
11.04.08 16:52: Перенесено модератором из 'Коллеги, улыбнитесь' — Кодт
Re: Баг в BF-программе
От: ДимДимыч Украина http://klug.org.ua
Дата: 11.04.08 07:21
Оценка:
Здравствуйте, TheEvilOne, Вы писали:

TEO>
TEO>,>,>,>,-[>+>+<<]>>-<<<[>++<]<<[>>>>[<+>>>+<<]>>[<<+>>]<<<<<<]>[-<+][>>>>>[<<+>>>+<]>[<+>]<<<<<<]>>>.


TEO>Угадай, чего делает. Найдешь ошибку — пришли исправленный вариант.


1) Вы уверенны, что здесь только одна ошибка?
2) Вы обратили внимание, в каком форуме это сообщение?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: Баг в BF-программе
От: TheEvilOne Россия  
Дата: 11.04.08 09:24
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>1) Вы уверенны, что здесь только одна ошибка?

ДД>2) Вы обратили внимание, в каком форуме это сообщение?

1) Я знаю, что в приведенном коде есть одна небольшая логическая ошибка.
2) А Brainf%ck предложил использовать не я. К тому же, если модераторы перенесут тему обратно, то будет кстати.
Re[3]: Баг в BF-программе
От: ДимДимыч Украина http://klug.org.ua
Дата: 11.04.08 12:18
Оценка:
Здравствуйте, TheEvilOne, Вы писали:

TEO>1) Я знаю, что в приведенном коде есть одна небольшая логическая ошибка.


Если код последнего введенного символа не единица, то попадаем в бесконечный цикл.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Баг в BF-программе
От: PaulMinelly  
Дата: 13.04.08 01:42
Оценка:
TEO>Вот тебе программа:

TEO>
TEO>,>,>,>,-[>+>+<<]>>-<<<[>++<]<<[>>>>[<+>>>+<<]>>[<<+>>]<<<<<<]>[-<+][>>>>>[<<+>>>+<]>[<+>]<<<<<<]>>>.
TEO>


TEO>Угадай, чего делает. Найдешь ошибку — пришли исправленный вариант.


Прикольная фигня, она где-то еще используется реально, имею ввиду такой язык используется где-то хоть?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Баг в BF-программе
От: anton_t Россия  
Дата: 13.04.08 15:49
Оценка: :)))
Здравствуйте, PaulMinelly, Вы писали:

TEO>>Вот тебе программа:


TEO>>
TEO>>,>,>,>,-[>+>+<<]>>-<<<[>++<]<<[>>>>[<+>>>+<<]>>[<<+>>]<<<<<<]>[-<+][>>>>>[<<+>>>+<]>[<+>]<<<<<<]>>>.
TEO>>


TEO>>Угадай, чего делает. Найдешь ошибку — пришли исправленный вариант.


PM>Прикольная фигня, она где-то еще используется реально, имею ввиду такой язык используется где-то хоть?


Ну обычно его применяют строго по названию
Re[4]: Баг в BF-программе
От: TheEvilOne Россия  
Дата: 14.04.08 09:47
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, TheEvilOne, Вы писали:


TEO>>1) Я знаю, что в приведенном коде есть одна небольшая логическая ошибка.


ДД>Если код последнего введенного символа не единица, то попадаем в бесконечный цикл.

Моя ошибка очень проста — не было вычитания 1 из текущей ячейки при закрытии цикла.
(Хотя я считаю, что BF-интерпретатор должен самостоятельно выполнять декремент текущей ячейки при
встрече с оператором ])
Правильный вариант программы:
,>,>,>, //Вводит в четыре первые (зависит от интерпретатора) ячейки четыре значения, назовем их a,b,c,d
- //Отнимает 1 от значения в текущей ячейке (Память: a,b,c,d-1)
[>+>+<<-] //Цикл, в котором копируется значени в 4 ячейке в ячейки 5 и 6, обнуляя 4 ячейку (Память: a,b,c,0,d-1,d-1)
>>- //Отнимает 1 от значения в ячейке 6 (Память: a,b,c,0,d-1,d-2)
<<< //Переход к 3-ей ячейке
[>++<-] //Цикл, в котором в ячейку 4 записывается удвоенное значение 3-ей ячейки (Память: a,b,0,2с,d-1,d-2)
<< //Переход к 1-ой ячейке
[ //Начало цикла со счетчиком в 1-й ячейке
>>>> //Переход к 5-й ячейке
[<+>>>+<<-] //Цикл, в котором на каждом шаге прибавляется 1 к 4-ой и 7-ой ячейкам (Память: a,b,0,2с+d-1,0,d-2,d-1)
>> //Переход к 7-й ячейке
[<<+>>-] //Цикл, в котором в 5-ю ячейку копируется содержимое 7-й ячейки (Память: a,b,0,2с+d-1,d-1,d-2,0)
<<<<<< //Переход к 1-й ячейке (счетчику основного цикла)
-] //Конец цикла со счетчиком в 1-й ячейке (Память: 0,b,0,2с+a*(d-1),d-1,d-2,0)
> //Переход ко 2-й ячейке
[-<+-] //Цикл, в котором в 1-й ячейке формируется значение b/2 (Память: b/2,0,0,2с+a*(d-1),d-1,d-2,0)
[ //Начало цикла со счетчиком в 1-й ячейке
>>>>> //Переход к 6-й ячейке
[<<+>>>+<-] //Цикл, в котором к значению в 4-й ячейке прибавляется, а в 7-ю ячейку
            //копируется значение из 6-й (Память: b/2,0,0,2с+a*(d-1)+(d-2),d-1,0,d-2)
> //Переход к 7-й ячейке
[<+>-] //Цикл, в котором копируется значение из 7-й ячейки в 6-ю (Память: b/2,0,0,2с+a*(d-1)+(d-2),d-1,d-2,0)
<<<<<< //Переход к 1-й ячейке
-] //Конец цикла со счетчиком в 1-й ячейке (Память: 0,0,0,2с+a*(d-1)+(b/2)*(d-2),d-1,d-2,0)
>>> //Переход к 4-й ячейке
. //Вывод содержимого 4-й ячейки


Данная программа только лишь выводит результат, подсчитанный по формуле 2*с+a*(d-1)+(b/2)*(d-2).
Данная формула — это правильный ответ на задачу про шнурки с олимпиады по программированию для школьников.
Этот пример показывает, что без указания языков программирования в условии проведения олимпиад,
преподаватели могут с легкостью получить нечто в таком роде, причем проверить это будет необходимо,
так как решение может быть правильным. А проблема преподавателей будет в том, что проверка таких программ
по их тексту — это очень проблематично, что косвенно показывает количество ответов по данной теме
с конкретными ответами.
Re[5]: Баг в BF-программе
От: ДимДимыч Украина http://klug.org.ua
Дата: 16.04.08 07:12
Оценка:
Здравствуйте, TheEvilOne, Вы писали:

TEO>Моя ошибка очень проста — не было вычитания 1 из текущей ячейки при закрытии цикла.


Я об этом и сказал в предыдущем сообщении, только я указал в чем ошибка выражается, Вы указали — из-за чего. Причем эта ошибка в каждом цикле.

TEO>(Хотя я считаю, что BF-интерпретатор должен самостоятельно выполнять декремент текущей ячейки при

TEO>встрече с оператором ])

Тогда затруднится использование переполнений в малоразрядных машинах.

TEO>А проблема преподавателей будет в том, что проверка таких программ по их тексту — это очень проблематично, что косвенно показывает количество ответов по данной теме с конкретными ответами.


Тут согласен.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[5]: Баг в BF-программе
От: Plague Россия 177230800
Дата: 16.04.08 08:55
Оценка:
Здравствуйте, TheEvilOne, Вы писали:

TEO>А проблема преподавателей будет в том, что проверка таких программ

TEO>по их тексту — это очень проблематично, что косвенно показывает количество ответов по данной теме
TEO>с конкретными ответами.

Я хотел ответить, но ты сам все расписал.. просто я не читаю постоянно "Этюды"...
Программа, на самом деле — так себе...

Боюсь, что для более-менее сложного задания вам придется посидеть недельку, прежде чем решить задачу на Брейнфаке.
На задачу MinMax
Автор: Laurel
Дата: 05.04.05
у меня ушло 3 дня, так что не думаю, что кто-то будет решать олимпиадные задачи на нем.
... << RSDN@Home 1.2.0 alpha rev. 787>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.