рефераты рефераты
 

Главная

Разделы

Новости

О сайте

Контакты

 
рефераты

Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Бизнес-план
Биология
Бухучет управленчучет
Водоснабжение водоотведение
Военная кафедра
География и геология
Геодезия
Государственное регулирование и налогообложение
Гражданское право
Гражданское процессуальное право
Животные
Жилищное право
Иностранные языки и языкознание
История и исторические личности
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Медицина
Международное и Римское право
Уголовное право уголовный процесс
Трудовое право
Журналистика
Химия
География
Иностранные языки
Без категории
Физкультура и спорт
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Радиоэлектроника
Религия и мифология
Риторика
Социология
Статистика
Страхование
Строительство
Схемотехника
История
Компьютеры ЭВМ
Культурология
Сельское лесное хозяйство и землепользование
Социальная работа
Социология и обществознание

рефераты
рефераты

НАУЧНАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Разработка информационно справочной системы Технический паспорт автомобиля

Разработка информационно справочной системы Технический паспорт автомобиля

Задание N П-21 На курсовое проектирование по дисциплине "Логическое программирование" студенту Тарасову Михаилу Сергеевичу гр. ИИ-1-95. 1. Тема: разработка информационно-справочной системы. 2. Исходные данные: Разработать информационно-справочную систему, обеспечиваю- щую работу с базой данных Avto включающей записи вида: ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН» є ТЕХ. ПАСПОРТ АВТОМОБИЛЯ є МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛНННННННННННННННННННЛННННННННН№ єNшє МАРКА є ГОД є Nш є Nш є НОМЕРН є Ф. И. О. є РАЙОН є є єАВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є є УЧЕТА є МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННЛНННННЛНННННОННННННННН№ Из базы Avto создать 2 базы Avto1 и Avto2 по признакам, определяе-
мым пользователем Меню системы должно включать режимы корректировки, уничтожения
просмотра, загрузки, сохранения. Язык программирования Пролог. 3. Перечень вопросов, подлежащих разработке: 3.1 Разработка меню, обеспечивающее взаимодействие пользо- вателя с системой, в соответствии с заданием, предус- мотрев режимы: - корректировки данных, - уничтожения данных, - просмотра базы, - загрузки базы, - сохранения базы, - создания новой базы. 3.2 Разработка процедур: - корректировки данных, - уничтожения данных, - просмотра базы, - загрузки базы, - сохранения базы, - создания новой базы. 4. Перечень графических материалов: 4.1 структурная схема меню 4.2 структурная схема программы. 5. Календарный план-график работы над курсовой работой: 1. Получение задания 4.10.96 2. Анализ задания, постановка задачи, подбор и изучение литературы с 5.10.96 по 20.10.96 3. Разработка меню и структуры программы 22.10.96 4. Разработка процедур информационно-справочной системы 18.11.96 5. Отладка программы 29.11.96 6. Доработка программы с учетом вновь изменившихся требований 20.12.96 7. Вторичная отладка программы 21.12.96 8. Оформление пояснительной записки 24.12.96 9. Сдача работы на проверку 25.12.96 7. Защита курсовой работы 27.12.96 Руководитель /Холкин И.И./ Студент /Тарасов М.С., ИИ-1-95/ я2Содержание. Введение .................................... 1. Понятие об информационных системах и их программной реализации ................... 2. База данных и способы ее представления ... 3. Разработка системного меню ............... 4. Разработка структуры программы ........... 5. Разработка процедур: 5.1 Основной процедуры Nachalo ........... 5.2 Вывода главного меню Mainmenu ........ 5.3 Загрузки БД Zagruz ................... 5.4 Вывода информации о программе Rabota (0) ........................... 5.5 Корректировки данных Rabota (1) ...... 5.6 Удаления записей Rabota (2) .......... 5.7 Просмотра базы Rabota (3) ............ 5.8 Вывода меню загрузки Rabota (4) ..... 5.9 Вывода меню сохранения Rabota (5) ... 5.10 Создания новой БД Rabota (6) ....... 5.11 Добавления новых записей Rabota(7).. 5.12 Просмотра-добавления данных Rabota(8) ........................... 5.13 Выхода из программы Rabota(9) .. 5.14 Процедуры выбора Сhoice1............ 5.15 Процедур Sbros и Sbros1 ....... 5.16 Загрузки БД с диска Loadbase........ 5.17 Сохранения БД на диске Savebase..... 5.18 Вспомогательной для коррекции даных Correct(N) ........................ 6. Листинг программы ....................... 7. Отладка программы ....................... 8. Инструкция пользователя и решение контрольных примеров: ................... Заключение ................................. Список литературы .......................... Данная курсовая написана на языке Пролог в среде Turbo Prolog v
2.0 (русифицированная версия). В структуре языка заложены возможности
простой и черезвычайно эффективной работы с базами данных, что позво-
ляет на его основе создавать различного рода информационно - справоч-
ные системы. Структура языка Пролог соответствует структуре реляцион-
ных баз данных. Так отношению в РБД соответствует предикат в Прологе,
элементу - факт, атрибуту отношения - аргумент предиката и т.д. Встро-
енные в Пролог предикаты работы с окнами позволяют создать дружествен-
ный интерфейс для работы пользователя с информационно - справочной
системой. Информационно-справочные системы - это программы-оболочки, служа-
щие для управления массивами и базами данных. В наш век всеобщей
компьютеризации информационно-справочные системы значительно облегчают
труд человека во всех отраслях народного хозяйства. Значительно упрос-
тилась работа московской милиции по обнаружению угнаного транспорта
после создания в Москве компьютерных баз данных по угнаным автомоби-
лям. Бухгалтерам предприятий и фирм теперь не нужно перебирать горы
бумаг, чтобы получить все данные о сотруднике: достаточно загрузить
информационно-справочную систему и она в удобной форме выдаст всю не-
обходимую информацию. Области применения информационно-справочных систем воистину безг-
раничны: это ведение статистики удоя скота на ферме, составление ката-
логов книг в библиотеках и произведений искусства в музеях, сбор дан-
ных о наличии рабочих вакансий в данном регеоне и многие другие. Одним из способов програмной реализации информационно-справочной
системы является использование для ее создания языка логического прог-
раммирования Пролог. В данной реализации языка содержится множество
встроенных предикатов, существенно облегчающих написание таких систем. База данных в простейшем случае - упорядоченная структура данных
в виде таблицы, каждая запись которой может объединять разнотипные
данные, причем все записи одной базы имеют одинаковую структуру. Су-
ществуют три модели представления баз данных: иерархическая, сетевая и
реляционная. В силу особенностей языка Пролог, с его помощью реализу-
ется реляционная модель. Каждая строка в базе данных называется эле-
ментом отношения, каждая колонка - атрибутом отношения, колличество
колонок - арностью, а колличество строк - мощностью. В языке програм-
мирования Пролог атрибуту отношения соответствует аргумент предиката,
арности - колличество аргументов в предикате, отношению - предикат,
элементу - факт, и мощности - число фактов. Исходя из вышеперечисленных соответствий Пролог является прекрас-
ным средством для реализации реляционных баз данных. Все режимы программы активизируются с помощью меню, которое реа-
лизовано с помощью процедуры mainmenu. Для активизации какого либо ре-
жима пользователю следует нажать цифровую клавишу, соответствующую
выбранному пункту меню. Меню данной программы состоит из девяти пунктов: 0 - О пpогpамме... - вывод данных о системе 1 - коррекция данных - режим корректировки данных 2 - удаление данных - режим удаления данных 3 - просмотр базы - режим просмотра базы 4 - загрузка базы - режим загрузки базы 5 - сохранение базы - режим сохранения базы 6 - создание новой базы - режим создания новой базы 7 - ввод новых данных - выход из программы 8 - просмотр-добавление - просмотр и добавление данных 9 - выход из программы - выход На следующей странице представлена графическая структура меню. Процедуры создавались на основе требований, изложенных в задании
к курсовой работе. С помощью процедуры Nachalo разделе GOAL инициируется начало вы-
полнения программы. Эта процедура запускает процедуру начальной заг-
рузки базы данных Zagruz , после чего передает управление процедуре
вывода главного меню Mainmenu. Эта процедура выводит список пунктов главного меню и ожидает от
пользователя ввода числа, которое будет занесено в переменную C. После
этого вызывается процедура обработки основных режимов Rabota , в кото-
рую переменная C передается в качестве аргумента. В процедуре исполь-
зован предикат Povtor, в связи с этим после возврата из процедуры Ra-
bota в случае, если C не равно 7 происходит повторный вывод пунктов
меню и ожидание ввода числа. Процедура Zagruz предназначена для автоматической загрузки основ-
ной базы данных при запуске программы. Это значительно облегчает рабо-
ту с системой, так как не требуется при запуске программы задгружать
основную БД из режима "Загрузка". Процедура Zagruz проверяет существо-
вание на диске файла avto.dat с помощью встроенного предиката existfi-
le и задгружает БД в память с помощью предиката consult. В случае от-
сутствия файла выдается сообщение об ошибке. Данная процедура выводит информацию о языке, на котором написана
система и данные о создателе. Процедура Rabota (1) служит коррекции данных, находящихся в БД, и
внесения новых записей.При активизации процедура запрашивает номер за-
писи и если таковая существует выводит ее значения после чего просит
ввести новые значения.Если же запись с таковым номером не существует
то процедура выводит сообщение об этом просит повторить номер записи
после чего осуществляется ввод новых данных. Данная процедура предназначена для удаления записей из базы дан-
ных. Удалять можно данные по любому признаку ( для этого используется
предикат Choice1. После выбора признака все записи содержащие его уда-
ляются с помощью встроенного предиката Retract. Процедура Rabota (3) выводит содержание базы данных в виде таблицы. Данная процедура выводит меню, содержащее следующие пункты: "База
будет загружена из указанного файла", " База будет загружена из файла
avto.dat", " Выход в основное меню". Загрузка баз данных осуществляет-
ся процедурой Loadbase, аргументом которой служит переменная C, счи-
танная с клавиатуры при вводе пользователем номера желаемого пункта
меню. Процедура Rabota (5) аналогична Rabota (4). Для сохранения баз
данных применяется процедура Savebase, рассмотренная ниже, аргументом
которой является переменная I. Данная процедура служит для создания новых баз данных. Процедура
работает следующим образом: выводится меню выбора признака по которому
будет создана новая БД : 1 - По марке автомобиля 2 - По году выпуска 3 - По району учета 4 - Выход в основное меню => Выбор делается вводом соответствующей цифры после чего процедура
передает управление процедуре Rabota1(N) где N - номер выбранного
пункта. Процедура Rabota1 будет рассмотрена ниже. 5.11 Процедура ввода новых данных Rabota(7) Процедура предназначена для ввода новых данных в базу.После ее за-
пуска происходит последовательный запрос каждого следующего поля запи-
си. После введения всех полей записи просисходит возврат к основному
меню. 5.12 Процедура просмотра и добавления данных Данная процедура запрашивает номер записи и если находит в базе
запись с таковым номером то выводит ее значения после нажатия любой
клавиши происходит возврат к основному меню. Если же записи с данным номером нет в базе то процедура просит
повторить ввод номера и после этого производится последовательный ввод
данных. 5.13 Данная процедура состоит из отсечения, которое запрещает дальней-
ший перебор. Процедура оканчивается успехом и происходит возврат в
процедуру Mainmenu, в которой выполняется условие C=7, благодаря чему
происходит выход из программы. 5.14 Эта процедура определяет номер желаемой записи после ввода пользо-
вателем либо собственно номера этой записи, либо после ввода фамилии
другого поля меню и возвращает этот номер в вызывавшую процедуру. 5.15 Процедуры Sbros и Sbros1 являются вспомагательными к процедуре
Correct(1). Они позволяют определить, следует ли замещать имеющийся
элемент записи на новый или нет (если была нажата клавиша ). В
процедурах проверяется, является ли первый аргумент пустой строкой.
Если это так, то третьему аргумент присваивается второй. Если же пер-
вый аргумент не является пустой строкой, то он присваивается третьему
аргументу (в Sbros1 происходит предварительное преобразование строко-
вой переменной в целочисленную). 5.16 Данная процедура осуществляет загрузку баз данных из файлов на
диске по признакам, зависящим от аргумента процедуры: Loadbase(1) заг-
ружает основную БД из файла, заданного пользователем, Loadbase(2) - из
файла avto.dat В данных процедурах проверяется наличие файла на диске
с помощью предиката existfile и загрузка БД в память с помощью преди-
ката consult. В случае отсутствия файла на диске, выдается соответс-
твующее сообщение. 5.17 Данная процедура осуществляет сохранение баз данных в файлах на
диске по признакам, зависящим от аргумента процедуры: Savebase(1) сох-
раняет основную БД в файле, заданном пользователем, Savebase(2) - в
файле bit.dat. Сохранение БД осуществляется с помощью встроенного пре-
диката save. В случае ошибки выдается соответствующее сообщение . 5.18 Процедура Cjrrect(j,i). Данная процедура обеспечивает ввод соответствующего поля записи.
domains z,n,dvig,god,n1,shasi,i=integer j,mark,znac,fam,ima,otc,ucet=string
database -avto1 avto1(i,j,i,i,i,j,j,j,j,j)
database -avto2 avto2(i,j,i,i,i,j,j,j,j,j)
database -avto3 avto3(i,j,i,i,i,j,j,j,j,j)
database avto(i,j,i,i,i,j,j,j,j,j) predicates nachalo mainmenu zagruz choice1(i) correct(i,i) rabota(i) rabota1(i) savebase(i) loadbase(i) povtor sbros(j,j,j) sbros1(j,i,i)
goal nachalo.
clauses
/*Процедура создания основного меню и загрузки базы данных*/ nachalo:- makewindow(1,7,7,"ТЕХ. ПАСПОРТ АВТОМОБИЛЯ",0,0,25,80), clearwindow,zagruz, mainmenu.
/*Процедура управления основным меню*/ mainmenu:- povtor, cursor(7,0), write(" 0 - О пpогpамме... "),nl, write(" 1 - коррекция данных"),nl, write(" 2 - удаление данных"),nl, write(" 3 - просмотр базы"),nl, write(" 4 - загрузка базы"),nl, write(" 5 - сохранение базы"),nl, write(" 6 - создание новой базы"),nl, write(" 7 - ввод новых данных"),nl, write(" 8 - просмотр-добавление"),nl, write(" 9 - выход из программы"),nl, write(" =>"), readint(Vibor), Vibor >= 0, Vibor < 10, clearwindow, rabota(Vibor), clearwindow, Vibor = 9, retractall(_), removewindow.
/*Процедура поиска и загрузки файла содержащего базу данных*/ zagruz:- existfile("avto.dat"), consult("avto.dat"), cursor(1,2), write("База загружена"). zagruz:- cursor(1,2), write("Нет базы на диске").
/*Пpоцедуpа ввода новых данных*/ rabota(7):- makewindow(1,7,7,"Ввод новых данных",0,0,25,80), nl, WRITE("Введите порядковый номер :"),readint(K),nl, write("Введите МАРКУ :"),readln(F),nl, write("Введите ГОД ВЫПУСКА :"),readint(Y),nl, write("Введите N ДВИГАТЕЛЯ :"),readint(J),nl, write("Введите N ШАССИ :"),readint(G),nl, write("Введите НОМЕРНОЙ ЗНАК :"),readln(W),nl, write("Введите ФАМИЛИЮ :"),readln(B),nl, write("Введите ИМЯ :"),readln(C),nl, write("Введите ОТЧЕСТВО :"),readln(D),nl, write("Введите РАЙОН УЧЕТА :"),readln(R),nl, N1=K,MARK1=F,GOD1=Y,DVIG1=J,SHASI1=G,ZNAC1=W, FAM1=B,IMA1=C,OTC1=D,UCET1=R, assertz(avto(N1,MARK1,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)), removewindow, fail.
/*Процедура просмотра-добавления*/ rabota(8):- makewindow(1,7,7,"Просмотр-добавление",0,0,25,80), nl, write("Введите номер записи:"),readint(A),nl,nl, avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET), A=N, write("НОМЕР ЗАПИСИ :"),write(N),nl, write("МАРКА :"),write(MARK),nl, write("ГОД ВЫПУСКА :"),write(GOD),nl, write("N ДВИГАТЕЛЯ :"),write(DVIG),nl, write("N ШАССИ :"),write(SHASI),nl, write("НОМЕРНОЙ ЗНАК :"),write(ZNAC),nl, write("ФАМИЛИЯ :"),write(FAM),nl, write("ИМЯ :"),write(IMA),nl, write("ОТЧЕСТВО :"),write(OTC),nl, write("РАЙОН УЧЕТА :"),write(UCET),nl,nl, readchar(_), removewindow, !. rabota(8):-
write("Этого номера записи нет в базе."),
write("Повторите введенный номер записи и продолжайте ввод данных"),
nl,nl,nl,
write("Введите номер:"), readint(A),nl, N1=A, write("МАРКА :"),readln(F),nl, write("ГОД ВЫПУСКА :"),readint(Y),nl, write("N ДВИГАТЕЛЯ :"),readint(J),nl, write("N ШАССИ :"),readint(G),nl, write("НОМЕРНОЙ ЗНАК :"),readln(W),nl, write("ФАМИЛИЯ :"),readln(B),nl, write("ИМЯ :"),readln(C),nl, write("ОТЧЕСТВО :"),readln(D),nl, write("РАЙОН УЧЕТА :"),readln(R),nl, MARK1=F,GOD1=Y,DVIG1=J,SHASI1=G,ZNAC1=W,FAM1=B,IMA1=C,OTC1=D,UCET1=R, assertz(avto(N1,MARK1,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)), removewindow, fail.
/*Пpоцедуpа вывода данных о пpогpамме*/ rabota(0):- makewindow(1,54,7,"О пpогpамме...",5,5,20,50),
write(" Инфоpмационно-спpавочная система"),nl,nl,
write(" о техническом паспорте автомобиля "),nl,nl,
write(" Язык-TURBO-PROLOG v.2.0. "),nl,nl,
write(" автоp:ТАРАСОВ М. "),nl,nl,
write(" МИРЭА, гp.ИИ-1-95 (с) 1996 г. "),nl,nl,nl,
write(" Нажмите на любую клавишу"), readchar(_), removewindow.
/*Процедура удаления записей из базы данных*/ rabota(2):- makewindow(1,7,7,"Удаление записей",0,0,25,80), nl, choice1(N), X=N, avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET), retract(avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET)),!, removewindow.
/*Процедура просмотра содержимого базы данных*/ rabota(3):- makewindow(1,7,7,"Просмотp базы",0,0,25,80), nl,
write(" ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write(" є ТЕХ. ПАСПОРТ АВТОМОБИЛЯ є"),nl,
write(" МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛНННННННЛННННННННН№"),nl,
write(" єNшє МАРКА є ГОД є Nш є Nш є НОМЕРН єФ.И.О є РАЙОН є"),nl,
write(" є єАВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є є УЧЕТА є"),nl,
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНЛНННННОННННННННН№"),nl, avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET), cursor(Z,_),cursor(Z,1),write("є"), cursor(Z,2),write(N),cursor(Z,4),write("є"), cursor(Z,5),write(MARK),cursor(Z,14),write("є"), cursor(Z,15),write(GOD),cursor(Z,20),write("є"), cursor(Z,21),write(DVIG),cursor(Z,26),write("є"), cursor(Z,27),write(SHASI),cursor(Z,32),write("є"), cursor(Z,33),write(ZNAC),cursor(Z,41),write("є"), cursor(Z,42),write(FAM),cursor(Z,49),write("є"), cursor(Z,50),write(IMA),cursor(Z,58),write("є"), cursor(Z,59),write(OTC),cursor(Z,66),write("є"), cursor(Z,67),write(UCET), cursor(Z,76),write("є"), nl, fail. rabota(3):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОННОНННННННОННННННННН№"),
nl,
write("Нажмите на любую клавишу"), readchar(_), removewindow.
/*Процедура загрузки в память базы данных*/ rabota(4):- nl, makewindow(2,15,4,"Загрузка",5,5,20,70), write("1 - База будет загружена из указанного файла"),nl, write("2 - База будет загружена из файла avto.dat"),nl, write("3 - Выход в основное меню"),nl, write("==>"), readint(C), C>0,C0,I0,O
domains
z,n,dvig,god,n1,shasi,i=integer
j,mark,znac,fam,ima,otc,ucet=string
database -avto1
avto1(i,j,i,i,i,j,j,j,j,j)
database -avto2
avto2(i,j,i,i,i,j,j,j,j,j)
database -avto3
avto3(i,j,i,i,i,j,j,j,j,j)
database
avto(i,j,i,i,i,j,j,j,j,j)
predicates
nachalo
mainmenu
zagruz
choice1(i)
correct(i,i)
rabota(i)
rabota1(i)
savebase(i)
loadbase(i) povtor
sbros(j,j,j)
sbros1(j,i,i)
goal
nachalo.
clauses
/*Процедура созданЃE ъBыMвньBЃEЃEЃE ЃEзагрузЃE базы даыLых*/
nachalo:-
makewindow(1,7,7,"ТЕХ. ПАСПОРТ АВТОМОБИЛЯ",0,0,25,80),
clearwindow,zagruz,
mainmenu.
/*Процедура управленЃE ъBыMвным ЃEЃE*/
mainmenu:-
povtor,
cursor(7,0),
write("
0 - О ЃEьBpамЃE... "),nl,
write("
1 - ЃEррекция даыLых"),nl, write("
2 - удаление даыLых"),nl,
write("
3 - ЃEъBЃEтр базы"),nl,
write("
4 - загрузЃE базы"),nl,
write("
5 - сохранение базы"),nl,
write(" 6
- создание ыMвоЃEбазы"),nl,
write("
7 - ввьC ыMвыЃEдаыLых"),nl,
write("
8 - ЃEъBЃEтр-добавление"),nl,
write("
9 - выхоЃEиз ЃEьBраЃEЃE),nl,
write("
=>"),
readint(Vibor),
Vibor >= 0,
Vibor < 10,
clearwindow,
rabota(Vibor),
clearwindow,
Vibor = 9,
retractall(_),
removewindow.
/*Процедура ЃEисЃE ЃEзагрузЃE файлЃEсодержащегЃEбазу даыLых*/
zagruz:-
existfile("avto.dat"),
consult("avto.dat"),
cursor(1,2),
write("БазЃEзагруженЃE).
zagruz:-
cursor(1,2),
write("Нет базы ъь дискЃE).
/*ПpъGедуpЃEввьCЃEыMвыЃEдаыLых*/
rabota(7):-
makewindow(1,7,7,"ВвоЃEыMвыЃEдаыLых",0,0,25,80),
nl, WRITE("Введите ЃEЃEдкьAый ыMЃEЃE
:"),readint(K),nl, write("Введите МАРКУ
:"),readln(F),nl, write("Введите ГОД ВЫПУСКА
:"),readint(Y),nl, write("Введите N ДВИГАТЕЛЯ
:"),readint(J),nl, write("Введите N ШАССИ
:"),readint(G),nl, write("Введите НОМЕРНОЙ ЗНАК :"),readln(W),nl, write("Введите ФАМИЛИЮ
:"),readln(B),nl, write("Введите ИМЯ
:"),readln(C),nl, write("Введите ОТЧЕСТВО
:"),readln(D),nl, write("Введите РАЙОН УЧЕТА
:"),readln(R),nl,
N1=K,MARK1=F,GOD1=Y,DVIG1=J,SHASI1=G,ZNAC1=W, FAM1=B,IMA1=C,OTC1=D,UCET1=R,
assertz(avto(N1,MARK1,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)), removewindow, fail.
/*Процедура ЃEъBЃEтрЃEдобавленЃE*/
rabota(8):-
makewindow(1,7,7,"ПросмъCЃEдобавление",0,0,25,80), nl, write("Введите ыMЃEЃEзаЃEси:"),readint(A),nl,nl,
avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET), A=N,
write("НОМЕР ЗАПИСИ :"),write(N),nl,
write("МАРКА
:"),write(MARK),nl,
write("ГОД ВЫПУСКА
:"),write(GOD),nl,
write("N ДВИГАТЕЛЯ
:"),write(DVIG),nl,
write("N ШАССИ
:"),write(SHASI),nl,
write("НОМЕРНОЙ ЗНАК :"),write(ZNAC),nl,
write("ФАМИЛИЯ
:"),write(FAM),nl,
write("ИМЯ
:"),write(IMA),nl,
write("ОТЧЕСТВО
:"),write(OTC),nl,
write("РАЙОН УЧЕТА
:"),write(UCET),nl,nl,
readchar(_),
removewindow,
!. rabota(8):-
write("Этого ыMЃEра заЃEси ыDЃEЃEбазе."),
write("ПьAторите введеныZЃEыMЃEЃEзаЃEси ЃEЃEьCьJжайтЃEввьC даыLых"),nl,nl,nl,
write("Введите ыMЃEЃE"), readint(A),nl, N1=A,
write("МАРКА
:"),readln(F),nl,
write("ГОД ВЫПУСКА
:"),readint(Y),nl,
write("N ДВИГАТЕЛЯ
:"),readint(J),nl,
write("N ШАССИ
:"),readint(G),nl,
write("НОМЕРНОЙ ЗНАК :"),readln(W),nl,
write("ФАМИЛИЯ
:"),readln(B),nl,
write("ИМЯ
:"),readln(C),nl,
write("ОТЧЕСТВО
:"),readln(D),nl,
write("РАЙОН УЧЕТА
:"),readln(R),nl,
MARK1=F,GOD1=Y,DVIG1=J,SHASI1=G,ZNAC1=W,FAM1=B,IMA1=C,OTC1=D,UCET1=R,
assertz(avto(N1,MARK1,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)), removewindow, fail.
/*ПpъGедуpЃEвывода даыLых ЃEЃEьBpамЃE*/ rabota(0):-
makewindow(1,54,7,"О ЃEьBpамЃE...",5,5,20,50),
write(" ИыSыЌЃEциЃEыM-спpавъHъья системЃE),nl,nl,
write(" ЃEтехничесЃEЃEЃEспъAте автоЃEбиЃE "),nl,nl,
write("
ЯзыЃETURBO-PROLOG v.2.0. "),nl,nl,
write(" автоp:КОЛОМЕНСКАЯ О.А. "),nl,nl,
write(" МИРЭА, гp.ИТ-1-95 (ЃE 1996 ЃE "),nl,nl,nl,
write(" НажЃEте ъь ЃEбую ЃEавишЃE), readchar(_), removewindow.
/*Процедура удаленЃE заЃEсеЃEиз базы даыLых*/
rabota(2):-
makewindow(1,7,7,"УдаЃEыGЃEзаЃEсеЃE,0,0,25,80),
nl,
choice1(N),
X=N,
avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
retract(avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET)),!,
removewindow.
/*Процедура ЃEъBЃEтрЃEсодержимьBЃEбазы даыLых*/
rabota(3):-
makewindow(1,7,7,"ПросмъCp базы",0,0,25,80),
nl,
write(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write(" є
ТЕХ. ПАСПОРТ АВТОМОБИЛЯ
"),nl,
write(" МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛННННННННННННННННННННННННЛННННННННН№"),nl,
write(" єNшє МАРКА є ГОД є NЃE є NЃE є НОМЕРН є Ф. И. О.
РАЙОН
"),nl,
write(" є
АВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є
УЧЕТА
"),nl,
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННЛННННННННЛНННННННОННННННННН№"),nl,
avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
cursor(Z,_),cursor(Z,1),write("є"),
cursor(Z,2),write(N),cursor(Z,4),write("є"),
cursor(Z,5),write(MARK),cursor(Z,14),write("є"),
cursor(Z,15),write(GOD),cursor(Z,20),write("є"),
cursor(Z,21),write(DVIG),cursor(Z,26),write("є"),
cursor(Z,27),write(SHASI),cursor(Z,32),write("є"),
cursor(Z,33),write(ZNAC),cursor(Z,41),write("є"), cursor(Z,42),write(FAM),cursor(Z,49),write("є"),
cursor(Z,50),write(IMA),cursor(Z,58),write("є"),
cursor(Z,59),write(OTC),cursor(Z,66),write("є"),
cursor(Z,67),write(UCET),
cursor(Z,76),write("є"), nl,
fail.
rabota(3):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
nl,
write("НажЃEте ъь ЃEбую ЃEавишЃE),
readchar(_),
removewindow.
/*Процедура загрузЃE ЃEЃEЃEть базы даыLых*/
rabota(4):-
nl,
makewindow(2,15,4,"ЗагрузкЃE,5,5,20,70),
write("1 - БазЃEбудеЃEзагруженЃEиз указаныMго файлЃE),nl,
write("2 - БазЃEбудеЃEзагруженЃEиз файлЃEavto.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(C),
C>0,C<4,
loadbase(C),
!,
removewindow.
/*Процедура сохраненЃE базы даыLых*/
rabota(5):-
nl,
makewindow(2,15,4,"ЗаписЃE,5,5,20,70), write("1 - БазЃEбудеЃEзаЃEсаъь
ЃEуказаныZЃEфайл"),nl,
write("2 - БазЃEбудеЃEзаЃEсаъь ЃEфайл avto.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(I),
I>0,I<4,
savebase(I),!,
removewindow.
/*Процедура выбора созданЃE
ыMвоЃEбазы*/
rabota(6):-
nl,
makewindow(3,7,7,"СьFдаыGЃEыMвоЃEбазы",0,0,25,80),
write(" 1 - ПЃEЃEркЃEавтоЃEбиЃE"),nl,
write(" 2 - ПЃEгоду выЃEскЃE),nl,
write(" 3 - ПЃEрайоыR учетЃE),nl, write("
4 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(O),
O>0,O<5,
rabota(O),
removewindow.
/*Процедура изЃEыDыGя содержимьBЃEзаЃEсеЃEбазы даыLых*/
rabota(1):-
makewindow(1,7,7,"КыЌpекция даыLых",0,0,25,80),
nl,
choice1(N),
X=N,
avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
write("НОМЕР ЗАПИСИ :"),write(N),nl,
write("МАРКА
:"),write(MARK),nl,
write("ГОД ВЫПУСКА
:"),write(GOD),nl,
write("N ДВИГАТЕЛЯ
:"),write(DVIG),nl,
write("N ШАССИ
:"),write(SHASI),nl,
write("НОМЕРНОЙ ЗНАК :"),write(ZNAC),nl,
write("ФАМИЛИЯ
:"),write(FAM),nl,
write("ИМЯ
:"),write(IMA),nl,
write("ОТЧЕСТВО
:"),write(OTC),nl,
write("РАЙОН УЧЕТА
:"),write(UCET),nl,nl,
write("Введите МАРКУ
:"),readln(MARK1),nl,
write("Введите ГОД ВЫПУСКА
:"),readln(GOD1),nl,
write("Введите N ДВИГАТЕЛЯ
:"),readln(DVIG1),nl,
write("Введите N ШАССИ
:"),readln(SHASI1),nl,
write("Введите НОМЕРНОЙ ЗНАК
:"),readln(ZNAC1),nl,
write("Введите ФАМИЛИЮ
:"),readln(FAM1),nl,
write("ВедитЃEИМЯ
:"),readln(IMA1),nl,
write("Введите ОТЧЕСТВО
:"),readln(OTC1),nl,
write("Введите РАЙОН УЧЕТА
:"),readln(UCET1),nl,
X1=X,
retract(avto(X,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET)),
sbros(MARK1,MARK,MARK2),
sbros1(GOD1,GOD,GOD2),
sbros1(DVIG1,DVIG,DVIG2),
sbros1(SHASI1,SHASI,SHASI2),
sbros(ZNAC1,ZNAC,ZNAC2),
sbros(FAM1,FAM,FAM2),
sbros(IMA1,IMA,IMA2),
sbros(OTC1,OTC,OTC2),
sbros(UCET1,UCET,UCET2),
assertz(avto(X1,MARK2,GOD2,DVIG2,SHASI2,ZNAC2,FAM2,IMA2,OTC2,UCET2)),
!,
removewindow.
rabota(_).
sbros("",MARK,MARK2):-
MARK2=MARK,
!.
sbros(MARK1,_,MARK2):-
MARK2=MARK1,
!.
sbros1("",MARK,MARK2):-
MARK2=MARK,
!.
sbros1(MARK1,_,MARK2):-
str_int(MARK1,MARK3),
MARK2=MARK3,
!.
/*Процедура созданЃE ыMвоЃEбазы даыLых ЃEее сохраненЃE*/
rabota1(1):- makewindow(1,7,7,"СьFдаыGЃEыMвоЃEбазы ЃE ЃEркЃEавтоЃEбиЃE",0,0,25,80),
nl,
cursor(7,10),
retractall(_,avto1),
nl,
write("Введите ЃEркЃEавтоЃEбиЃE:"),
readln(X),
avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
S=MARK,
S=X,
N1=N,GOD1=GOD,DVIG1=DVIG,SHASI1=SHASI,ZNAC1=ZNAC,FAM1=FAM,IMA1=IMA,OTC1=OTC,UCET1=UCET,
assert(avto1(N1,S,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)),
fail. rabota1(1):-
write("БазЃEсозданЃE),nl,
write(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write(" є
ТЕХ. ПАСПОРТ АВТОМОБИЛЯ
"),nl,
write(" МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛННННННННННННННННННННННННЛННННННННН№"),nl,
write(" єNшє МАРКА є ГОД є NЃE є NЃE є НОМЕРН є Ф. И. О.
РАЙОН
"),nl,
write(" є
АВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є
УЧЕТА
"),nl,
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННЛННННННННЛНННННННОННННННННН№"),nl,
avto1(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
cursor(Z,_),cursor(Z,1),write("є"),
cursor(Z,2),write(N),cursor(Z,4),write("є"), cursor(Z,5),write(MARK),cursor(Z,14),write("є"),
cursor(Z,15),write(GOD),cursor(Z,20),write("є"),
cursor(Z,21),write(DVIG),cursor(Z,26),write("є"),
cursor(Z,27),write(SHASI),cursor(Z,32),write("є"), cursor(Z,33),write(ZNAC),cursor(Z,41),write("є"),
cursor(Z,42),write(FAM),cursor(Z,49),write("є"),
cursor(Z,50),write(IMA),cursor(Z,58),write("є"),
cursor(Z,59),write(OTC),cursor(Z,66),write("є"),
cursor(Z,67),write(UCET),
cursor(Z,76),write("є"),
nl,
fail.
rabota1(1):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
save("avto1.dat",avto1), nl,
write("БазЃEсохраненЃEЃEфайлЃEavto1.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
rabota1(1):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,7,7,"ТЕХ. ПАСПОРТ АВТОМОБИЛЯ",0,0,25,80). rabota1(2):- makewindow(1,7,7,"СьFдаыGЃEыMвоЃEбазы ЃE году выЃEскЃE,0,0,25,80),
nl,
cursor(7,10),
retractall(_,avto2),
nl,
write("Введите гоЃEвыЃEскЃEавтоЃEбиЃE:"),
readint(X),
avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
S=GOD,
S=X,
N1=N,MARK1=MARK,DVIG1=DVIG,SHASI1=SHASI,ZNAC1=ZNAC,FAM1=FAM,IMA1=IMA,OTC1=OTC,UCET1=UCET,
assert(avto2(N1,MARK1,S,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,UCET1)),
fail.
rabota1(2):-
write("БазЃEсозданЃE),nl,
write(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write(" є
ТЕХ. ПАСПОРТ АВТОМОБИЛЯ
"),nl,
write(" МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛННННННННННННННННННННННННЛННННННННН№"),nl,
write(" єNшє МАРКА є ГОД є NЃE є NЃE є НОМЕРН є Ф. И. О.
РАЙОН
"),nl,
write(" є
АВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є
УЧЕТА
"),nl,
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННЛННННННННЛНННННННОННННННННН№"),nl,
avto2(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
cursor(Z,_),cursor(Z,1),write("є"),
cursor(Z,2),write(N),cursor(Z,4),write("є"),
cursor(Z,5),write(MARK),cursor(Z,14),write("є"),
cursor(Z,15),write(GOD),cursor(Z,20),write("є"),
cursor(Z,21),write(DVIG),cursor(Z,26),write("є"),
cursor(Z,27),write(SHASI),cursor(Z,32),write("є"),
cursor(Z,33),write(ZNAC),cursor(Z,41),write("є"),
cursor(Z,42),write(FAM),cursor(Z,49),write("є"),
cursor(Z,50),write(IMA),cursor(Z,58),write("є"),
cursor(Z,59),write(OTC),cursor(Z,66),write("є"),
cursor(Z,67),write(UCET),
cursor(Z,76),write("є"),
nl,
fail.
rabota1(2):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
save("avto2.dat",avto2),
nl,
write("БазЃEсохраненЃEЃEфайлЃEavto2.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
rabota1(2):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,7,7,"ТЕХ. ПАСПОРТ АВТОМОБИЛЯ",0,0,25,80).
rabota1(3):- makewindow(1,7,7,"СьFдаыGЃEыMвоЃEбазы ЃE райоыR учетЃE,0,0,25,80),
nl,
cursor(7,10),
retractall(_,avto3),
nl,
write("Введите райоЃEучетЃE"),
readln(X), avto(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
S=UCET,
S=X,
N1=N,MARK1=MARK,GOD1=GOD,DVIG1=DVIG,SHASI1=SHASI,ZNAC1=ZNAC,FAM1=FAM,IMA1=IMA,OTC1=OTC,
assert(avto3(N1,MARK1,GOD1,DVIG1,SHASI1,ZNAC1,FAM1,IMA1,OTC1,S)),
fail.
rabota1(3):-
write("БазЃEсозданЃE),nl,
write(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write(" є
ТЕХ. ПАСПОРТ АВТОМОБИЛЯ
"),nl,
write(" МННЛНННННННННЛНННННЛНННННЛНННННЛННННННННЛННННННННННННННННННННННННЛННННННННН№"),nl,
write(" єNшє МАРКА є ГОД є NЃE є NЃE є НОМЕРН є Ф. И. О.
РАЙОН
"),nl,
write(" є
АВТОМОБИЛєВЫПУСєДВИГ єШАССИє ЗНАК є
УЧЕТА є"),nl,
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННЛННННННННЛНННННННОННННННННН№"),nl,
avto3(N,MARK,GOD,DVIG,SHASI,ZNAC,FAM,IMA,OTC,UCET),
cursor(Z,_),cursor(Z,1),write("є"),
cursor(Z,2),write(N),cursor(Z,4),write("є"),
cursor(Z,5),write(MARK),cursor(Z,14),write("є"),
cursor(Z,15),write(GOD),cursor(Z,20),write("є"),
cursor(Z,21),write(DVIG),cursor(Z,26),write("є"),
cursor(Z,27),write(SHASI),cursor(Z,32),write("є"),
cursor(Z,33),write(ZNAC),cursor(Z,41),write("є"),
cursor(Z,42),write(FAM),cursor(Z,49),write("є"),
cursor(Z,50),write(IMA),cursor(Z,58),write("є"),
cursor(Z,59),write(OTC),cursor(Z,66),write("є"),
cursor(Z,67),write(UCET),
cursor(Z,76),write("є"),
nl,
fail.
rabota1(3):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"), save("avto3.dat",avto3),
nl,
write("БазЃEсохраненЃEЃEфайлЃEavto3.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
rabota1(3):-
write(" МННОНННННННННОНННННОНННННОНННННОННННННННОНННННННОННННННННОНННННННОННННННННН№"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,7,7,"ТЕХ. ПАСПОРТ АВТОМОБИЛЯ",0,0,25,80).
/*Процедура заЃEси ъь диск*/
savebase(1):-
write("Введите имя файлЃE:"),
readln(N),
save(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
savebase(1):-
write("ОшибкЃEь@ЃEъь, ъьжмитЃEЃEбую ЃEавишЃE),
readchar(_).
savebase(2):-
save("avto.dat").
savebase(3).
/*Процедура чтенЃE ЃEдискЃE/
loadbase(1):-
retractall(_),
write("Введите имя файлЃE:"), readln(N),
existfile(N),
consult(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
loadbase(1):-
nl,
write("ДаныMго файлЃEыDЃEъь дискЃE),nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_).
loadbase(2):-
retractall(_),
existfile("avto.dat"),
consult("avto.dat"),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
loadbase(2):-
write("ФайЃE avto.dat ыDЃEъь дискЃE),nl,
write("ъьжмитЃEЃEбую ЃEавишЃE),
readchar(_).
loadbase(3).
povtor.
povtor:- povtor.
/*ВыбъA заЃEси*/
choice1(N):-
nl,
write("1 - известен ыMЃEЃEзаЃEси "),nl, write("2 - известъь
МАРКА "),nl,
write("3 - известен ГОД ВЫПУСКА "),nl,
write("4 - известен N ДВИГАТЕЛЯ "),nl,
write("5 - известен N ШАССИ
"),nl,
write("6 - известен НОМЕРНОЙ ЗНАК "),nl,
write("7 - известъь ФАМИЛИЯ
"),nl,
write("8 - известыM ИМЯ
"),nl,
write("9 - известыM ОТЧЕСТВО
"),nl,
write("10- известен РАЙОН УЧЕТА "),nl,
write("=>"),
readint(X),
correct(X,N).
correct(1,N):- nl,
write("Введите ыMЃEЃEзаЃEси
:"),
readint(N),
avto(M,_,_,_,_,_,_,_,_,_),
M=N.
correct(1,N):-
N=0.
correct(2,N):-
nl,
write("Введите ЃEркЃEавтоЃEбиЃE :"),
readln(L),
avto(Z,L,_,_,_,_,_,_,_,_),
N=Z.
correct(2,N):-
N=0.
correct(3,N):-
nl,
write("Введите ГьC выЃEскЃE : "),
readint(F),
avto(Z,_,F,_,_,_,_,_,_,_),
N=Z.
correct(3,N):-
N=0.
correct(4,N):-
nl,
write("Введите N двигателя :"),
readint(Q),
avto(Z,_,_,Q,_,_,_,_,_,_),
N=Z.
correct(4,N):-
N=0.
correct(5,N):-
nl, write("Введите N шассЃE :"),
readint(W),
avto(Z,_,_,_,W,_,_,_,_,_),
N=Z.
correct(5,N):-
N=0.
correct(6,N):-
nl,
write(":"),
readln(ZNAC),
avto(Z,_,_,_,_,ZNAC,_,_,_,_),
N=Z.
correct(6,N):-
N=0.
correct(7,N):- nl,
write(":"), readln(FAM),
avto(Z,_,_,_,_,_,FAM,_,_,_),
N=Z.
correct(7,N):-
N=0. correct(8,N):- nl,
write(":"), readln(IMA),
avto(Z,_,_,_,_,_,_,IMA,_,_), N=Z.
correct(8,N):- N=0.
correct(9,N):- nl,
write(":"), readln(OTC),
avto(Z,_,_,_,_,_,_,_,OTC,_), N=Z.
correct(9,N):- N=0.
correct(10,N):- nl,
write(":"),
readln(UCET),
avto(Z,_,_,_,_,_,_,_,_,UCET), N=Z.
avto(1,"ВАЗ2105",1991,123,567,"М123АВ","ЛЕНИН","ВЛАДИМИР","ИЛЬИЧ","МОСКВА")
avto(2,"ГАЗ 3102",1988,746,363,"Ф256МП","ИВАНОВ","ИВАН","ИВАНОВИЧ","КИЕВ")
avto(3,"ЗАЗ-686",1985,747,868,"У987МН","ПЕТРОВ","СЕРГЕЙ","ПАВЛОВИЧ","РЯЗАНЬ")
avto1(1,"ВАЗ2105",1991,123,567,"М123АВ","ЛЕНИН","ВЛАДИМИР","ИЛЬИЧ","МОСКВА")
рефераты
© РЕФЕРАТЫ, 2012

рефераты