Поиск:

Ответ в темуСоздание новой темы Создание опроса
> интерпретатор Basic 
:(
    Опции темы
jingoCSS
Дата 1.5.2011, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.7.2009
Где: Саратов

Репутация: нет
Всего: нет



Помогите в написании интерпретатор Basic на Прологе, пока наработок никаких, язык крайне не понятен. Если у кого есть киньте ссылки на нужные темы, если есть исходник будет вообще здорово. Еще если кто может киньте хорошую ссылку или пример кода сюда как обрабатывать списки (и как вообще описать переменную типа список).
И еще хорошо будет если подскажите где лучше делать такое в turbo Prolog, Visual Prolog или в другом ЯП используя файл пролога как БЗ. 
Я надеюсь на вашу помощь)
PM MAIL ICQ   Вверх
jingoCSS
Дата 2.5.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.7.2009
Где: Саратов

Репутация: нет
Всего: нет



Блин, что-то мертвый уже какой-то форум(
Подскажите хотя бы кто может, как мне обработать скажем вот такие конструкции:

1) If (a < 6) then b = 8 else b = 9;
2) b = a*x+4*f;
3) while(a<7) { f = t/3; abs(f); a++;  }


Это сообщение отредактировал(а) jingoCSS - 2.5.2011, 09:48
PM MAIL ICQ   Вверх
Фантом
Дата 2.5.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 6
Всего: 49



Цитата(jingoCSS @  1.5.2011,  08:23 Найти цитируемый пост)
Помогите в написании интерпретатор Basic на Прологе, пока наработок никаких, язык крайне не понятен. 

Если Вам надо сделать это в качестве учебного задания - Вам в "Центр помощи". Если же это просто задача - сначала сделайте что-нибудь попроще; пока "язык крайне не понятен", делать что-то нетривиальное бессмысленно.
PM   Вверх
jingoCSS
Дата 2.5.2011, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.7.2009
Где: Саратов

Репутация: нет
Всего: нет



Это курсовая, а в центре помощи там платно?)) Мне бесплатно надо)

Ну как, я делал простенькие задачки с генеологическим древом, и с графами) про факты и правила я вроде понимаю, со списками беда (там он делится как я понял на верхний элемент и все остальные и как то с помощью этого можно рекурсию организовать для проверки всего списка, а как это сделать я не знаю, книги читал но всё как то не то, нужен живой пример рабочий)
PM MAIL ICQ   Вверх
dorogoyIV
Дата 6.5.2011, 17:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



если я правильно понял... :
(VP)
Код

% if(a < 6) then b = 8 else b = 9
domains
    i = integer
predicates
    nondeterm test(i, i)
clauses
    test(I, I2):- I < 6, I2 = 8.
    test(_, I2):- I2 = 9.
goal
    test(7, X), write().


Код

% b = a * x + 4 * f
domains
    i = integer
predicates
    nondeterm test2(i, i, i, i)
clauses
    test2(I, I2, I3, I4):- I2 = I * I3 + 4 * I4.
goal
    test2(1, X, 3, 4), write().


с третьим лень было возиться...  smile 

Это сообщение отредактировал(а) dorogoyIV - 6.5.2011, 17:44
PM MAIL   Вверх
jingoCSS
Дата 6.5.2011, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.7.2009
Где: Саратов

Репутация: нет
Всего: нет



)) Спасибо за ответ, но к сожалению не правильно поняли)

If (a < 6) then b = 8 else b = 9; , вот эту строку нужно как-то по элементам занести в список и обработать)

Я предполагаю должно получиться что то вроде такого:

list = "If","(a<6)","then","b=8","else","b=9",";". , и это уже как то я так предполагаю рекурсивно парсить.

а как в турбо прологе список задать я толком даже не понял ( list = symbol*    << вроде вот так символьный, но я не уверен)


PM MAIL ICQ   Вверх
dorogoyIV
Дата 6.5.2011, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: нет
Всего: 46



во блин!  smile 
я на Java такое с трудом распарсил (калькулятор написал), а на прологе не хочется даже начинать  smile 
(распарсить не сложно, сложно потом собрать все в формулу и подсчитать, учитывая приоритеты, отрицательные значения, скобки, ...)

применяют алгоритм - точно не помню название - то ли "Польский..." , что то с польским связано...
PM MAIL   Вверх
jingoCSS
Дата 7.5.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 17.7.2009
Где: Саратов

Репутация: нет
Всего: нет



Да вот говорят что на прологе такие вещи занимают 7 строчек)))
Может и семь конечно, а вот разбираться как их написать к сожалению никакого желание, если б на С++ или дельфи надо было задание сделать думаю было бы проще)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0896 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.