Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГеоргий Нижегородцев
1 Динамические базы данных Лекция 12
2 План Работа с внутренними (динамическими) базами данных: добавление фактов в базу, удаление фактов из базы Проекты «Телефонный справочник», «Словарь»
3 Описание предпкатов базы данных DATABASE [ ] (,..., )
4 Добавление и удаление фактов, сохранение, загрузка БД assert (факт[, имя_бд]) asserta (факт[, имя_бд]) assertz (факт[, имя_бд]) retract (факт[, имя_бд]) retractall (_[, имя_бд]) save (имя_файла[, имя_бд]) consult (имя_файла[, имя_бд])
5 Удаление всех фактов retractall2(Fact):– retract(Fact), fail. retractall2(_).
6 Телефонный справочник start:– existfile("phones.ddb"),!, consult("phones.ddb "), menu. start:– openwrite(f,phones.ddb"), closefile(f), menu.
7 Меню menu:– clearwindow, write("1 - Получение телефонного номера по фамилии"), nl, write("2 - Получение фамилии по номеру телефона"), nl, write("3 - Добавление новой записи в справочник"), nl, write("4 - Изменение номера абонента"), nl, write("5 - Удаление записи из телефонной базы"), nl, write("0 - Выйти"), nl, readchar(C), menu(C).
8 Выход из программы m('0'):– save("phones.ddb"), retractall(_). m(_):– menu.
9 Получение телефонного номера по фамилии m('1'):– clearwindow, write("Введите фамилию"), nl, readln(Name), name_phone(Name, Phone), write("Номер телефона: ",Phone), readchar(_), menu.
10 Получение телефонного номера по фамилии name_phone(Name,Phone):– phone(Name,Phone),!. name_phone(_,Нет информации о телефонном номере").
11 Получение фамилии по телефонному номеру m('2'):– clearwindow, write("Введите номер телефона"),nl, readln(Phone), phone_name(Name, Phone), write("Фамилия абонента: ",Name), readchar(_), menu.
12 Получение фамилии по телефонному номеру phone_name(Name,Phone):– phone(Name,Phone). phone_name("Нет информации о владельце телефона",_).
13 Добавление факта в БД m('3'):– clearwindow, write("Введите фамилию"),nl, readln(Name), write("Введите номер телефона"),nl, readln(Phone), assert(phone(Name,Phone)), menu.
14 Обновление факта в БД m('4'):– clearwindow, write("Введите фамилию"),nl, readln(Name), write("Введите новый номер телефона"),nl, readln(Phone), retract(phone(Name,_)), assert(phone(Name,Phone)), menu.
15 Удаление факта из БД m('5'):– clearwindow, write("Укажите удаляемый номер телефона"), nl, readln(Phone), retract(phone(_,Phone)), menu.
16 Начало программы DOMAINS name, number = String file=f DATABASE phone(name, number) PREDICATES name_phone(name, number) phone_name(name, number) m(char) menu start
17 Вычисление чисел Фиббоначи fib(0,1):–!. fib(1,1):–!. fib(N,F) :– N1=N–1, fib(N1,F1), N2=N–2, fib(N2,F2), F=F1+F2.
18 Быстрый поиск числа Фиббоначи fib_fast(0,1,1):–!. fib_fast(N,FN,FN1):– N1=N–1,fib_fast(N1,FN_1,FN), FN1=FN+FN_1.
19 Использование динамической БД для вычисления чисел Фиббоначи fib2(0,1):–!. fib2(1,1):–!. fib2(N,F):– fib_db(N,F),!. fib2(N,F) :– N1=N–1, fib2(N1,F1), N2=N–2, fib2(N2,F2), F=F1+F2, asserta(fib_db(N,F)).
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.