20978

Присоединённые процедуры. Организация сетей фреймов

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

Информатика, кибернетика и программирование

deframeq flat1 Street value Prospect_Mira house value 8 flat value 10 floor value 2 square value 85 roomsnumber value 2 priceclass value 1 price value GetPrice status: eval deframeq flat2 Street value Gagarina house value 1 flat value 123 floor value 18 square value 78 roomsnumber value 3 priceclass value 2 price value GetPrice status: eval deframeq flat3 Street value Lesnaya house value 6 flat...

Русский

2013-08-02

25.93 KB

1 чел.

Лабораторная работа № 10.

Присоединённые процедуры. Организация сетей фреймов.

  1.  Имеются  фреймы,  описывающие  фрагмент  системы по обмену квартир. Реализовать функцию поиска информации о  квартирах,  удовлетворяющих заданному критерию.

(deframeq flat1

(Street  ($value (Prospect_Mira)))

(house  ($value (8)))

(flat  ($value (10)))

(floor  ($value (2)))

(square  ($value (85)))

(roomsnumber ($value (2)))

(priceclass ($value (1)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat2

(Street  ($value (Gagarina)))

(house  ($value (1)))

(flat  ($value (123)))

(floor  ($value (18)))

(square  ($value (78)))

(roomsnumber ($value (3)))

(priceclass ($value (2)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat3

(Street  ($value (Lesnaya)))

(house  ($value (6)))

(flat  ($value (111)))

(floor  ($value (1)))

(square  ($value (99)))

(roomsnumber ($value (4)))

(priceclass ($value (3)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat4

(Street  ($value (Pobedi)))

(house  ($value (2)))

(flat  ($value (121)))

(floor  ($value (5)))

(square  ($value (102)))

(roomsnumber ($value (4)))

(priceclass ($value (1)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat5

(Street  ($value (Zheleznodorozhnaya)))

(house  ($value (21)))

(flat  ($value (45)))

(floor  ($value (12)))

(square  ($value (67)))

(roomsnumber ($value (1)))

(priceclass ($value (4)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat6

(Street  ($value (Lenina)))

(house  ($value (1)))

(flat  ($value (100)))

(floor  ($value (14)))

(square  ($value (92)))

(roomsnumber ($value (2)))

(priceclass ($value (2)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat7

(Street  ($value (Gagarina)))

(house  ($value (16)))

(flat  ($value (230)))

(floor  ($value (24)))

(square  ($value (135)))

(roomsnumber ($value (4)))

(priceclass ($value (2)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat8

(Street  ($value (Prospect_Mira)))

(house  ($value (9)))

(flat  ($value (3)))

(floor  ($value (1)))

(square  ($value (54)))

(roomsnumber ($value (1)))

(priceclass ($value (4)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat9

(Street  ($value (Prospect_Mira)))

(house  ($value (62)))

(flat  ($value (120)))

(floor  ($value (7)))

(square  ($value (124)))

(roomsnumber ($value (3)))

(priceclass ($value (2)))

(price  ($value (GetPrice (status: eval))))

)

(deframeq flat10

(Street  ($value (Lenina)))

(house  ($value (15)))

(flat  ($value (83)))

(floor  ($value (4)))

(square  ($value (91)))

(roomsnumber ($value (6)))

(priceclass ($value (5)))

(price  ($value (GetPrice (status: eval))))

)

(passertq GetPrice () (* (car (fget :frame square)) (car (fget :frame priceclass)) 20000))

(setq flats '(flat1 flat2 flat3 flat4 flat5 flat6 flat7 flat8 flat9 flat10))

(defun Search (Flist P_Street P_floor P_SquareMin P_SquareMax P_roomsnumber P_Pricemin P_Pricemax)

(cond

((not (isframes Flist)) Error!_Wrong_frames_list!)

((and (not (equal P_floor '*)) (or (not (numberp P_floor)) (<= P_floor 0))) Error!_Wrong_floor_argument!)

((and (not (equal P_SquareMin '*)) (or (not (numberp P_SquareMin)) (<= P_SquareMin 0))) Error!_Wrong_square_diapazon!)

((and (not (equal P_Squaremax '*)) (or (not (numberp P_Squaremax)) (<= P_Squaremax 0))) Error!_Wrong_square_diapazon!)

((and (not (equal P_Squaremax '*)) (equal P_Squaremin '*)) Error!_Wrong_square_diapazon!)

((and (not (equal P_Squaremin '*)) (equal P_Squaremax '*)) Error!_Wrong_square_diapazon!)

((and (not (equal P_roomsnumber '*)) (or (not (numberp P_roomsnumber)) (<= P_roomsnumber 0))) Error!_Wrong_rooms_number_argument!)

((and (not (equal P_priceMin '*)) (or (not (numberp P_priceMin)) (<= P_priceMin 0))) Error!_Wrong_price_diapazon!)

((and (not (equal P_pricemax '*)) (or (not (numberp P_pricemax)) (<= P_pricemax 0))) Error!_Wrong_price_diapazon!)

((and (not (equal P_pricemax '*)) (equal P_pricemin '*)) Error!_Wrong_price_diapazon!)

((and (not (equal P_pricemin '*)) (equal P_pricemax '*)) Error!_Wrong_price_diapazon!)

(T

(setq result '())

(loop

((null flist) (outputresult result))

(if

(and

 (or (equal P_street '*) (equal P_Street (car (fget (car flist) street))))

 (or (equal P_floor '*) (equal P_floor (car (fget (car flist) floor))))

 (or (equal P_squaremin '*) (and (<= P_Squaremin (car (fget (car flist) square))) (>= P_Squaremax (car (fget (car flist) square)))))

 (or (equal P_roomsnumber '*) (equal P_roomsnumber (car (fget (car flist) roomsnumber))))

 (or (equal P_pricemin '*) (and (<= P_pricemin (car (fget (car flist) price))) (>= P_pricemax (car (fget (car flist) price)))))

)

(setq result (append result (list (car flist))))

)

(setq flist (cdr flist))

)

)

)

)

(defun isframes (flist)

(cond

 ((null flist) T)

 ((Null (member (car flist) (cdr *FRAMES*))) NIL)

 (T (isframes (cdr flist)))

)

)

(defun outputresult (flist)

(cond

 ((null flist) NO_matches_found)

 (T

  (loop

   ((null flist) -----------------------------)

   (PRINT -----------------------------)

   (PRINT (car flist))

   (PRINT -----------------------------)

   (PRINT

(list

ULIZA: (car (fget (car flist) street))

D: (car (fget (car flist) house))

KV: (car (fget (car flist) flat))

)

)

   (PRINT (list FLOOR: (car (fget (car flist) floor))))

   (PRINT (list ROOMS: (car (fget (car flist) roomsnumber))))

   (PRINT (list SQUARE: (car (fget (car flist) square))))

   (PRINT (list PRICE: (car (fget (car flist) price)) $))

   (setq flist (cdr flist))  

  )

 )

)

)

пример

(search flast * 1 80 100 * * *)  => ...

  1.  Во фрейме имеется слот с закодированным значением информации. Обеспечить  ее  извлечение  по  паролю.

(deframeq Xframe

(Secret ($value (FRL))

 ($IF-needed (checkpassword (status: eval))))

)

(passertq checkpassword ()

(print PASSWORD?)

(if (equal (read input) qwerty)

 (car (fget :frame secret $value))

 Wrong_password!

)

)

пример

(fneed xframe secret)  => PASSWORD?

1234    => WRONG_PASSWORD!

(fneed xframe secret)  => PASSWORD?

QWERTY   => (FRL)


 

А также другие работы, которые могут Вас заинтересовать

26656. ЭКОЛОГИЧЕСКИЙ ПОТЕНЦИAЛ И ЕГО РAЗРУШЕНИЕ 113.5 KB
  Чем большим потенциaлом устойчивости облaдaют экосистемы и тем больше чистого водухa воды пищи достaнется в конечном счете человеку. ПАДЕНИЯ УРОВНЯ АРАЛА Непосредственная физическая причина снижения уровня Аральского моря это нарушение водного баланса водоема: превышение расхода воды над приходом. Важную роль сыграли дополнительные потери воды на испарение с поверхности многочисленных водохранилищ построенных в бассейнах Амударьи и Сырдарьи. На сокращении стока Амударьи и Сырдарьи сказались также нерациональное и неэкономное использование...
26657. Актуальные экологические проблемы современности 84 KB
  Тщательное изучение последствий изменения климата приводит к выводу что развивающиеся страны окажутся наиболее уязвимы. Исследование опубликованное Кембриджским Университетом под названием Изменения климата: воздействие на разные страны и их сопричастность представлено учеными из 30 стран в т. Хотя влияние изменения климата не везде одинаково приведенные в исследовании примеры демонстрируют насколько драматичным оно может оказаться для ряда стран.
26658. ЛАНДШАФТ АНТРОПОГЕННЫЙ 43 KB
  Anthropos человек Genes рождающий рожденный Антропогенный ландшафт географический ландшафт: созданный в результате целенаправленной деятельности человека; или возникший в ходе непреднамеренного изменения природного ландшафта. К антропогенным ландшафтам относятся природнопроизводственные комплексы городские поселения и т. В современной ландшафтной архитектуре выделяют понятия природного и антропогенного ландшафта. Они весьма чутки к изменениям вызываемым процессом урбанизации промышленного и сельскохозяйственного освоения...
26659. Аральское море 70 KB
  Одновременно значительно сократились объем воды в Арале с 1093 до 330 км3 то есть на 763 км3 или более чем в три раза и площадь водоема с 68 500 до 36 500 км2 то есть на 32 000 км2 или почти вдвое табл. Пролив Берга соединявший ранее Малое и Большое моря превратился в небольшой но достаточно длинный проток по которому излишки воды из Малого сбрасывались в Большое море. О НЕПОСРЕДСТВЕННОЙ ПРИЧИНЕ ПАДЕНИЯ УРОВНЯ АРАЛА Непосредственная физическая причина снижения уровня Аральского моря это нарушение водного баланса водоема:...
26660. Биосфе́ра 84.5 KB
  Масса живого вещества сравнительно мала и оценивается величиной 24361012 т в сухом весе и составляет менее 10−6 массы других оболочек Земли. Эту геологическую роль живого вещества можно представить себе по месторождениям угля нефти карбонатных пород и т. Рассеянные атомы непрерывно создающиеся из всякого рода земного вещества под влиянием космических излучений. Биологическое разнообразие основа формирования устойчивых биогеохимических циклов вещества и энергии в биосфере Земле.
26661. Критическое состояние ландшафта 38.5 KB
  Ландшафт от нем. Солнцева ландшафт характеризуется единством геологической платформы климата и истории развития. Ландшафт абиогенный Ландшафт сформировавшийся без существенного влияния живого вещества.
26662. Высотная поясность, высотная зональность 43 KB
  Высотный пояс высотная ландшафтная зона единица высотнозонального расчленения ландшафтов в горах. Высотный пояс образует полосу сравнительно однородную по природным условиям часто прерывистую Характеристика явления Высотная поясность объясняется изменением климата с высотой: на 1 км подъёма температура воздуха снижается в среднем на 6 C уменьшается давление воздуха его запылённость возрастает интенсивность солнечной радиации до высоты 2 3 км увеличивается облачность и количество осадков. По мере нарастания высоты происходит смена...
26663. Географическая оболочка 31.5 KB
  Взаимное проникновение друг в друга слагающих географическую оболочку Земли газовой водной живой и минеральных оболочек и их взаимодействие определяет целостность географической оболочки. Знание закона целостности географической оболочки имеет большое практическое значение. Изменение одной из оболочек географической оболочки отражается и на всех других. Он характеризовался ведущей ролью живых существ в развитии и формировании географической оболочки.
26664. Географи́ческая оболо́чка 45 KB
  Земная кора Земная кора это верхняя часть твёрдой земли. Температура убывает с ростом высоты со средним вертикальным градиентом 065 100 м За нормальные условия у поверхности Земли приняты: плотность 12 кг м3 барометрическое давление 10134 кПа температура плюс 20 C и относительная влажность 50 . Гидросфера Гидросфера совокупность всех водных запасов Земли.