|
|
|
Natalia2005 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.4.2013 Репутация: нет Всего: нет |
Здравствуйте! Помогите пожалуйста решить задачу.
Текст задачи: Написать программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, цена билета. Реализовать вывод всей информации из справочника, поиск пункта назначения по номеру рейса. Реализовать поиск по пункту назначения с указанием максимально возможной цены билета (должны быть выведены все рейсы, цена билета на которые ниже указанного значения) Для удобства работы реализовать меню с соответствующими пунктами. Задачу я почти решила, но мне еще надо предусмотреть случай, если, например города нет или цена билета ниже указанной цены, и если нет информации в базе то выводилось бы сообщение: "Нет информации". Я для poisk вывела, а для poisk_max и для вывода все информации вывести не могу. За ранее Вам благодарна!!! DOMAINS reis, punkt = String cena = integer file=f DATABASE sprav(reis, punkt) cenaa(reis, cena) PREDICATES print_base reis_punkt(reis, punkt) reis_cena(reis, cena) poisk_max(punkt, cena) m(char) menu start CLAUSES reis_punkt(Reis,Sprav):- sprav(Reis,Sprav),!. reis_punkt(_,"net informazii"). reis_cena(Reis,Cena):-cenaa(Reis,Cena),!. menu:- clearwindow, write("1 poisk"),nl, write("2 info"),nl, write("3 Dobavlenie"),nl, write("4 Poisk2"),nl, write("5 Ydalenie"),nl, write("0 Vixod"),nl, readchar©, m©. m('1'):- clearwindow, write("Nomer reisa"), nl, readln(Reis), reis_punkt(Reis, Sprav), write("Punkt naznachenija: ",Sprav), readchar(_), menu. m('2'):-clearwindow, print_base, readchar(_), menu. m('3'):- clearwindow, write("Nomer reisa"),nl, readln(Reis), write("Vvedi punkt naznachenija"),nl, readln(Punkt), write("Vvedi ceny"),nl, readint(Cena), assert(sprav(Reis,Punkt)), assert(cenaa(Reis,Cena)), menu. m('4'):- clearwindow, write("Vvedi gorod "),nl, readln(Punkt), write("Vvedite max ceny"),nl, readint(Cena), poisk_max(Punkt, Cena), readchar(_), menu. m('5'):- clearwindow, write("Ykajite nomer reisa zapis o kotorom nyjno ydalit"), nl, readln(Reis), retract(sprav(Reis,_)), retract(cenaa(Reis,_)), menu. m('0'):- save("avia"), retractall(_). m(_):- menu. print_base:-sprav(Reis,Punkt), cenaa(Reis,Cena), write(Reis," ",Punkt," ",Cena," "),nl,fail. print_base. poisk_max(Punk, Cen) :- sprav(Reis, Punk), cenaa(Reis, Cena), Cena<=Cen, write(Reis," ",Punk," ",Cena," "), nl, fail. poisk_max(Punkt, Cena). start:- existfile("avia"),!, consult("avia"), menu. start:- openwrite(f,"avia"), closefile(f), menu. GOAL Start Нам предлагали добавить дополнительный предикат: poisk_max1(Punk, Cen):-poisk_max(Punk, Cen),!. poisk_max1(Punk, Cen):-write("Не нашлось рейсов в ",Punk," стоимостью не выше ",Cen). Но куда это нужно добавить мы не знаем, у нас все равно не выдает то, что нужно!!! |
|||
|
||||
Правила форума Prolog | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Prolog | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |