Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Декларация и правила Prolog-программы

ВАРИАНТ 2/20

 

Схема электрической цепи:

 

Исходные данные:

В R1 R2 R3 R4 C1 C2 C3 L1 L2 L3 I1 I2 P1 P2 P3
                               

 

Составить программу, содержащую описание элементов электрической цепи и всего, что к ним прилагается и отвечающую на следующие запросы.

 

DOMAINS

nomination = symbol % наименование элемента в схеме подключения

denomination = symbol % условное обозначение элемента в схеме подключения

node = integer % номер узла в схеме подключения

value = integer % значение элемента

unit = symbol % единица измерения элемента

PREDICATES

nondeterm element (nomination, denomination, node, node, value, unit) % элемент в схеме подключения

nondeterm common_node (node, denomination, denomination) % общий узел подключения

nondeterm parallel_connection (node, node, denomination, denomination) % параллельное соединение

 

nondeterm series_connection (node, denomination, denomination) % последовательное соединение

nondeterm task_node (nomination, denomination, node) % задание узла подключения

nondeterm resistance (denomination, value, unit) % сопротивление

CLAUSES

element ("Резистор", "R1", 2, 3, 30, "Ом").

element ("Резистор", "R2", 1, 11, 75, "Ом").

element ("Резистор", "R3", 2, 7, 65, "Ом").

element ("Резистор", "R4", 4, 10, 15, "Ом").

element ("Конденсатор", "C1", 3, 2, 200, "Ф").

element ("Конденсатор", "C2", 6, 13, 150, "Ф").

element ("Катушка индуктивности", "L1", 1, 2, 62, "Гн").

element ("Катушка индуктивности", "L2", 7, 6, 65, "Гн").

element ("Катушка индуктивности", "L3", 5, 4, 60, "Гн").

element ("Источник питания", "I1", 11, 5, 110, "В").

element ("Источник питания", "I2", 1, 7, 220, "В").

element ("Лампочка", "P1", 10, 13, 80, "Вт").

element ("Лампочка", "P2", 6, 7, 100, "Вт").

element ("Лампочка", "P3", 3, 4, 50, "Вт").

common_node (Y, Элемент_1, Элемент_2):-

element (_, Элемент_1, Y, _, _, _), element (_, Элемент_2, _, Y, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, Y, _, _, _), element (_, Элемент_2, Y, _, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, _, Y, _, _), element (_, Элемент_2, Y, _, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, _, Y, _, _), element (_, Элемент_2, _, Y, _, _), Элемент_1 <> Элемент_2.

parallel_connection (Z, X, Элемент_1, Элемент_2):-

element (_, Элемент_1, Z, X, _, _), element (_, Элемент_2, Z, X, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, Z, X, _, _), element (_, Элемент_2, X, Z, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, X, Z, _, _), element (_, Элемент_2, X, Z, _, _), Элемент_1 <> Элемент_2;

element (_, Элемент_1, X, Z, _, _), element (_, Элемент_2, Z, X, _, _), Элемент_1 <> Элемент_2.

series_connection (Y, Элемент_1, Элемент_2):-

element (_, Элемент_3, Y, _, _, _), Элемент_3 <> Элемент_1, Элемент_3 <> Элемент_2;

element (_, Элемент_3, _, Y, _, _), Элемент_1 <> Элемент_3, Элемент_2 <> Элемент_3.

task_node (Наименование, Элемент, Y):-

element (Наименование, Элемент, Y, _, _, _);

element (Наименование, Элемент, _, Y, _, _).

resistance (Обозначение, Значение, Единица_измерения):-

element ("Резистор", Обозначение, _, _, Значение, Единица_измерения), Значение > 20.

GOAL

 

 

1) вывести на экран все элементы, подключённые в заданный узел:

write ("Введите номер узла: "), readint (Узел), task_node (Элемент, Обозначение, Узел).

Ответ: Введите номер узла: 4

Узел=4, Элемент=Резистор, Обозначение=R4

Узел=4, Элемент=Катушка индуктивности, Обозначение=L3

Узел=4, Элемент=Лампочка, Обозначение=P1

3 Solutions

 

 

2) вывести на экран обозначения резисторов, сопротивление которых > 20 Ом:

write ("Обозначения резисторов, сопротивление которых > 20 Ом:"), nl, resistance (Обозначение, Значение, Единица_измерения).

Ответ: Обозначения резисторов, сопротивление которых > 20 Ом:

Обозначение=R1, Значение=30, Единица_измерения=Ом

Обозначение=R2, Значение=75, Единица_измерения=Ом

Обозначение=R3, Значение=65, Единица_измерения=Ом

3 Solutions

 

3) вывести на экран все элементы, имеющие общий узел с заданным элементом:

write ("Введите название элемента из представленных (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): "), readln (Элемент_1), write ("Элементы, имеющие общий узел с заданным элементом:"), nl, common_node (Узел, Элемент_1, Элемент_2).

Ответ: Введите название элемента из представленных (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): L1

Элементы, имеющие общий узел с заданным элементом:

Элемент _1=L1, Узел =1, Элемент _2=R2

Элемент _1=L1, Узел =1, Элемент _2=I2

Элемент _1=L1, Узел =9, Элемент _2=C1

3 Solutions

 

4) вывести на экран элементы, для которых заданный узел является общим:

write ("Введите общий узел подключения: "), readint (Заданный_узел), write ("Заданный узел является общим: "), nl, common_node (Заданный_узел, Элемент_1, Элемент_2).

Ответ: Введите общий узел подключения: 2

Заданный узел является общим:

Заданный_узел=2, Элемент_1=R1, Элемент_2=R3

Заданный_узел=2, Элемент_1=R3, Элемент_2=R1

2 Solutions

 

5) вывести на экран все варианты параллельных соединений:

write ("Все варианты параллельных соединений:"), nl, parallel_connection (Параллельный_узел_1, Параллельный_узел_2, Элемент_1, Элемент_2).

Ответ: Все варианты параллельных соединений:

Параллельный_узел_1=2, Параллельный_узел_2=3, Элемент_1=R1, Элемент_2=C1

Параллельный_узел_1=3, Параллельный_узел_2=2, Элемент_1=C1, Элемент_2=R1

Параллельный_узел_1=7, Параллельный_узел_2=6, Элемент_1=L2, Элемент_2=P2

Параллельный_узел_1=6, Параллельный_узел_2=7, Элемент_1=P2, Элемент_2=L2

Параллельный_узел_1=3, Параллельный_узел_2=2, Элемент_1=R1, Элемент_2=C1

Параллельный_узел_1=2, Параллельный_узел_2=3, Элемент_1=C1, Элемент_2=R1

Параллельный_узел_1=6, Параллельный_узел_2=7, Элемент_1=L2, Элемент_2=P2

Параллельный_узел_1=7, Параллельный_узел_2=6, Элемент_1=P2, Элемент_2=L2

 

6) существуют ли элементы параллельные заданному элементу:

write ("Введите название элемента (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): "), readln (Элемент_1), write ("Элементы, параллельные заданному элементу:"), nl, parallel_connection (Параллельный_узел_1, Параллельный_узел_2, Элемент_1, Элемент_2).

Ответ: Введите название элемента (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): L2

Элементы, параллельные заданнонму:

Элемент_1=L2, Параллельный_узел _1=7, Параллельный_узел _2=6, Элемент _2=P2

Элемент _1=L2, Параллельный_узел _1=6, Параллельный_узел _2=7, Элемент _2=P2

2 Solutions

 

7) вывести на экран все варианты последовательных соединений:

write ("Все варианты последовательных соединений:"), nl, common_node (Узел, Элемент_1, Элемент_2), not (series_connection (Узел, Элемент_1, Элемент_2)).

Ответ: Все варианты последовательных соединений:

Узел=5, Элемент_1=L3, Элемент_2=I1

Узел=11, Элемент_1=I1, Элемент_2=R2

Узел=10, Элемент_1=P1, Элемент_2=R4

Узел=11, Элемент_1=R2, Элемент_2=I1

Узел=10, Элемент_1=R4, Элемент_2=P1

Узел=5, Элемент_1=I1, Элемент_2=L3

Узел=13, Элемент_1=C2, Элемент_2=P1

Узел=13, Элемент_1=P1, Элемент_2=C2

8 Solutions

 

8) существуют ли элементы соединенные последовательно заданному элементу:

write ("Введите название элемента (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): "), readln (Элемент_1), write ("Элементы, соединённые последовательно заданному элементу:"), nl, common_node (Узел, Элемент_1, Элемент_2), not (series_connection (Узел, Элемент_1, Элемент_2)).

Ответ: Введите название элемента (R1, R2, R3, R4, C1, C2, L1, L2, L3, I1, I2, P1, P2): L3

Элементы, соединённые последовательно заданному элементу:

Элемент _1=L3, Узел=5, Элемент _2=I1

1 Solution

 

<== предыдущая лекция | следующая лекция ==>
Модели жизненного цикла ИС: каскадная, итеративная, спиральная | Методология RAD
Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 178; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.