Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторные работы по «Функциональному и логическому программированию»

Автор:   •  Октябрь 3, 2019  •  Лабораторная работа  •  523 Слов (3 Страниц)  •  463 Просмотры

Страница 1 из 3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«Национальный исследовательский ядерный университет «МИФИ»

Димитровградский инженерно–технологический институт –

филиал федерального государственного автономного образовательного учреждения высшего

образования «Национальный исследовательский ядерный университет «МИФИ»

(ДИТИ НИЯУ МИФИ)

ОТЧЕТ

Лабораторные работы

По дисциплине «Функциональное и логическое программирование»

Выполнил: Студент гр. ВТ-21

Чатта Александр Владимирович

Проверила:

Горбунова Екатерина Андреевна

Димитровград, 2019

Лабораторная работа №1

Вариант 1

Составить программу для имитации работы с простой базой данных, заполненной в указанной тематике. В базе должно быть не менее 30 записей и не менее 6 полей в каждой записи. База данных хранится в файле.

База данных хранятся в файле db.txt. Для того чтобы загрузить список видеокарт воспользуемся предикатом

Consult ("C:\\Users\\Public\\Documents\\Userrov\\Lab1\\Lab1\\db.txt"),

[pic 1]

Рис 1 – файл db.txt

Вывод всех записей из файла осуществляется следующим образом:

printall:-retract(product(Item)),

print(Item),fail.

print(Item):- Item=videocard(Mark,Price,Model,Connection_interface,Processor_frequency,DirectX_version),

                writef("%-20\t%-20\t%-20\t%-30\t%-30\t%-20",Mark,Price,Model,Connection_interface,Processor_frequency,DirectX_version),nl.

[pic 2]

Рис 2 – вывод всех записей

Поиск по конкретному значению.

findByMark(Mark,Item):-retract(product(Item)),

Item=videocard(Mark,_,_,_,_,_).

Считывается текст, введённый с клавиатуры. Далее на экран выводятся только те видеокарты, которые подходят под условие

[pic 3]

Рис 3 – поиск по конкретному полю

Поиск по одному из числовых полей.

choice(3):-writef("Введите минимальную цену : "),

readint(Min),

writef("Введите максимальную цену: "),

readint(Max),

writef("%-20\t%-20\t%-20\t%-30\t%-30\t%-20","mark","price","model","connection_interface","processor_frequency","directX_version"),nl,

findByPrice(Min,Max,Item),

print(Item),fail;true.

Происходит считывание введённых значений. на экран выведутся толь ко те записи которые соответствуют заданному диапазону

[pic 4]

Рис 4- поиск по одному из числовых полей


Добавление элемента в базу данных. Происходит считывание текста с клавиатуры и добавление в базу данных. Далее на экран выводится та информация, которую мы ввели с клавиатуры и сразу же записывает её в файл базы данных.

[pic 5]

Рис 5 – код добавления записи

Удаление элемента из базы данных.

[pic 6]

Рис 6 – код удаления записи

Происходит удаление пункта, который мы добавили выше. Затем файл перезаписывается


Исходный код программы

domains

mark=string

price=real

model=string

connection_interface=string

processor_frequency=integer

directX_version=string

item=videocard(mark,price,model,connection_interface,processor_frequency,directX_version)

constants

null=0

predicates

determ menu

determ printall

determ print(item)

nondeterm choice (integer)-(i)

nondeterm findByMark(mark,item) - (i,o)

nondeterm findByPrice(price,price,item) - (i,i,o)

nondeterm findByModel(model,item) - (i,o)

nondeterm findByConnection_interface(connection_interface,item) - (i,o)

nondeterm findByProcessor_frequency(processor_frequency,item) - (i,o)

nondeterm findByDirectX_version(directX_version,item) - (i,o)

facts

product(Item)

clauses

menu:-write(" âûáåðèòå äåéñòâèå:"),nl,

write(" 1 - íàïå÷àòàòü"),nl,

write(" 2 - ïîèñê ïî ìàðêå"),nl,

write(" 3 - ïîèñê ïî öåíå"),nl,

write(" 4 - ïîèñê ïî ìîäåëè"),nl,

write(" 5 - ïîèñê ïî èíòåðôåéñó ïîäêëþ÷åíèÿ"),nl,

write(" 6 - ïîèñê ïî ÷àñòîòå ïðîöåññîðà"),nl,

write(" 7 - ïîèñê ïî âåðñèè DirectX"),nl,

write(" 8 - äîáàâèòü çàïèñü"),nl,

write(" 9 - óäàëèòü çàïèñü"),nl,

readint(C),

consult("C:\\Users\\Public\\Documents\\Userrov\\Lab1\\Lab1\\db.txt"),

...

Скачать:   txt (11.4 Kb)   pdf (1 Mb)   docx (617.4 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club