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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2014, 00:16   #1
Victorials2648
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 24
По умолчанию Работа со строками.Visual Prolog 5.2

Задание:
3. Дана строка символов s1,s2,...sn, в которой встречаются цифры, пробелы, буква Е и знаки + и -. Известно, что первый символ строки является цифрой. Из данной строки выделить подстроку предшествующую первому пробелу. Требуется: определить является ли это подстрока числом, если да, то выяснить целым или вещественным, положительным или отрецательным.

Через ...
Domains
...
predicates
...
clauses
..
goel
Victorials2648 вне форума Ответить с цитированием
Старый 21.03.2014, 21:33   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

В вашем турбо не подскажу, но суть будет понятна, поди.
Если у вас Visual Prolog, то стопудово там есть поддержка регулярных выражений - их и используйте.
А если не вижуал - то посмотрите сюда:
http://www.hardforum.ru/t115322/
Там описан оператор <- Ну в турбо вместо него опишите обычную функцию, это не влияет на суть (переименуете просто и аргумент передавать по-обычному будете).

Там же описан is_num
Ну а с этим оператором ваша задача решается так примерно:
Код:
p(S, plusint):-
  S <- [A], !, is_num(A).
p(S, plusreal):-
  S <- [A, ".", B], !, is_num(A), is_num(B).
p(S, minusint):-
  S<- ["-", A], !, p(A, plusint).
p(S, minusreal):-
  S <- ["-", A], !, p(A, plusreal).
Оператор этот реализован очень криво и примитивно стандартным append:
Код:
R <- ([A, B]):-
    !, append(A, B, R).
R <- ([A|T]):-
    append(A, TR, R),
    TR <- T,
    append(A, TR, R), !.
Ну т.е. его в любом прологе можно приделать. Но а лучше регулярные выражения использовать - оно верней.

Ответил бы раньше, но пароль не восстанавливался у меня тут
rrrFer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа со строками в Visual C++ Romowski Помощь студентам 7 25.12.2012 09:36
C++(Visual). Работа со строками. RayBM Помощь студентам 0 18.09.2012 21:48
Работа со строками(visual c++) Vitalka Помощь студентам 3 17.12.2010 13:08
Prolog(Arity) работа со строками DJAmbulance Помощь студентам 0 04.11.2010 16:11
работа со строками в visual c++ 6.0 MURREX Помощь студентам 1 09.12.2008 10:57