Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2007, 22:07   #1
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию Работа со строками на Пролог

Плиз помогите кто может.... Надо написать программу на языке ТурбоПролог, чтобы она осуществляла последовательный ввод символов с клавиатуры и выводила строку, добавляя новый символ в ее начало.

вот что получилось у меня:
domains
s=char
predicates
print
clauses
print:- readchar(L),
frontchar(S,L,""),
nl, write(S),
print.

Но оно постоянно добавляет символ в пустую строку и я не знаю как сделать так, чтобы добавляло к уже существующим. и к тому же оно зацикливается и я не знаю как организовать выход из цикла.

Заранее спасибо за помощь.
yulia вне форума Ответить с цитированием
Старый 15.11.2007, 03:04   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,087
По умолчанию

если я правильно понял задачу, то:
Код:
predicates
  print(string)
clauses
  print(NStr) :-
    ReadChar(X),
    X <> 13,
    frontchar(Str,X,NStr),
    write(Str),nl,
    print(Str).
  print(_).

goal
  print("").
Ввод продолжается, пока Enter не нажмешь

Последний раз редактировалось pu4koff; 15.11.2007 в 03:08.
pu4koff вне форума Ответить с цитированием
Старый 16.11.2007, 01:05   #3
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Спасибо огромное!!! Прога супер - то что надо было!!!!
Только можно мне еще объяснить, что такое
X<>13 - что такое 13? Как я понимаю, это код Enter?
И еще, зачем нам print(_).? И что это значит?
yulia вне форума Ответить с цитированием
Старый 16.11.2007, 09:39   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,087
По умолчанию

Цитата:
Сообщение от yulia Посмотреть сообщение
Спасибо огромное!!! Прога супер - то что надо было!!!!
Только можно мне еще объяснить, что такое
X<>13 - что такое 13? Как я понимаю, это код Enter?
И еще, зачем нам print(_).? И что это значит?
да 13 - Enter.

print(_) в данном случае это не надо, но если ты в goal напишешь:
print(""),
write("конец").
то write без этой строки по моему не выполнится.
_ - это значит нам пофиг че за параметр.
попадем на эту строчку как раз, когда нажмем Enter.
pu4koff вне форума Ответить с цитированием
Старый 16.11.2007, 09:51   #5
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

pu4koff рулит .. кстати мы тоже начали изучать (Турбо)Пролог
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 16.11.2007, 12:01   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,087
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
pu4koff рулит .. кстати мы тоже начали изучать (Турбо)Пролог
у меня уже курс пролога и лиспа закончился можно сказать к счастью, т.к. лабы в свое время половине группы делал. В итоге каждую пару бегал от одного к другому, чтобы объяснить как его лаба работает. Правда кошелек мой благодаря этим языкам слегка потолстел
pu4koff вне форума Ответить с цитированием
Старый 16.11.2007, 20:49   #7
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Спасибо огромное!!!
yulia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками GoAnd Общие вопросы по Java, Java SE, Kotlin 9 22.09.2010 03:36
РАБОТА СО СТРОКАМИ kluwa Общие вопросы C/C++ 7 20.12.2007 18:30
Работа со строками Nividimka Помощь студентам 11 03.03.2007 15:58