Реферат: Разработка информационно-справочной системы
Задание № 11
на курсовое проектирование
по дисциплине “Логическоепрограммирование”
студенту ПакостинойАлександре Викторовне.
Группа ИР-1-95.
1.<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Темаисследования<span AGSouvenirCyr",«sans-serif»">: “Разработка информационно — справочной системы”.2.<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Исходныеданные<span AGSouvenirCyr",«sans-serif»">: База данных <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">BD<span AGSouvenirCyr",«sans-serif»">, включающая записи вида:<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">Характеристика детали
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»"><span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">№
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">Место хранения
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">Название
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">Цена
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">Дата поступления
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">
<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»">артикула
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">№ цеха
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">№склада
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">детали
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">руб
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">коп
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">год
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">месяц
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">число
<span AGSouvenirCyr",«sans-serif»">Языкпрограммирования
<span AGSouvenirCyr",«sans-serif»">:<span AGSouvenirCyr",«sans-serif»">Пролог.3. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Перечень вопросов, подлежащихразработке<span AGSouvenirCyr",«sans-serif»">:3.1. <span AGSouvenirCyr",«sans-serif»">Разработатьменю, обеспечивающее взаимодействие пользователя с системой, в соответствии сзаданием, предусмотрев режимы:
3.2. <span AGSouvenirCyr",«sans-serif»">Разработатьпроцедуры:
·<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">уничтожениязаписей по признакам;·<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">загрузки;·<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">сохранения;·<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">просмотра;·<span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">уничтожения;<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»">3.3.
<span AGSouvenirCyr",«sans-serif»">Предусмотреть создание из базы <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">BD<span AGSouvenirCyr",«sans-serif»"> новых баз данных <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">B1, B2,<span AGSouvenirCyr",«sans-serif»"> характеризуемых признаками, задаваемымипользователем.<span AGSouvenirCyr",«sans-serif»">4. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Перечень графическихматериалов:<span AGSouvenirCyr",«sans-serif»">4.1. Структурнаясхема меню:
<img src="/cache/referats/3514/image001.gif" v:shapes="_x0000_i1025">
4.2.<span AGSouvenirCyr",«sans-serif»">Структурная схема программы:
<img src="/cache/referats/3514/image002.gif" v:shapes="_x0000_i1026">
5. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Календарный план работы надкурсовой работой:<span AGSouvenirCyr",«sans-serif»">5.1. <span AGSouvenirCyr",«sans-serif»">Получениезадания: 4.10.96.
5.2. <span AGSouvenirCyr",«sans-serif»">Анализзадания, постановка задачи, подбор и изучение литературы: 18.10.96.
5.3. <span AGSouvenirCyr",«sans-serif»">Разработкаменю и структуры программы: 25.10.96.
5.4. <span AGSouvenirCyr",«sans-serif»">Разработкапроцедур информационно-справочной системы: 15.11.96.
5.5. <span AGSouvenirCyr",«sans-serif»">Отладкапрограммы: 29.11.96.
5.6. <span AGSouvenirCyr",«sans-serif»">Оформлениепояснительной записки и сдача работы на правку: 13.12.96.
5.7. <span AGSouvenirCyr",«sans-serif»">Защитакурсовой работы: 20.12.96.
<span AGSouvenirCyr",«sans-serif»">
<span AGSouvenirCyr",«sans-serif»">
<span AGSouvenirCyr",«sans-serif»">
<span AGSouvenirCyr",«sans-serif»">Руководитель
<span AGSouvenirCyr",«sans-serif»">:<span AGSouvenirCyr",«sans-serif»">Холкин И.И. ____________<span AGSouvenirCyr",«sans-serif»">
<span AGSouvenirCyr",«sans-serif»">Студент
<span AGSouvenirCyr",«sans-serif»">:Пакостина А.В. ____________<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA"><span AGSouvenirCyr",«sans-serif»">Описание
<span AGSouvenirCyr",«sans-serif»">
1. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Понятие обинформационно-справочных системах и их программная реализация.<span AGSouvenirCyr",«sans-serif»">Информационно-справочные системыпредназначены для управления различными информационными и справочнымимассивами, в число которых входят и базы данных. Эти системы организовываютопределенный интерфейс пользователя с функциями обработки информации самой системы.Набор возможностей таких систем обычно включает в себя коррекцию структурыиспользуемого объекта (инкапсулирующего информацию), работа с его составляющими- дополнение, редактирование, удаление (в случае, когда роль такого объектавыполняет база данных, это — записи), простой просмотр, поиск элементов. Такженеобходимо обеспечить для такой системы и функции постоянного надежногохранения — в простейшем случае, это — запись базы из памяти в файл на диске исчитывание оного с диска в память.
Программная реализация мало отличается от подобной концепции, но конкретизируетабстрактные операции в конкретные процедуры и функции (или же объекты) изависит полностью от возможностей языка, поставленной задачи и искусствапрограммиста.
2. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Базы данных и способы ихпредставления.<span AGSouvenirCyr",«sans-serif»">Общая концепция теории простых баз данных подразумевает наличие некоторогомножества таблиц и являющихся, собственно, базой данных, имеющей определенныйидентификатор (имя). Каждая таблица состоит из <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">n<span AGSouvenirCyr",«sans-serif»">-го количества записей(величина <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">n<span AGSouvenirCyr",«sans-serif»">зависит от возможностей конкретной системы), каждая из которых имеет одну и туже структуру (в рамках одной таблицы) и может объединять в себе несколькоразнородных объектов (их количество также зависит целиком и полностью от возможностейсистемы).
Работа с базой данных предполагает в себе возможность работать с записями (либоизменять структуру таблиц).
В языке программирования Пролог база данных описывается в отдельном разделе,именуемом <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">database<span AGSouvenirCyr",«sans-serif»">. Такихразделов может быть несколько в одной программе и каждый из них, если онидействительно представляют собой разные БД, должны иметь разные имена. В случаеотсутствия имени у базы данных, ей дается имя по умолчанию — <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">dbasedom<span AGSouvenirCyr",«sans-serif»">.
Работу с загружаемыми базами данных в Прологе реализуют следующие стандартныепредикаты: <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">assert<span AGSouvenirCyr",«sans-serif»"> — добавитьзапись в БД, <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">retract <span AGSouvenirCyr",«sans-serif»">- удалитьуказанную запись, <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">save<span AGSouvenirCyr",«sans-serif»"> — сохранить указанную БД в файле, <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">consult<span AGSouvenirCyr",«sans-serif»"> — загрузитьБД из файла в память.
В данной работе объявлена главная база данных <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">bd<span AGSouvenirCyr",«sans-serif»">,имеющая предикат characteristick, идве временные базы <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">b1, b2 <span AGSouvenirCyr",«sans-serif»">спредикатами <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">table1, table2<span AGSouvenirCyr",«sans-serif»">.<span Courier New"; mso-bidi-font-family:«Times New Roman»">
3. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Разработка системного меню.<span AGSouvenirCyr",«sans-serif»">Системное меню объединяет в себедоступ ко всем процедурам информационно — справочной системы. Разработка менюотталкивается от имеющихся функций системы (предикатов). Поскольку объявленпредикат <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">do (char)<span AGSouvenirCyr",«sans-serif»">, служащийбуфером между системным меню и существующими процедурами, он имеет в себе либоподменю с выбором режимов работы имеющихся предикатов, либо их вызов с последующимвозвратом в системное меню<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">:<span AGSouvenirCyr",«sans-serif»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+-------------- Системное меню--------------+
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ Выберите вариант работы с базами данных: ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 1 :- Загрузить ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 2 :- Сохранить ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 3 :- Просмотреть ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 4 :- Скорректировать ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 5 :- Удалить запись попризнакам ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 6 :- Создать по признакам ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 7 :- Добавить ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 8 :- Выход в ДОС ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ------------------| |------------------ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+--------------------------------------------+
<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US"><span AGSouvenirCyr",«sans-serif»">
4. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Разработка структурыпрограммы.<span AGSouvenirCyr",«sans-serif»">Системное меню вызывает толькопредикаты <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">do<span AGSouvenirCyr",«sans-serif»"> (<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US"><<span AGSouvenirCyr",«sans-serif»">режим<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">><span AGSouvenirCyr",«sans-serif»">), определенные для каждой изнеобходимых задач (номер режим полностью совпадает с нумерацией в главномменю). Каждая из реализаций этого предиката выводит меню, либо сразу вызываетсоответствующие процедуры: <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">open, store, adding, correct, see, del, indication<span AGSouvenirCyr",«sans-serif»">.Процедура <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">Indication<span AGSouvenirCyr",«sans-serif»"> выводитдополнительное подменю и вызывает либо <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">IndicationB1<span AGSouvenirCyr",«sans-serif»">,<span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US"> <span AGSouvenirCyr",«sans-serif»">либо<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US"> IndicationB2<span AGSouvenirCyr",«sans-serif»"> в зависимости от выборапользователя<span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">.<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">Do(‘8’)<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»">завершает работу с системой.
5. <span Times New Roman"">
<span AGSouvenirCyr",«sans-serif»">Разработка процедур:<span AGSouvenirCyr",«sans-serif»">5.1. <span AGSouvenirCyr",«sans-serif»">Загрузкабазы данных
<span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US"> <span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Open<span AGSouvenirCyr",«sans-serif»">).<span AGSouvenirCyr",«sans-serif»">В <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">do(‘1’)<span AGSouvenirCyr",«sans-serif»"> имеетсяменю:
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+--------- Загрузить --------+
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ Куда загрузить ? ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 1 :- В bd ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 2 :- В b1 ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 3 :- В b2 ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 4 :- Меню ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ------| |------ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+----------------------------+
<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US"><span AGSouvenirCyr",«sans-serif»">процедура<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US"> Open<span AGSouvenirCyr",«sans-serif»">имеет четыре реализации, для каждого из вариантов работы. Для любого случаяперед загрузкой базы данных проверяется существование файла с введенным именем(предикат<span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US"> exists<span AGSouvenirCyr",«sans-serif»">).Для загрузки базы данных используется стандартный предикат <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">consult<span AGSouvenirCyr",«sans-serif»">. При вызове <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Open(‘1’)<span AGSouvenirCyr",«sans-serif»"> загрузка производится в базу <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">bd<span AGSouvenirCyr",«sans-serif»">, при вызове <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Open(‘<span AGSouvenirCyr",«sans-serif»">2<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">’)<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»">в базу <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">b1<span AGSouvenirCyr",«sans-serif»">,при вызове <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">Open(‘3’) <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">- <span AGSouvenirCyr",«sans-serif»">в <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">b2<span AGSouvenirCyr",«sans-serif»">.
5.2. <span AGSouvenirCyr",«sans-serif»">Сохранение
<span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Store<span AGSouvenirCyr",«sans-serif»">).<span AGSouvenirCyr",«sans-serif»">В <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">do(‘2’)<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">ìåíþ<span AGSouvenirCyr",«sans-serif»">:<span AGSouvenirCyr",«sans-serif»">
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+--------- Сохранить --------+
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ Что сохранить ? ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 1 :- bd ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 2 :- b1 ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 3 :- b2 ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ 4 :- Меню ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">¦ ------| |------ ¦
<span Courier New"; mso-bidi-font-family:«Times New Roman»">+----------------------------+
5.3. <span AGSouvenirCyr",«sans-serif»">Просмотр
<span AGSouvenirCyr",«sans-serif»"> (<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">See)<span AGSouvenirCyr",«sans-serif»">.<span AGSouvenirCyr",«sans-serif»">В <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">do(‘3’)<span AGSouvenirCyr",«sans-serif»">меню:
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">+-------- Просмотреть -------+
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ Что просмотреть ? ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ 1 :- bd ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ 2 :- b1 ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ 3 :- b2 ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ 4 :- Меню ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">¦ ------| |------ ¦
<span Courier New";mso-bidi-font-family:«Times New Roman»;mso-ansi-language: EN-US">+----------------------------+
<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US"><span AGSouvenirCyr",«sans-serif»">Предложения <span AGSouvenirCyr",«sans-serif»;mso-ansi-language:EN-US">See(‘1’) <span AGSouvenirCyr",«sans-serif»">и<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US"> See(‘2’)<span AGSouvenirCyr",«sans-serif»"> создают новые окна и выводятв них найденные записи. После каждой выведенной записи запрашивается нажатиеклавиши, затем повторяется поиск с помошью стандартного предиката <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Fail<span AGSouvenirCyr",«sans-serif»"> или происходит выход из предиката всистемное меню.
5.4. <span AGSouvenirCyr",«sans-serif»">Добавление
<span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Adding)<span AGSouvenirCyr",«sans-serif»">.<span AGSouvenirCyr",«sans-serif»">Данный предикат был добавлен впрограмму по причине облегчения работы с ней, хоть и в задании его не было.<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">
<span AGSouvenirCyr",«sans-serif»">В этой процедуре используется определенная в этойже программе процедура <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">Get<span AGSouvenirCyr",«sans-serif»">,запрашивающая с клавиатуры значения для новой записи в главной базе данных истандартная процедура <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">assert<span AGSouvenirCyr",«sans-serif»">, добавляющаяновый факт в базу данных.
5.5. <span AGSouvenirCyr",«sans-serif»">Корректировка
<span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Correct)<span AGSouvenirCyr",«sans-serif»">.<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US"><span AGSouvenirCyr",«sans-serif»">В данной программе существует дваварианта корректировки — редактирование записи, найденной по номеру артикула инайденной по названию детали. В каждой из версий предиката вначале запрашиваетсяномер артикула (или название) изменяемой записи, поиск и вывод на экран, затемпроисходит ввод новых значений полей, подтверждаются сделанные изменения,удаляется старый факт (<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">retract<span AGSouvenirCyr",«sans-serif»">) идобавляется вновь сформированный (<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">assert<span AGSouvenirCyr",«sans-serif»">).
5.6. <span AGSouvenirCyr",«sans-serif»">Созданиябазы по признакам
<span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Indication)<span AGSouvenirCyr",«sans-serif»">.<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">Indication(‘1’) <span AGSouvenirCyr",«sans-serif»">создаетбазу <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">b1<span AGSouvenirCyr",«sans-serif»">, а <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Indication(‘2’)<span AGSouvenirCyr",«sans-serif»"> — базу <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">b2<span AGSouvenirCyr",«sans-serif»">. Для каждой базы существуетотдельный предикат — <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">IndicationB1 <span AGSouvenirCyr",«sans-serif»">и <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">IndicationB2<span AGSouvenirCyr",«sans-serif»">. Существуют возможностисоздания таких баз по следующим признакам: по месту хранения, по цене, по датепоступления. В каждом из вариантов производится запрос на несколько параметровсразу и поиск фактов, отвечающих этим требованиям. При успешном поиске,найденный факт добавляется в базу <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">b1 <span AGSouvenirCyr",«sans-serif»">или <span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">b2<span AGSouvenirCyr",«sans-serif»">.
5.7. <span AGSouvenirCyr",«sans-serif»">Удалениезаписи по признакам
<span AGSouvenirCyr",«sans-serif»">(<span AGSouvenirCyr",«sans-serif»;mso-ansi-language: EN-US">Del).<span AGSouvenirCyr",«sans-serif»"><span AGSouvenirCyr",«sans-serif»">Признаками для удаляемой записи могут служитьномер артикула, название, а также возможно уничтожить из памяти всю базуданных.<span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US"> <span AGSouvenirCyr",«sans-serif»">Во всех вариантах используетсяпроцедура удаления записи <span AGSouvenirCyr",«sans-serif»; mso-ansi-language:EN-US">retract<span AGSouvenirCyr",«sans-serif»">.
<span AGSouvenirCyr",«sans-serif»">6. Листинг.
<span Courier New";mso-bidi-font-family:«Times New Roman»">% %
<span Courier New";mso-bidi-font-family:«Times New Roman»">% Пакостина Александра. %
<span Courier New";mso-bidi-font-family:«Times New Roman»">% ИР-1-95. %
<span Courier New";mso-bidi-font-family:«Times New Roman»">% Задание 11. %
<span Courier New";mso-bidi-font-family:«Times New Roman»">% %
<span Courier New";mso-bidi-font-family:«Times New Roman»"> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">domains
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> artikul = integer
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cex, sklad = integer
<span Courier New";mso-bidi-font-family:«Times New Roman»"> name = string
<span Courier New";mso-bidi-font-family:«Times New Roman»"> rubley, kopeek = integer
<span Courier New";mso-bidi-font-family:«Times New Roman»"> year, month, day = integer
<span Courier New";mso-bidi-font-family:«Times New Roman»"> placedom = place(cex, sklad)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> pricedom = price(rubley, kopeek)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> datedom = date(year, month, day)
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">database- bd
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> characteristick(artikul, placedom, name,pricedom, datedom)
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">database- b1
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> table1(artikul, placedom, name, pricedom,datedom)
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">database- b2
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> table2(artikul, placedom, name, pricedom,datedom)
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">predicates
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> windows
<span Courier New";mso-bidi-font-family:«Times New Roman»"> go
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> store(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> adding
<span Courier New";mso-bidi-font-family:«Times New Roman»"> correct(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> indication(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> indicationB1(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> indicationB2(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> see(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> del(char)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> exists(string)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> show(artikul, placedom, name, pricedom,datedom)
<span Courier New";mso-bidi-font-family:«Times New Roman»"> get(artikul, placedom, name, pricedom,datedom)
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">goal
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> windows, go.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">clauses
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> characteristick(1,place(5,6),«Gayka»,price(0,45),date(1996,1,4)).
<span Courier New";mso-bidi-font-family:«Times New Roman»"> characteristick(2,place(6,7),«Vint»,price(0,65),date(1996,2,45)).
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> windows :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(1,52,0,"",24,0,1,80),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Пакостина Александра."),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(2,52,0,"",0,0,1,80),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Система управления базой данных«Характеристика детали»"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(3,112,1," Системное меню",2,17,14,46),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Выберите вариант работы с базамиданных:"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- Загрузить"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- Сохранить"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- Просмотреть"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 4 :- Скорректировать"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 5 :- Удалить запись по признакам"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 6 :- Создать по признакам"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 7 :- Добавить"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 8 :- Выход в ДОС"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------------------||------------------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(126).
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> go :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> gotowindow(3), cursor(11,21),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> readchar(X), do(X).
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('1') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Загрузить",5,25,10,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Куда загрузить ?"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- В bd"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- В b1"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- В b2"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 4 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(7,13), readchar(X), open(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('2') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Сохранить",5,25,10,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Что сохранить ?"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- bd"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- b1"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- b2"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 4 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(7,13), readchar(X), store(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('3') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Просмотреть",5,25,10,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Что просмотреть ?"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- bd"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- b1"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- b2"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 4 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(7,13), readchar(X), see(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('4') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Корректировка",5,25,9,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Способ нахождения записи:"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- по номеру артикула"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- по названию"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(6,13), readchar(X), correct(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('5') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Удаление записи попризнаку ",5,25,10,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Введите признак:"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- По артикулу"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- По названию"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- Удалить всю базу"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 4 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(7,13), readchar(X), del(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('6') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Создать базу попризнаку ",5,25,9,30),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Какую базу создать ?"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 1 :- B1"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 2 :- B2"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" 3 :- Меню"), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" ------| |------"),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> cursor(6,13), readchar(X), indication(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('7') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,18,1," Добавить запись кглавной базе ",7,10,13,60),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(19), adding,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do('8') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,95,1,«Запрос»,10,29,5,22), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(94),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Выйти? (Yes/No)"), readchar(X),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> X='y', exit;
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> do(_) :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(4,76,1,«Ошибка»,8,29,5,22),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(75), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Выберите из меню"),readchar(_),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, go.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open('1') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(5,95,1,«Загрузкаbd»,7,20,10,40),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(94), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Имя файла: "),readln(FN),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> exists(FN), consult(FN, bd),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Загружено"),readchar(_), removewindow, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open('2') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(5,95,1,«Загрузкаb1»,7,20,10,40),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(94), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Имя файла: "),readln(FN),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> exists(FN), consult(FN, b1),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Загружено"),readchar(_), removewindow, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open('3') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(5,95,1,«Загрузкаb2»,7,20,10,40),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(94), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Имя файла: "),readln(FN),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> exists(FN), consult(FN, b2),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Загружено"),readchar(_), removewindow, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open('4') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> open(_) :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(5,76,1,«Ошибка»,8,29,5,22),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(75), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Выберите из меню"),readchar(_),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> removewindow, removewindow, do('1').
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"> store('1') :-
<span Courier New";mso-bidi-font-family:«Times New Roman»"> makewindow(5,95,1,«Сохранениеbd»,7,20,10,40),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> framewindow(94), nl,
<span Courier New";mso-bidi-font-family:«Times New Roman»"> write(" Имя файла: "),readln(FN), save(FN, bd),
<span Courier New";mso-bidi-font-family:«Times New Roman»"> nl, write(" Сохранено"),readchar(_), removewindow, !.
<span Courier New";mso-bidi-font-family:«Times New Roman»">
<span Courier New";mso-bidi-font-family:«Times New Roman»"><spa