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

Меню на прологе

17.03.2010, 16:41. Показов 8606. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать меню на turbo prolog 2.0. Вообще задача решена, но не могу создать меню....
Помогите! Очень срочно!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2010, 16:41
Ответы с готовыми решениями:

Меню на прологе
СОРТИРОВКА ВСТАВКОЙ: domains list=integer* predicates insert_sort (list, list) insert (integer, list, list) asc_order (integer,...

Списки в прологе
Перенести в конец списка все четные элементы.

Рекурсия в прологе
Добрый день,имеется код: PREDICATES nondeterm родитель(symbol,symbol) nondeterm предок(symbol,symbol) CLAUSES ...

12
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
17.03.2010, 16:46
А конкретнее можно? Выложи код проги и опиши какое меню хочешь.
0
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 16
22.03.2010, 13:44  [ТС]
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
domains
tel=real
imya=string
predicates
spravochnik(imya,tel)
clauses
spravochnik(anya,12121).
spravochnik(borya,23232).
spravochnik(vika,14343).
spravochnik(gosha,25454).
spravochnik(dasha,12312).
spravochnik(zhenya,11111).
spravochnik(tanya,22222).
spravochnik(sveta,21313).
spravochnik(liza,12332).
Goal 
 
spravochnik(I, T), write(" Telefonnii spravochnik"),nl,
write(" Imya Nomer"),
nl,spravochnik(I,T), write(I," ",T),nl,fail.
 
write (" Imya"), Readln(I), nl, 
write ("Imya     Nomer"), nl,
spravochnik(I,T), write(I," ",T), nl, fail.
 
write("Nomer: "), Readln(T), nl,
write("Nomer  Imya"),nl,
write(I," ",T), nl, fail.


Возникла проблема в
write("Nomer: "), Readln(T), nl,
write("Nomer Imya"),nl,
write(I," ",T), nl, fail.
ничего не выводит, а должен выводить по введенному номеру имя и номет абонента....


и для этой же задачи меню нужно в поле dialog...
в меню должны быть пункты
1.вывести телефонный справочник
2.вывести телефон по имени абонента
3.вывести имя по номеру телефона
4.выход
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
22.03.2010, 17:04
Не так уж у Вас и срочно было
Эта прога будет запрашивать команду, пока не введете 4. Номера телефонов и имена абонентов могут повторяться, тогда будут выведены все подходящие.
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
domains
tel=real
imya=string
 
predicates
spravochnik(imya,tel)
command(integer)
read_command
 
clauses
spravochnik(anya,12121).
spravochnik(borya,23232).
spravochnik(vika,14343).
spravochnik(gosha,25454).
spravochnik(dasha,12312).
spravochnik(zhenya,11111).
spravochnik(tanya,12121).
spravochnik(sveta,21313).
spravochnik(sveta,12332).
 
command(1):-spravochnik(A,B),write(A," - ", B),nl,fail.
command(2):-write("Vvedite imya abonenta: "),readln(Name),spravochnik(Name,T),write(T),nl,fail.
command(3):-write("Vvedite nomer telefona: "),readreal(T),spravochnik(Name,T),write(Name),nl,fail.
command(1):-read_command.
command(2):-read_command.
command(3):-read_command.
command(4).
 
read_command:-write(">"),readint(C),command(C).
 
Goal
write(" Telefonnii spravochnik"),nl,
write("1 - Vivesti telefonni spravochnil"),nl,
write("2 - Vivesti telefon po imeni abonenta"),nl,
write("3 - Vivesti imya po nomeru telefona"),nl,
write("4 - Vihod"),nl,
read_command.
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 16
24.03.2010, 15:56  [ТС]
Срочно то оно срочно, просто инет не всегда под рукой

Добавлено через 58 секунд
Еще такой вопрос... А как сделать так. Вот смотри:
Запускаем задачу выводится меню. Нажимаем цифру -> enter, выводится ответ,
Далее нужно нажать enter и что бы меню заново выводилось на экран?
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
24.03.2010, 16:02
Не очень поняла, чтобы каждый раз кроме строчки запроса еще и меню выдавалось?
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
domains
tel=real
imya=string
 
predicates
spravochnik(imya,tel)
command(integer)
read_command
main
 
clauses
spravochnik(anya,12121).
spravochnik(borya,23232).
spravochnik(vika,14343).
spravochnik(gosha,25454).
spravochnik(dasha,12312).
spravochnik(zhenya,11111).
spravochnik(tanya,12121).
spravochnik(sveta,21313).
spravochnik(sveta,12332).
 
command(1):-spravochnik(A,B),write(A," - ", B),nl,fail.
command(2):-write("Vvedite imya abonenta: "),readln(Name),spravochnik(Name,T),write(T),nl,fail.
command(3):-write("Vvedite nomer telefona: "),readreal(T),spravochnik(Name,T),write(Name),nl,fail.
command(1):-main.
command(2):-main.
command(3):-main.
command(4).
 
read_command:-write(">"),readint(C),command(C).
 
main:-
write(" Telefonnii spravochnik"),nl,
write("1 - Vivesti telefonni spravochnil"),nl,
write("2 - Vivesti telefon po imeni abonenta"),nl,
write("3 - Vivesti imya po nomeru telefona"),nl,
write("4 - Vihod"),nl,
read_command.
 
 
Goal
main.
2
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 16
24.03.2010, 16:15  [ТС]
Почти так. Но нада вот: я выбрала например 2 нажала ентер вывелся ответ, нажала еще раз ентер вывелось меню

Добавлено через 6 минут
Почти так. Но нада вот: я выбрала например 2 нажала ентер вывелся ответ, нажала еще раз ентер вывелось меню


****мне просто очень срочно, я сижу сдаю, а пара скоро кончится
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
24.03.2010, 16:15
Тогда замените
Prolog
1
2
3
command(1):-main.
command(2):-main.
command(3):-main.
на
Prolog
1
2
3
command(1):-readchar(_),main.
command(2):-readchar(_),main.
command(3):-readchar(_),main.
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 16
24.03.2010, 16:27  [ТС]
спасибо

Добавлено через 9 минут
Я может покажусь наглой, но не могла бы ты помочь с еще одной задачей
последняя. Но эту можно не прям щас писать...
хотя бы до понедельника сделать..
Написать программу для удаления из списка 2-ого, 4-ого и т.д. элементов. Например список [6, 5, 4, 3, 2, 1] преобразуется в список [6, 4, 2].
А тема: рекурсия

Буду очень благодарна
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
24.03.2010, 16:35
Не понимаю, зачем здесь рекурсия...
del([A,_,C,_|Tail],[A,B|Tail]).
0
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 16
24.03.2010, 18:12  [ТС]
такая "тема" задания, без рекурсии не примут задачу, но если не получится с рекурсией то хотя бы так
0
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 3
18.05.2011, 16:48
Помогите, пожалуйста. Побродила по сайту, нашла пример меню, но что-то свои пункты задания подставить не могу, ругается на меня *печальный смайлик
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
Domains
   type=integer
   list=type*
predicates
   repeat
   process(integer)
   show_menu
   del(type,list,list)  [COLOR="Red"](правильно ли тут написано?)[/COLOR]
 goal
  result.
   
 clauses
   result:-
   show_menu,nl,write("Press any button to exit"),
   readchar(_),exit.
  repeat.
  repeat:-repeat.
  
  show_menu:-
  repeat,
  makewindow(1,7,7,"Choose nessesary Task",4,12,16,48),nl,
  write(" 1 Task1 "),nl,
  write(" 2 Task2 "),nl,
  write(" 3 Task3 "),nl,
  write(" 4 Task4 "),nl,
  write(" 5 Task5 "),nl,
  write(" 6 Task6 "),nl,
  write(" 0 Exit "),nl,
  write("Enter number from 0 to 6  "),
  readint(N),N<7,process(N),N=0,!.
 
process(0):-
  nl,write("Exit menu").
process(1):-
  makewindow(3,7,7,"Task1",11,39,12,35),
  write("Insert string "),nl, [COLOR="Red"]( в оригинале тут еще надпись result(1), но у меня ругается, говорит illegal number of argument) [/COLOR]
  nl,write("Press any button "),
  readchar(_),removewindow,!.
process(2):-
  makewindow(3,7,7,"Task2",11,39,12,35),
  readchar(_),removewindow,!.
process(3):-
  makewindow(3,7,7,"Task3",11,39,12,35),
  readchar(_),removewindow,!.  
process(4):-
  makewindow(3,7,7,"Task4",11,39,12,35),
  readchar(_),removewindow,!.
process(5):-
  makewindow(3,7,7,"Task5",11,39,12,35),
  readchar(_),removewindow,!.
process(6):-
  makewindow(3,7,7,"Task6",11,39,12,35),
  readchar(_),removewindow,!.
  
  %Task1 (типа удаление конца списка после заданного элемента)
  del(1,_,[] ) :  -!.
  del(Num,[X|T],[X|T1]):-N=Num-1,del(N,T,T1).
 goal
    del(5,[4,11,-5,8,2,3,9,-5,2,10],L).


Уважаемые знатоки, прошу помощи. Поправьте меня, где ошибка
0
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 4
15.12.2015, 12:20
то что искал, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2015, 12:20
Помогаю со студенческими работами здесь

Рекурсия: найти все возможные способы полной упаковки рюкзака
Помогите написать программу на прологе. С помощью рекурсии. Даны набор элементов багажа разного веса (в виде списка) и...

Программа на прологе
cut

Помощь в прологе
/* файл family.pro */ predicates nondeterm male(symbol) /*мужчина(кто)*/ nondeterm female(symbol) /* женщина */ nondeterm...

Задачи на прологе
Всем приветик:). Помогите решить 3 задачки на прологе кому не сложно, буду очень благодарна:) Списки: 1)Определите, сколько раз...

Задачи на Прологе
Люди,ситуация следующая. Изучаем с ребятами в институте «Основы искусственного интеллекта» (из лабораторок-программирование на Паскале,с...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru