Магазин ELEGANZZA  
 
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Язык Пролог.

  1. #1
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    Smile Язык Пролог.

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

    Выкладываем здесь свои вопросы и задания, и, может быть, общими усилиями мы с вами сможем сделать жизнь друг друга немного проще

    Начну, пожалуй,я. Есть задание, уже недели 2 голову ломаю, как это можно было бы реализовать. Вариантов 15, как минимум, уже накопилось, но, как ни странно, рабочего нет =) Если бы это был С/C++, Паскаль, Дельфи и любой другой алгоритмический язык, реализовывалось бы всё на раз-два. Может быть, есть знатоки, кто сможет помочь разобраться и с Прологом.

    Задание такое: организовать ввод слова и процедуру разделения его на отдельные буквы, полученные буквы упорядочить в алфавитном порядке.

    Расскажу, какой у меня порядок мыслей. Описываю 3 предиката: основной, процедура перестановки букв и сортировка. В основном предикате просто запрашиваю ввод слова, ввожу его, потом сортировка и вывод результата.
    В предикате сортировки просто вызываю предикат перестановки и делаю рекурсию (граничное условие, когда вводимое слово и сортированное полностью идентичны). А вот с предикатом перестановке всё хуже. Я его пробовала описывать так: считываю frontchar'ом первый и второй символы, затем сравниваю их, тот, который больше, присоединяю обратно к слову, тот, который меньше, записываю в новую (пока пустую) строку (понятно, что сравниваются ASCII-коды символов), затем рекурсивно вызываю опять эту же процедуру до тех пор, пока исходное слово не кончится.

    Вот, в общем, и всё. Есть ещё варианты, когда из исходного слова формируем символьный список и работаем уже с ним, но это некомильфо, т.к. всё должно быть гораздо проще.

    Итак, кто в курсе как и что, дерзаем. Буду весьма признательна.
    П.С.: Готовые коды скидывать не нужно, просто объяснить, может, в алгоритме какая ошибка. Свои коды скину чуть попозже, сейчас набивать нет времени.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

  2. #2
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    Всё, немного подумала и справилась сама =)

    Выкладываю код:

    PREDICATES
    do
    per(string,string)
    sort(string,string)
    GOAL do.
    CLAUSES
    do:- clearwindow, write("Slovo: "), readln(S), nl,
    sort(S,R), write("Result: ",R).
    sort(S,R):- per(S,T), sort(T,R).
    sort(S,S).
    per(S,R):- frontchar(S,C1,I), frontchar(I,C2,P), C1>C2,
    frontchar(Q,C1,P), frontchar(R,C2,Q).
    per(S,R):- frontchar(S,C,I), per(I,P), frontchar(R,C,P).

    Если у кого-то есть какие-то вопросы и задачки интересные - выкладывайте, порешаем!
    Последний раз редактировалось lutik; 31.10.2010 в 19:03.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

  3. #3
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    Задание: сформировать вещественнй список с проверкой (ввод цифр - с клавиатуры); найти минимальный элемент, вычесть его из всех элементов списка и упорядочить полученный список по убыванию.

    Код:
    Спойлер


    П.С.: если кто-то будет пользоваться прогой, и что-то будет неясно - пишите, я всё делаю сама, так что если надо, могу объяснить, что и откуда.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

  4. #4
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    2Candyman
    Задание: упорядочить символьный список по убыванию.

    Выкладываю код для программы с внешней целью. После компиляции и запуска на выполнение (Alt+R) появится окно диалога с приглашением ввести цель. Целью будет являться предикат sort, которому в качестве первого параметра нужно указать символьный список, вводя его в квадратных скобках, каждый символ в одиночных кавычкам и через запятую, а в качестве второго параметра - любую заглавную букву латинского алфавита, куда Пролог запишет результат. Для того, чтобы сделать эту же программу с внутренней целью, необходимо ввести ещё один предикат, например do, и определить в нём, как будет читаться с устройства ввода список (м.б. с клавиатуры, м.б. из файла).

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

  5. #5
    Гость Аватар для Jlekap
    Регистрация
    01.12.2010
    Сообщений
    2

    По умолчанию Re: Язык Пролог.

    Помогите решить задачу, в строках вообще 0 полный

    Извлечите подстроки, расположенные в верхнем столбце, из заданных строк в нижнем столбце:
    Выходные подстроки
    "Tom Shallack"
    "account"
    "Juniper tar"
    "anti-itch"
    "skin disorders"

    Входная строка
    "Tom Shallack is an
    account"
    "Juniper tar ia an
    anti-itch treatment
    for skin disorders"

    Turbo Prolog 2.8

    Задание 2


    --- Добавлено в 13:58 ---------- Предыдущее сообщение было в 13:56 ---

    /* Программа: А - 1 */Вывод инфо на экран дисплея */
    /* и на принтер */

    domains

    str = string

    predicates

    data(str)
    write_lines

    goal

    write_lines.

    clauses

    data("A drum, a drum!").
    data("Macbeth does come").
    data("The weird sisters, hand in hand,").
    data("Posters of the sea and land,").
    data("Thus do go about, about:").
    data("Thrice to thine and thrice to mine.").
    data("And thrice again, to make up nine.").

    write_lines :-
    data(Line),
    write(" ",Line),nl,
    writedevice(printer),
    write(" ",Line),nl,
    flush(printer),
    writedevice(screen),
    fail.
    write_lines.

    Внести изменения в программу А -1, так чтобы она выводила урывок стиха:


    Я памятник себе воздвиг нерукотворный,

    К нему не зарастет народная тропа,

    Вознесся выше он главою непокорной

    Александрийского столпа.


    Нет, весь я не умру — душа в заветной лире

    Мой прах переживет и тленья убежит —

    И славен буду я, доколь в подлунном мире

    Жив будет хоть один пиит.

    Turbo Prolog 2.8

  6. #6
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    Ок, как будет свободное время на выходных - посмотрю.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

  7. #7
    Гость Аватар для Jlekap
    Регистрация
    01.12.2010
    Сообщений
    2

    По умолчанию Re: Язык Пролог.

    Задачи со строками сделал уже. С файлами пока не могу разобраться.

  8. #8
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    Текс, посмотрела я прогу с выводом текста...А в чём там, собственно, проблема-то? Чтобы она выводила именно этот стих, надо просто именно его и вписать вместо того, что уже в примере, а больше ничего менять не надо.
    Примерный текст:
    Спойлер


    Вот только проблемка в том, что русские буквы Пролог плохо кушает, делает из них иероглифы. Надо либо ставить соответствующие драйвера, ибо прожка рассчитана под дос, либо писать латиницей.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

  9. #9
    Гость Аватар для Pozitiv4ik
    Регистрация
    17.04.2012
    Возраст
    18
    Сообщений
    1

    По умолчанию Re: Язык Пролог.

    Здравствуйте,помогите мне пожалуйста. мне надо написать программу, чтобы она переписывала данные файла в обратном порядке.я не поняла эту темуа лаб.работу сдавать надо

  10. #10
    ...на клумбе жизни.. Аватар для lutik
    Регистрация
    12.09.2006
    Возраст
    22
    Сообщений
    123

    По умолчанию Re: Язык Пролог.

    Ох ты ж ё-моё))) Откопали темку =)
    Ладно, повезло, что я этим теперь по жизни занимаюсь) Давай задание, чтобы чётко, внятно и с расстановкой, что сделать надо, какой файл, надо ли его создавать или он уже есть и тд и тп.
    У меня богатый словарный запас: в нем слова "клепсидра", "перст указующий" и даже "ибо". Но некоторые мысли я не могу выразить словами. Хочется взять черенок от лопаты и отчить всех.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Язык формирует сознание?
    от ich в разделе Культура и религия
    Ответов: 79
    Последнее сообщение: 25.11.2010, 11:02
  2. Язык жестов
    от lesya в разделе Беседка
    Ответов: 33
    Последнее сообщение: 08.06.2005, 15:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Рейтинг@Mail.ru

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120