Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2020, 15:28   #1
bananchik007
Новичок
Джуниор
 
Регистрация: 11.12.2019
Сообщений: 2
Сообщение Получить названия игрушек Prolog

Получите названия наиболее дорогих игрушек цены которых отличаются от самой дорогой не более чем на 100 рублей
Код:
/* Запуск программы */
run:-
     retractall(igr/2),
     consult('db.txt'),
     menu.
 
/* Формирование меню */
menu:-
 
      repeat,
          write('-----------------------'),nl,nl,
      write('База данных о игрушках'),nl,nl,
      write('1–Просмотр базы'),nl,
      write('2–Добавить новую игрушку'),nl,
      write('3-Удалить игрушку'),nl,
      write('4-Сохранить базу в файл'),nl,
      write('5-Поиск наиболее дорогих игрушек'),nl,
      write('6–Выход'),nl,
          write('--------------------------------'),nl,
      write('Выберите пункт меню: (1-6) '),
      read(X),
      X<7,
      process(X),
      X=6,!.
 
process(1):-view_igr.
process(2):-add_igr,!.
process(3):-remove_igr,!.
process(4):-db_save_igr,!.
process(5):-find_igr,!.
process(6):-retractall(igr/2),!.
 
/* Чтение файла и просмотр базы данных */
view_igr:-
                igr(Igr,Price),
                write('Наименование игрушки: '), write(Igr),nl,
                write('Стоимость: '), write(Price),nl,
                write('-------------------------------'),nl.
 
/* Добавление вида металла*/
add_igr:-
        write('Добавить игрушку:'),nl,nl,
        repeat,
        write('Наименование игрушки: '),
        read(Igr),
        write('Стоимость игрушки: '),
        read(Price),
        assertz(igr(Igr,Price)),
        quest,!.
 
quest:-
       write('Добавить еще одну игрушку? y/n '),
       read(A),
       answer(A).
 
answer(_):-fail.
answer(y):-fail.
answer(n).
 
/* Сохранение динамической БД в файл */
db_save_igr:-
        tell('db.txt'),
        listing(igr),
        told,
        write('Файл базы дынных db.txt сохранен!').
 
/* Удаление вида металла*/
remove_igr:-
           write('Удаление игрушки'),nl,nl,
           write('Введите название игрушки: '),
           read(Igr),
           retract(igr(Igr,_)),
           write('Игрушка удалена!'),nl,nl.
 
/* Поиск игрушки по условию */       Вот здесь пытался организовать поиск но что то пошло не так
find_igr:-
           findall(Igr,igr(Price),Sp),
           min(Sp,Rezult),
           igr(Price),
           Igr = Rezult,
           write('Наименование игрушки: '), write(Igr),nl,
           write('Стоимость игрушки: '), write(Price),nl,
           write('-------------------------------'),nl,
           fail.
 
/* Поиск максимального элемента */
min([Head|Tail],Rezult):-
                         min(Tail,Rezult),
                         Rezult > Head,!.
min([Head|_],Head).
Прошу помощи с поиском, заранее спасибо
bananchik007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить названия таблиц, имена полей, типы. Qt SQL SAMOUCHKA Qt и кроссплатформенное программирование С/С++ 4 14.07.2016 13:14
Получить названия населенный пунктов на маршруте Яндекс.Карты dem66 JavaScript, Ajax 9 27.03.2014 21:14
Получить названия непустых таблиц из базы levandowskiy SQL, базы данных 2 29.01.2013 17:55
множество игрушек. Figushkin Помощь студентам 1 10.06.2010 22:56
из списка магазина игрушек, выбрать названия наиболее дорогих игрушек RUSLAN13 Помощь студентам 4 22.12.2008 19:33