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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2015, 20:45   #1
Magenta
Пользователь
 
Регистрация: 25.03.2015
Сообщений: 14
По умолчанию Turbo Prolog Работа со списками

Уважаемые форумчане, т.к. я ещё совсем новичок в прологе, помогите с кодом.

Требуется:

1 прога: Создать предикат, выполняющий создание списка из случайного количества случайных вещественных чисел из промежутка от A до B.

2 прога: Создать предикат, выполняющий замену каждого вхождения заданного слова в строке на символ «*».
Magenta вне форума Ответить с цитированием
Старый 02.04.2015, 21:07   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

первая задачу гуглится частями:
- сгенерировать случайное число на Prolog (в Турбо прологе есть встроенная функция типа random)
- Заполнить список случайными числами на Prolog.

При заполнении вызываешь тот random, что есть в Turbo.

Чтобы получить числа в диапазоне [A, B] - вычисляешь:
Код:
Frac = B - A, 
Random = Random(Frac), 
Number = A + Random
Ну а чтобы число получилось дробным - можешь сначала вычислить значения для
Код:
BigA = A * 10, BigB = B*10
Ну а потом, поделить результат на 10.

во второй задаче гугли:
- "Преобразование строки в список символов. Turbo Prolog" - после этого, ты можешь обрабатывать строку также как список (и использовать готовый код, написанный для других видов пролога).
- "Преобразование строки в список слов" - ведь тебе надо обрабатывать слова, а не отдельные символы

Готовыми функциями преобразуешь строку в список символов, список символов в список слов. Преобразуешь искомое слово в список символов. Осталось заменить:
Код:
swap([], _Word, []):-!.
swap([Word|Tail], Word, [['*']|SwapTail]):-
  swap(Tail, Word, SwapTail),!.
swap([Head|Tail], Word, [Head|SwapTail]):-
  swap(Tail, Word, SwapTail).
Схематично.
rrrFer вне форума Ответить с цитированием
Старый 02.04.2015, 21:35   #3
Magenta
Пользователь
 
Регистрация: 25.03.2015
Сообщений: 14
По умолчанию

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo prolog Programmist26 Помощь студентам 0 06.06.2013 22:20
Turbo Prolog Friends Помощь студентам 1 24.12.2011 09:10
Turbo Prolog. загадочная Помощь студентам 2 25.10.2011 08:51
Turbo Prolog L11L Помощь студентам 0 22.04.2010 11:17
Работа со строками, списками, файлами (Turbo Pascal) kerosine Помощь студентам 2 24.12.2009 02:58