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

Вывод сообщения при неудачном поиске

04.02.2013, 19:55. Показов 1370. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
Изучаю пролог, возникла не большая трудность в решении задания из лабораторной работы.

Задание 12.
Составить программу "История", которая при введении даты (года) выводит на экран сообщение о соответствующих исторических событиях, которые произошли в данном году. Если указанная
дата отсутствует в базе данных программы, то программа должна выдать соответствующее
сообщения.


То что требуется в первом предложении, я сделал. Как программно узнать, что поиск ничего не нашел я не знаю. Буду признателен за любые подсказки или готовые решения.

Вот код:
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
    /* FAIL HISTORY.PRO */ 
domains 
    event=string  
    date=integer
    User_date=integer
    
predicates 
    historical_events(event,date)
    read_date(User_date)         
    find_date
    show_res
        
clauses 
    historical_events("event_1",6). % "event_1" - событие, 6 - год
    historical_events("event_2",7).
    historical_events("event_3",8).
    historical_events("event_4",8).
    historical_events("event_5",9).
    historical_events("event_6",9).
    historical_events("event_7",10).
 
    read_date(User_date):-
        write("Enter year: "), readint(User_date), nl.      
    
    find_date:-
        read_date(User_date),  
        historical_events(Event,Date),      
        User_date=Date,     
        write("Event: ",Event),nl,fail. 
    
    show_res:- not(find_date), write("Events were not found."),nl.  % <- пытался сделать так, но write выводит  сообщение и при удачном поиске, и при неудачном    
    
goal 
    clearwindow,find_date/*,show_res*/.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2013, 19:55
Ответы с готовыми решениями:

Поиск в одном TextBox значений из второго. Уведомление о неудачном поиске
Пишешь в textBox1 и это слово находит программа в textBox2 при этом меняя цвет текста + если такого текста\слова нету, то вылетает смс.....

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

Вывод id при поиске по всем таблицам БД (PL/SQL)
Пишу процедуру по поиску текстового значения по всем таблицам, к выводимой информации необходимо добавить соответствующий id найденного...

2
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
04.02.2013, 21:06
Prolog
1
2
3
4
5
find_date:-read_date(User_date),show_events(User_date).
 
show_events(Date):-not(historical_events(_,Date)),!,write("Nichego ne bilo\n").
show_events(Date):-historical_events(Event,Date),write("Event: ",Event),nl,fail.
show_events(_).%что бы все-таки удачей завиршилось
1
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 15
05.02.2013, 00:11  [ТС]
Грымзик, пробовал вставить ваш код:
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
domains 
    event=string  
    date=integer
    User_date=integer
    
predicates 
    historical_events(event,date)
    read_date(User_date)         
    find_date   
    show_events(User_date)
        
clauses 
    historical_events("event_1",6). 
    historical_events("event_2",7).
    historical_events("event_3",8).
    historical_events("event_4",8).
    historical_events("event_5",9).
    historical_events("event_6",9).
    historical_events("event_7",10).
 
    read_date(User_date):-
        write("Enter year: "), readint(User_date), nl.      
    
    find_date:-read_date(User_date),show_events(User_date).
 
    show_events(User_date):-not(historical_events(_,User_date)),!,write("Nichego ne bilo\n").
    show_events(User_date):-historical_events(Event,User_date),write("Event: ",Event),nl,fail.
    show_events(_). %что бы все-таки удачей завиршилось                
    
        
    
goal 
    clearwindow,find_date.
При запуске мне выдает ошибку на 26 строке: 505 Type error: Illegal variable type for this position.

Добавлено через 2 часа 13 минут
Разобрался. Заменил
Prolog
1
2
3
predicates 
    ...   
    show_events(User_date)
на
Prolog
1
2
3
predicates 
    ...   
    show_events(integer)
и все заработало.
Тему можно закрыть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2013, 00:11
Помогаю со студенческими работами здесь

Запуск программы при удачном пинговании и её завершение при неудачном
Здравствуйте такой вопрос. Мне необходимо что бы bat пинговал и при неудачных пингах закрывал программу, но как только линк подымется что...

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

Выход при неудачном подключении
Создаю windows forms приложение, в конструкторе создания главной формы создаю подключение и пытаюсь его открыть, обрабатываю try catch, и...

Как сделать вывод из БД данных при поиске независимо от регистра букв
ПРивет всем! Подскажите пожалуйста как сделать вывод из БД данных при поиски независимо от регистра букв? есть в контроллере поиск по...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru