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

Вывод детей человека

02.06.2010, 01:01. Показов 1928. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!!! Возникла такая проблема. В БД хранится информация о людях, кто кому является родителем итд итп. Допустим у Cody есть сыновья Edward, Lucas и дочь Lilian. Мне требуется вывести детей Cody, я пишу так:

Prolog
1
2
3
4
5
6
7
print_son(Imya):-roditel(Imya,X),Man(X),write("Сын: "),write(X),nl.
print_doch(Imya):-roditel(Imya,Y),Woman(Y),write("Дочь: "),write(Y),nl.
 
a('b'):-write("Введите имя человека"),nl,
               readln(Imya),
               print_son(Imya),
               print_doch(Imya).
Он мне выводит что у Cody есть сын Edward, и дочь Lilian, а Lucasa не выводит, как мне сделать чтобы выводило всех детей?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2010, 01:01
Ответы с готовыми решениями:

Написать функцию GetFamily которая будет перечислять самого человека, его детей, внуков
// Написать функцию GetFamily которая будет перечислять самого человека, его детей, внуков, // правнуков и т.д. и которую можно будет...

Вывод из БД родителей и детей
Привет. Есть таблица такой структуры: N--|-DE-|-NAME---------------|--PARENT--| 1--|--1--|--Автомобили-------|-----0------| ...

Вывод списка детей при нажатии на строку в dbgrid
Ребят, помогите!!! Создаю программу учета детей в детском саду в делфи, а база данных аксес. На форме есть два dbgrid-a, в одном таблица...

8
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
02.06.2010, 01:11
Prolog
1
2
print_sons(Imya):-print_son(Imya),fail.
print_sons(_).
1
0 / 0 / 0
Регистрация: 13.06.2009
Сообщений: 47
02.06.2010, 01:31  [ТС]
Выдает такой ответ:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
Сын: Edward
Сын: Edward
Сын: Lucas
Сын: Lucas
Сын: Edward
Сын: Edward
Сын: Lucas
Сын: Lucas
Дочь: Lilian
Дочь: Lilian
Дочь: Lilian
Дочь: Lilian
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
02.06.2010, 01:36
Да, что-то странно Выложите весь код.
0
0 / 0 / 0
Регистрация: 13.06.2009
Сообщений: 47
02.06.2010, 01:41  [ТС]
Всего кода много, выложил где это используется
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
       print_son(Imya):-roditel(Imya,X),Man(X),write("Сын: "),write(X),nl.
       print_doch(Imya):-roditel(Imya,Y),Woman(Y),write("Дочь: "),write(Y),nl.
       
       print_sons(Imya):-print_son(Imya),fail.
       print_sons(_).
       
       print_dochs(Imya):-print_doch(Imya),fail.
       print_dochs(_).
 
       menu:-write("Запросы к базе данных:"),nl,
       write("        a - Узнать кто является родителем человека"),nl,
       write("        b - Узнать какие дети есть у человека"),nl,
       readchar(A),
       a(A).
 
       a('b'):-write("Введите имя человека"),nl,
               readln(Imya),
               print_sons(Imya),
               print_dochs(Imya),
               readchar(_),
               menu.
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
02.06.2010, 01:43
Еще выложите БД, кто чей сын и т.п
0
0 / 0 / 0
Регистрация: 13.06.2009
Сообщений: 47
02.06.2010, 01:50  [ТС]
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
chelovek("Ildar","mm")
chelovek("Jayden","w")
chelovek("Jordan","m")
chelovek("Sarah","w")
chelovek("James","m")
chelovek("Cody","m")
chelovek("Lilian","w")
chelovek("Edward","m")
chelovek("Lucas","m")
chelovek("Kylie","w")
chelovek("Brian","m")
chelovek("Thomas","m")
chelovek("Adrian","m")
chelovek("James","m")
chelovek("Cody","m")
chelovek("Lilian","w")
chelovek("Edward","m")
chelovek("Lucas","m")
chelovek("Kylie","w")
chelovek("Brian","m")
chelovek("Thomas","m")
chelovek("Adrian","m")
 
 
roditel("Sarah","Ildar")
roditel("James","Ildar")
roditel("Sarah","Jayden")
roditel("James","Jayden")
roditel("Sarah","Jordan")
roditel("James","Jordan")
roditel("Cody","Lilian")
roditel("Cody","Edward")
roditel("Cody","Lucas")
roditel("Kylie","Brian")
roditel("Kylie","Thomas")
roditel("Kylie","Adrian")
roditel("Cody","Lilian")
roditel("Cody","Edward")
roditel("Cody","Lucas")
roditel("Kylie","Brian")
roditel("Kylie","Thomas")
roditel("Kylie","Adrian")
вот негада, там оказывается 2 раза повторяется в самой базе, но если даже повторение убрать, получается

Prolog
1
2
3
4
5
6
Сын: Edward
Сын: Edward
Сын: Lucas
Сын: Lucas
Дочь: Lilian
Дочь: Lilian
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
02.06.2010, 01:54
Вы стерли повторения из roditel, а повторения из chelovek Вы стерли? Ведь у Вас наверняка предикат Man (кстати лучше с маленькой буквы называть) определяется как Man(N):-chelovek(N,'m'). Поэтому тут тоже будет повтор два раза.
1
0 / 0 / 0
Регистрация: 13.06.2009
Сообщений: 47
02.06.2010, 02:06  [ТС]
Нет, вот поправил все нормально, РАБОТАЕТ. Хотя интересно, когда базу вводил такого двойного повтора не было...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2010, 02:06
Помогаю со студенческими работами здесь

Вывод телефонов человека в одном поле
Здравствуйте! Есть такая задача: у человека есть много номеров мобильных телефонов. Нужно с помощью SELECT в единое поле вывести все...

Вывод специальностей человека в разных столбцах
Здравствуйте! Есть таблица человек и таблица специальность. Связанные они по ID человека. У человека может быть до 5-ти...

Вывод данных в зависимости от пола человека
Привет! помогите решить такую задачу. есть переменная (пола человека) $sex эта переменная возвращает цифровое значение (пола...

Вывод возраста человека в словесном виде
Дано натуральное число n, определяющее возраст человека в годах. Дать для этого числа наименования "год", "года",...

Вывод данных из mysql определенного зарегистрированного человека
Здравствуйте! Столкнулся с такой проблемой, есть форма, которая обрабатывается и записывает данные в таблицу mysql. Но эта форма доступна...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru