7.4. Справочник комплектующих деталей
7.4. Справочник комплектующих деталей
В главе 3 мы рассматривали программу, выдающую на печать список деталей, необходимых при сборке некоторого узла на основе справочника комплектующих деталей. В данном разделе мы усовершенствуем эту программу, будем учитывать количество деталей путем суммирования числа требуемых деталей по мере перехода от узлов к их составляющим. Кроме того, усовершенствованная программа правильно обрабатывает повторения; процедура собрать устраняет повторения при суммировании для каждой из требуемых деталей перед тем, как ответ выдается на печать.
Организация базы данных справочника сходна с тем, что описано в гл. 3. Сборочный узел представлен в виде списка структур вида чис(X, Y), где X – это имя некоторой детали (простой детали или узла), a Y – необходимое количество таких деталей. Ниже перечислены все предикаты измененной программы с указанием их назначения:
Деталиузла(А): выдает на печать список всех простых деталей, требующихся для сборки узла А, и количество каждой детали.
Деталиузлов(N,X,P): P - это список структур чис(Дет, Кол), где Дет - это название детали, а Кол - это количество таких деталей, требующихся для сборки каждого из экземпляров узлов X. N - целое, а X – атом, представляющий название некоторой детали.
Деталировка(N,S,Р): Р - это, как и выше, список структур чис, требующихся для сборки всех узлов, представленных элементами списка S; N задает число экземпляров списка S, N – целое; S – список структур чис.
Собрать(Р, А): Р и А – списки структур чис. А – это список, составленный из тех же элементов, что и Р, но без повторений одной и той же детали. Причем количество каждой детали, указанное в списке А, совпадает с суммой всех повторений этой детали в списке Р. Предикат собрать мы используем для того, чтобы собрать несколько описей наборов одинаковых деталей в одну опись. Например, 3 винта, 4 шайбы и 4 винта собираются вместе, давая 7 винтов и 4 шайбы.
Дособрать(Х,М, L,O,N) : L и О - это списки структур, чис, О – это список всех элементов списка L, в состав которых не входит деталь X; X – это атом, задающий название некоторой детали; N – это общее количество X в списке L, сложенное с М; М – это целое число, которое используется для суммирования количеств X в L и передается как аргумент в каждом вызове дособрать. При выходе из рекурсии, который обеспечивается выполнением граничного условия, М возвращается как N.
Вывдеталейузла(Р): Р – это список структур чис, который выдается на печать по одной структуре на строке вывода. Цель put(9) выводит литеру с кодом ASCII=9, что соответствует горизонтальной табуляции. С предикатом присоединить мы уже неоднократно встречались ранее.
Полностью Пролог-программа выглядит так:
деталиузла(Т):-деталиузлов(1,Т,Р), co6paть(P,Q), вывдеталейузла(Q).
деталиузлов(N,Х,Р):-узел(Х,S), деталировка(N,S,Р).
деталиузлов(N,Х, [чис(Х,N)]):- деталь(Х).
деталировка(_, [], []).
деталировка(N, [чис(Х, Число) |L],T):-М is N * Число, деталиузлов(М,Х,Хдетали),деталировка (N, L,Остдетали,Т),присоединить(Хдетали,Остдетали,Т).
собрать([],[]).
coбpaть([чис(X,N)|R],[чис(X,Nитог)|R2]):-дособрать(Х,N,R,O,Nитог),собрать(О,R2).
досo6paть(_,N,[],[],N).
дособрать(Х,N,[чис(Х,Число)|Oст],Прочие,Nитог):-!,М is N+Число, дособрать(Х,М,Ост,Прочие,Nитог).
дособрать(Х,N,[Друг|Ост],[Друг|Прочие],Nитог):-дособрать(Х, N, Ост, Прочие, Nитог).
вывдеталейузла([]).
вывдеталейузла([чис(Х,N)|R):-tab(4),write(N),put(9),write(X),nl, вывдеталейузла(R).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Справочник по PHP
Справочник по PHP О этом справочнике Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.В связи с тем, что данный ресурс постоянно
Справочник по CSS
Справочник по CSS О этом справочнике Справочник предназначается для людей, уже освоивших азы работы с HTML и CSS.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.В связи с тем, что данный ресурс постоянно пополняется новой
Выбор беспроводных комплектующих
Выбор беспроводных комплектующих На рынке присутствует огромное количество беспроводного оборудования разного назначения и разных стандартов – остается только выбрать. Как обычно, 50 % этого оборудования составляют изделия с маркой no паше, и стоимость его несколько
3.6. Использование предиката присоединить и спецификация деталей
3.6. Использование предиката присоединить и спецификация деталей Предикат присоединить, обрабатывающий списки, используется для создания нового списка, являющегося результатом соединения двух других списков. Например, верен следующей факт:присоединить([а,b,с], [3,2,1],
Формообразующие операции (построение деталей)
Формообразующие операции (построение деталей) Мы уже выяснили, что КОМПАС – система твердотельного моделирования и что большинство операций по созданию моделей в ней основываются на эскизах (исключение составляют операции по созданию фаски, скругления, оболочки и т. п.).
«Справочник URL»
«Справочник URL» Производитель: Semantica Inc. (http://www.semantica.ru).Статус: бесплатная.Размер дистрибутива: 670 Кбайт.Программа обладает простым и интуитивно понятным интерфейсом, а также развитыми средствами поиска и фильтрации ссылок (рис. 4.19). Удобный механизм в «Справочнике URL»
Глава 3 Введение в трехмерное моделирование деталей
Глава 3 Введение в трехмерное моделирование деталей Трехмерное твердотельное моделирование является единственным средством, которое обеспечивает создание наиболее полной электронной модели изделия. ГОСТ 2.052-2006 (Электронная модель изделия) устанавливает следующие
4.4. Расположение видов на чертеже и создание трехмерных моделей деталей
4.4. Расположение видов на чертеже и создание трехмерных моделей деталей Задание 4, пример выполнения которого показан на рис. 4.28, содержит задачи по сравнению чертежей в прямоугольных проекциях с наглядными изображениями (аксонометрическими проекциями). При выполнении
Приложение 3 Исходные данные для моделирования семейств деталей
Приложение 3 Исходные данные для моделирования семейств
Проверка комплектующих
Проверка комплектующих Крайне важный этап проверки – тестирование комплектующих ноутбука. В первую очередь это касается жесткого диска, так как именно с ним чаще всего возникают всевозможные проблемы.Чтобы протестировать винчестер на наличие сбойных секторов,
Сайты крупнейших производителей периферийных устройств, комплектующих и аксессуаров для ноутбуков
Сайты крупнейших производителей периферийных устройств, комплектующих и аксессуаров для ноутбуков Addonics – www.addonics.com – внешние накопители и др.AMD – www.amd.ru – процессоры.ATI – www.ati.com/ru/ – видеочипы.D-Link – www.dlink.ru – LAN-карты, модемы.Intel – www.intel.ru – процессоры, сетевые решения.Iomega
Подключение прочих комплектующих
Подключение прочих комплектующих Дальше все просто. В свободные разъемы PCI и PCI-E установите имеющиеся в наличии внутренние комплектующие (модем, сетевую и звуковую карты, ТВ-тюнер и т. д.). Алгоритм их установки точно такой же, как и для видеокарты, так что мы не будем
Контроль за состоянием комплектующих
Контроль за состоянием комплектующих Количество установленных в компьютере компонентов достаточно большое, и их стоимость порой очень высокая. В первую очередь это касается центрального процессора, жесткого диска и графического адаптера.Стабильность работы
Контроль за состоянием комплектующих
Контроль за состоянием комплектующих Количество установленных в компьютере компонентов достаточно большое, и их стоимость порой очень высока. В первую очередь это касается центрального процессора, жесткого диска и графического адаптера.Стабильность работы компьютера