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)


 

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

45495. Общие принципы построения моделирующих алгоритмов 47.5 KB
  Общие принципы построения моделирующих алгоритмов Проблема при составлении алгоритмов на последовательной машине состоит в том что при моделировании необходимо отслеживать множество параллельных процессов во времени. Основные методы Принцип Принцип особых состояний Принцип последовательной проводки заявок Принцип параллельной работы объектов Принцип Определение состояния системы в фиксированные моменты времени: t t t2 Особенности: самый универсальный и простой метод описывает широкий класс объектов Недостатки: самый...
45496. Иерархия протоколов 304 KB
  Информационная совместимость это правила передачи информации от одного узла к другому. Для того чтобы передать информацию от одного узла другому используют как минимум три уровня: физический; канальный; сетевой; На физическом уровне описаны характеристики передающей среды Основной задачей канального уровня является преобразование физической среды в канал передачи данных а так же выявление ошибок и деление информации на кадры. Кадр единица измерения для передачи информации для сетей. Первые четыре уровня обеспечивают...
45497. Теоретические основы передачи данных 378.5 KB
  Ограничения на пропускную способность передачи данных.5c ∑ n sin2pnft∑ bncos2pnft f частота nbn амплитуды nой гармоники t время передачи сигнала gt определенное ограничение на пропускную способность. При этом скорость передачи информации зависит от способа кодирования и скорости изменения кодирования.
45498. Магистрали 261 KB
  Основное достижение это применение одного канала для передачи сигналов между различными источниками и приемниками. Основано на разделении передачи сигналов от разных источников по различным несущим частотам. Это связано с тем что пропускная способность составляет 25000 Гц и за счет этого в оптических каналах скорость передачи на порядок выше. Это связано с тем что после получения канала с аналоговой петли скорость передачи данных может быть увеличена в несколько раз поэтому для цифровых каналов связи применяется метод мультиплексирования...
45499. Коммутация 466 KB
  Для систем передачи используются три способа коммутации: коммутация сообщений; коммутация каналов; коммутация пакетов. При использовании коммутации каналов снижаются накладные расходы на передачу информации. При коммутации пакетов все сообщения разделяются на определенные пакеты. В отличие от коммутации каналов абонент не может монополизировать линию.
45500. Использование амплитудно-импульсной модуляции (АИМ) для построения систем передачи с временным разделением канала 311.5 KB
  При амплитудноимпульсной модуляции амплитуда периодической последовательности импульсов изменяется в соответствии с изменеием модулирующего сигнала. АИМ1 амплитуда импульсов пропорциональна амплитуде моделирующего сигнала. При преобразовании: частота дискретизации; скважность определяет количество времени свободное для передачи сигнала. Для простоты моделирующее колебание представляется: Для амплитудномоделирующей последовательности выражение: показывает глубину модуляции после преобразования получим ряд: Из данного...
45501. Использование широкоимпульсной модуляции (ШИМ) для построения систем передачи с временным разделением канала 299 KB
  Использование фазовоимпульсной модуляции ФИМ для построения систем передачи с временным разделением каналов. ФИМ является более помехоустойчивым видом модуляции чем ШИМ и АИМ. При ФИМ используется следующий моделирующий сигнал: В этом случае основным определяющим элементом является величина фазового сдвига которая определяется по следующей формуле: ∆τmx максимальный временной сдвиг между импульсами: ∆τmx=MФИМUmx MФИМ коэффициент глубины модуляции. Модуляция фазы импульсов определяется в соответствии со следующим...
45502. CASE-средства. Общая характеристика и классификация 51 KB
  Общая характеристика и классификация Современные CSEсредства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации покрывающих весь жизненный цикл ПО. Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования в процессе которых CSEсредства обеспечивают качество принимаемых технических решений и подготовку проектной документации. Графические средства моделирования предметной области позволяют...
45503. Типизация проектных решений АСОИУ. Использование коробочных продуктов и адаптируемых интегрированных систем. Подходы к созданию автоматизированной системы 58 KB
  Подходы к созданию автоматизированной системы В настоящее время существуют различные подходs к построению АСОИП отличающиеся признаками положенными в основу классификации. Полученная таким образом схема классификации подходов к построению АСОИП приведена на рис. В соответствии с этой схемой при выборе подхода к построению АСОИП решается вопрос о возможности использования существующих на рынке тиражируемых систем или необходимости создавать уникальную систему полностью ориентированную только на задачи конкретного предприятия. Подходы к...