Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 27.05.2016
Сообщений: 24

Перенос програмы из VIP5 в VIP9

29.04.2019, 19:57. Показов 1332. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, пытаюсь перенести код из темы вашего форума(про графы). Вот что получилось, но выдает ошибку:
Code
1
error c603 : The flow pattern '(i,o)' does not exist for 'main::move/2'
Почему компилятор думает что move(i,o), он же (i,i), и как это поправить?
P.S Заранее спасибо
Prolog
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
% Copyright
 
implement main
    open core
 
domains
    slist = string*.
    slistlist = slist*.
 
class facts
    arc : (string, string).
 
class predicates
    move : (string, string) nondeterm.
    search_bdth : (string, string).
    prolong : (slist, slist [out]) nondeterm.
    bdth : (slistlist, string, slist [out]).
    show_answer : (slist) determ.
    member : (string, slist) nondeterm.
    append : (slistlist, slistlist, slistlist [out]).
 
clauses
    arc("a", "b").
    arc("a", "b").
    arc("a", "b").
    arc("a", "b").
    arc("a", "b").
    arc("a", "b").
    arc("a", "b").
    move(A, B) :-
        arc(A, B).
    search_bdth(Start, Finish) :-
        bdth([[Start]], Finish, Way),
        show_answer(Way).
 
    member(H, [H | _]).
    member(H, [_ | Tail]) :-
        member(H, Tail).
 
    prolong([Temp | Tail], [New, Temp | Tail]) :-
        move(Temp, New),
        not(member(New, [Temp | Tail])).
 
    append([], B, B).
    append([H | Tail], B, [H | NewTail]) :-
        append(Tail, B, NewTail).
 
    bdth([[Finish | Tail] | _], Finish, [Finish | Tail]).
    bdth([TempWay | OtherWays], Finish, Way) :-
        Ways = [ W || prolong(TempWay, W) ],
        append(OtherWays, Ways, NewWays),
        bdth(NewWays, Finish, Way).
 
    show_answer([_]) :-
        !.
    show_answer([A, B | Tail]) :-
        show_answer([B | Tail]),
        console::write("\n"),
        console::write(B),
        console::write(" -> "),
        console::write(A).
    run() :-
        console::init(),
        stdio::write("Hello world!"),
        search_bdth("a", "d"),
        _ = console::readLine(),
        succeed().
 
end implement main
 
goal
    console::runUtf8(main::run).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2019, 19:57
Ответы с готовыми решениями:

Перенос програмы с BD
День добрый с помощью InstallShield создал установку перенес на другой комп выдало мне вот такую ошибку. как я понял он матерится...

Бинарное дерево по базе данных (VIP5.2)
Доброго времени суток! Нужно помощь с созданием бинарного дерева по базе данных на Visual Prolog 5.2 В Turbo Prologe у меня...

програмы
может у кого есть колекция прог по С++ буду сильно благодарен

1
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
30.04.2019, 06:03
Лучший ответ Сообщение было отмечено lexk как решение

Решение

Цитата Сообщение от lexk Посмотреть сообщение
Почему компилятор думает что move(i,o), он же (i,i)
С чего бы он (i,i), если в строке 41 по входному Temp находится выходной New?
Компилятор не совсем тупой, ему обычно лучше видно такие вещи.
Написал, что видит паттерн (i,o) - значит, есть место, где предикат так использован

Цитата Сообщение от lexk Посмотреть сообщение
и как это поправить?
Поставить [out]:
Prolog
1
    move : (string, string [out]) nondeterm.
Или явно прописать flow:
Prolog
1
    move : (string, string) nondeterm (i,o).
Кому совсем-совсем лень, ставят nondeterm anyflow
Но это фактически означает "компилятор, не лезь, я лучше знаю, сам буду косяки вылавливать"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2019, 06:03
Помогаю со студенческими работами здесь

Ненужные програмы
много запушеных програм каторые работают и что делают панятие не имею также и с интернетом

Описание програмы
Помогите сделать описание програмы !!! unit N355; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Алгоритм програмы
Помогите пожалуйста составить блок-схему программы))

ошибка програмы
почему при зыкрытии видео в контакте,выскакивает ошибка Java Update available,поверил всё что можно

Компилирование програмы
CSEG segment org 100h Begin: mov ah,9 mov dx,offset Message int 21h int 20h Message db 'Hello, world$' CSEG ends end Begin


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru