Форум программистов, компьютерный форум CyberForum.ru

Brainf**k - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия, ошибка http://www.cyberforum.ru/cpp-beginners/thread239332.html
Здраствуйте! У меня есть одна классическая задачка про Лесенку. Лесенка Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Входные данные Во входном файле input.txt записано натуральное число N (1 ≤ N ≤ 225) – количество кубиков в...
C++ Рекурсия: вычислить количество лесенок, которое можно построить из N кубиков Здраствуйте! У меня есть одна классическая задачка про Лесенку. Лесенка Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Входные данные Во входном файле input.txt записано натуральное число N (1 ≤ N ≤ 225) – количество кубиков в... http://www.cyberforum.ru/cpp-beginners/thread239329.html
C++ Шаблонные функции
Чет не получается написать шаблонную функцию. func.h template <class T> T strnstr (T str, T substr, unsigned int count) { T* str1; T* str2 = substr;
Даны действительные числа C++
1. Даны действительные числа x, y, z Вычислить: а)max(x+y+z, xyz) б)min^2(x+y+z/2,xyz)+1 2) даны x,y,z. вычислить a,b если a=(1+y)*((x+y)/(x^2+4))/e^-x-2 + 1/(x^2+4) b=(1+cos(y-2))/x^4 / 2+sin^2 Z помогите решить пожалуйста.
C++ Вычислить арифметическое выражение http://www.cyberforum.ru/cpp-beginners/thread239262.html
пожалуйста помогите : Дано натуральное число n. Вычислить
C++ Задание с синусами и косинусами Две недели назад я выкладывал эту задачу на форуме. Мне помогли в ее решении, но решили неправильно. Сама задача такова: Вычислить S=cos1/sin1+(cos1+cos2/sin2+sin3)+...+(cos1+cos2+...+cosN)/(sinN+sin(n+1)+...+sin(2N-1). Вот что у меня получилось: #include <iostream> #include <math.h> using namespace std; int main() { подробнее

Показать сообщение отдельно
perimetral
1 / 1 / 0
Регистрация: 17.12.2010
Сообщений: 16

Brainf**k - C++

07.02.2011, 12:48. Просмотров 1341. Ответов 23
Метки (Все метки)

Народ, суть проблемы такова: наш препод по программированию сам только только окончил вуз, и, к сожалению, это дотавляет неприятности. Вот какое задание к лабораторной он дал:
"Как известно, язык Brainf**k есть интерпретируемый язык программирования с 8ю операциями: > < + - [ ] , .. Задача состоит в написании интерпретатора для него на C++.". Почитать о нем лучше всего на Вики. Это вроде не сложно. В крайнем случае можно взять известный интерпретатор на JS и переписать структуру под C++. Но для 5ки, нужно еще кое-что добавить: необходимо описать процедуры языка. Для управления процедурами добавить еще 3 оператора: ( ) :. Оператор ( должен начинать описание процедуры. Т.е. грубо говоря, функции. ID (как бы имя) процедуры есть число и сохраняется в ячейке, на которой стоит каретка при описании процедуры. Оператор ) заканчивает процедуру. Код в процедуре не выполняется при последовательном интерпретировании кода, и вызывается командой :. Команда : читает значение текущей ячейки и вызывает процедуру с ID, указанным в этой ячейке. Для работы в процедуру передается следующая ячейка (т.е. в самой процедуре каретка изначально будет стоять на ячейке n+1, где n - ячейка , хранящая ID процедуры).
Народ, пожалуйста, помогите, для повышенной стипендии как раз не хватает этого зачета на 5, буду очень благодарен! Сдавать в пятницу, так что, думаю, время есть. Собственно, нужен полный интерпретатор + новые 3 команды.
Пример кода с ними:
Код
>>>+(+++)<<<,>+:<[>>+<<-].
Тут мы в 3й ячейке (если отчет с 0 вести) ставим ID процедуры = 1, потом описываем процедуру (она трижды инкрементирует рабочую ячейку), потом возвращаемся в ячейку 0, вводим в нее символ, в ячейке 1 ставим единицу и вызываем процедуру с этим ID. Т.к. рабочая ячейка нашей процедуры в данном случае - ячейка 2, потому мы возвращаемся в ячейку 0 и переносим из нее значение в ячейку 2, прибавляя то, что там уже есть. Выводим результат - наш символ + 3 по ASCII.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru