Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
dellink
0 / 0 / 1
Регистрация: 18.12.2011
Сообщений: 48
1

Создать список в отдельном окне, а затем найти в нем заданные числа

18.12.2011, 12:18. Просмотров 485. Ответов 2
Метки нет (Все метки)

Мне нужно с помощью меню, в одном из окон, создать список, а затем посмотреть являются ли заданные X и Y последовательными элементами списка, без меню это получается...там в goal задаю список и члены , которые нужно проверить, а в меню не получается....пробовал делать в process(1), но не могу понять как в начале сформировать список из введенных значений...как дать понять, что L - это список, а затем ввести две переменные X и Y и проверить являются ли они последовательными элементами списка..и вывод на экран результата..
Помогите, пожалуйста, подскажите, где можно почитать или подскажите способ такое реализовать, если он существует...может такое нельзя делать с помощью меню или я его неправильно строю.
Всем спасибо!
Не обращаете внимания на остальные пункты меню, там будут другие задачи, которые похожи по смыслу...
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
domains
 list = char*
predicates
 show_menu
 process(integer)
 repeat
 add_list(char,list,list)
goal
 show_menu.
clauses
 repeat.
 repeat:-repeat.
 show_menu:-repeat,makewindow(1,7,7,"Menu",4,10,20,50),nl,
            write("Menu"),nl,nl,
            write("1 - Proverka elementov spiska"),nl,
            write("2 - Razbienie spiska"),nl,
            write("3 - Udalenie iz stroki"),nl,
            write("4 - Proverka stroki"),nl,
            write("5 - Izvlechenie iz faila"),nl,
            write("6 - Udalenie iz faila"),nl,
            write("7 - Exit"),nl,nl,
            write("Please, select menu item"),nl,
            readint(X),nl,
            process(X), X=7, !.
 add_list(H,List,[H|List]).
 process(1):-makewindow(2,7,7,"Proverka elementov spiska",4,10,20,50),
             shiftwindow(2),
             write("Vvodite elementu. Tochka zakonchit"),
             nl,repeat,
             readchar(C),write(C), 
             add_list(C,L,[C|L]),
             C='.',!,nl,write("Zaconchili"),nl,
             write("Press any key"),readchar(_),
             removewindow.
 process(2):-makewindow(3,7,7,"Razbienie spiska",4,10,20,50),
             shiftwindow(3),
             write("Press any key"),readchar(_),
             removewindow.
 process(3):-makewindow(4,7,7,"Udalenie iz stroki",4,10,20,50),
             shiftwindow(4),
             write("Press any key"),readchar(_),
             removewindow.
 process(4):-makewindow(5,7,7,"Proverka stroki",4,10,20,50),
             shiftwindow(5),
             write("Press any key"),readchar(_),
             removewindow.
 process(5):-makewindow(6,7,7,"Izvlechenie iz faila",4,10,20,50),
             shiftwindow(6),
             write("Press any key"),readchar(_),
             removewindow.
 process(6):-makewindow(7,7,7,"Udalenie iz faila",4,10,20,50),
             shiftwindow(7),
             write("Press any key"),readchar(_),
             removewindow.
 process(7):-!.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2011, 12:18
Ответы с готовыми решениями:

При нажатии на ссылку создать выпадающей список в отдельном окне
Здравствуйте. Помогите реализовать следующее: На странице разместить ссылку <a id="AddCity"...

Отобразить список отчет в отдельном окне
Добрый день! Подскажите как при нажатии на кнопку открывается окно со списком отчетов, где при...

Создать двусвязный список и найти в нем максимум
прошу напишите пожалуйста прогу, которая создаст двусвязный список и найдёт в нем максимум

Создать помощник по программе с ее описанием в отдельном окне
Подскажите пожалуйста, как можно создать помощник по программе с ее описанием в отдельном окне....

Создать список из целых чисел, найти в нем максимальный и минимальный элементы и их индексы
Ребята, помогите написать код Задание: Создать список(стек) целых чисел и найти в нем максимальный...

2
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
18.12.2011, 16:51 2
У Вас и считывание списка не правильное. В прологе repeat не так работает, как в паскале. Надо так
Prolog
1
2
3
4
read_list(L):-readchar(C),read_list(C,L).
 
read_list('.',[]):-!.
read_list(H,[H|Tail]):-readchar(C),read_list(C,Tail).
А про основной Ваш вопрос - почитайте про assert/retract. Т.е будет так
...read_list(L),assert(list(L))...
И в остальных пунктах просто вызываете list(L)
1
dellink
0 / 0 / 1
Регистрация: 18.12.2011
Сообщений: 48
18.12.2011, 19:18  [ТС] 3
Спасибо большое, только мне теперь не совсем понятно как это реализовать...
Я делаю вот так, но не работает
Если у меня три read_list...как мне правильно его вызвать внутри process(1), чтобы
Не могу понять, как реализовать вывод полученного списка на экран, а затем ввести две переменные и вывести ответ...являются они последовательными элементами списка или нет...
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
domains
 list = char*
predicates
 show_menu
 process(integer)
 repeat
 read_list(list)
 read_list(char,list)
goal
 show_menu.
clauses
 repeat.
 repeat:-repeat.
 show_menu:-repeat,makewindow(1,7,7,"Menu",4,10,20,50),nl,
            write("Menu"),nl,nl,
            write("1 - Proverka elementov spiska"),nl,
            write("2 - Razbienie spiska"),nl,
            write("3 - Udalenie iz stroki"),nl,
            write("4 - Proverka stroki"),nl,
            write("5 - Izvlechenie iz faila"),nl,
            write("6 - Udalenie iz faila"),nl,
            write("7 - Exit"),nl,nl,
            write("Please, select menu item"),nl,
            readint(X),nl,
            process(X), X=7, !.
 read_list(L):-readchar(C),read_list(C,L).
 read_list('.',[]):-!.
 read_list(H,[H|Tail]):-readchar(C),read_list(C,Tail).
 process(1):-makewindow(2,7,7,"Proverka elementov spiska",4,10,20,50),
             shiftwindow(2),
             write("Vvodite elementu. Tochka zakonchit"),nl,
             read_list(_),
             nl,write("Zaconchili"),nl,
             write("Press any key"),readchar(_),
             removewindow.
Добавлено через 12 минут
Спасибо, изменил все заработала..неправильно вызывал read_list...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2011, 19:18

создать текстовый файл и определить есть ли в нем значения заданные с клавиатуры
Составить программу, которая создает текстовый файл, состоящий из N значений. Прочитать файл и...

Найти количество вхождений заданого числа N, в заданные массивы чисел. Как создать функцию?
Добрый вечер, в одной лабораторной мне попалось одно задание, связанное с созданием функций, все...

Создать односвязный список, затем вывести весь список в ListBox
#include "stdafx.h" #include <iostream> using namespace std; class List { public: ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru