Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Логическое программирование1 / 1-5_LR_4KSM_Logichne_progr_2014-15

.pdf
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
498.87 Кб
Скачать

 

41

 

 

2

 

1

 

 

 

 

14

система подає звукові сигнали, вентилятор працює, на екрані нема ку-

 

 

рсору

 

15

система «зависає» під час виконання або одразу ж після тестування

 

 

POST

 

16

неправильна ідентифікація процесору під час тестування POST

 

 

 

 

17

операційна система не завантажується

 

 

 

 

18

додатки не інсталюються та не працюють

 

 

 

 

19

система працює, але зображення на екрані монітора нема

 

 

 

 

 

Діагностичні інформаційні повідомлення

 

 

про можливі причини виникнення несправностей процесорів

 

 

 

 

20

несправний шнур живлення

 

 

 

 

21

несправний блок живлення

 

 

 

 

22

несправна системна плата

 

 

 

 

23

несправні модулі пам`яті

 

 

 

 

24

компоненти системи не встановлені або встановлені некоректно

 

 

 

 

25

неправильно встановлений або несправний відеоадаптер

 

 

 

 

26

недостатнє відведення тепла

 

 

 

 

27

неправильно встановлено напругу

 

 

 

 

28

неправильно встановлено частоту шини системної плати

 

 

 

 

29

неправильно встановлено множник тактової частоти

 

 

 

 

30

застаріла BIOS

 

 

 

 

31

неправильна конфігурація плати

 

 

 

 

32

недостатнє відведення тепла

 

 

 

 

33

неправильно встановлено напругу

 

 

 

 

34

неправильно встановлено частоту шини системної плати

 

 

 

 

35

неправильно встановлено множник тактової частоти

 

 

 

 

36

застарілі драйвери або несумісне апаратне забезпечення

 

 

 

 

37

монітор вимкнений або несправний

 

 

 

 

 

42

 

 

2

 

1

 

 

 

 

 

Діагностичні інформаційні повідомлення про способи вирішення

 

 

проблем, пов'язаних із несправностями процесорів

 

 

(рекомендації щодо дій, які потрібно виконати для

 

 

перевірки наявності певної причини виникнення несправності

 

 

процесору та, в разі можливості, усунення даної несправності)

 

38

оскільки зовнішній огляд не завжди дозволить визначити справність ме-

 

 

режного шнура, під`єднайте до мережі або замініть шнур живлення

 

39

замініть блок живлення завідомо справним блоком

 

 

 

 

40

замініть системну плату іншою, завідомо справною платою

 

 

 

 

41

вилучіть усі модулі пам`яті, окрім одного, та протестуйте ще раз, а якщо

 

 

система не завантажується, то замініть цей модуль

 

 

 

 

42

перевірте всі периферійні пристрої, особливо пам`ять і відеоадаптер, а

 

 

також перевірте гнізда та роз`єми компонентів

 

 

 

 

43

перевстановіть або замініть відеоадаптер завідомо справним адаптером

 

 

 

 

44

перевірте тепловідвід/вентилятор процесору; за необхідності, замініть

 

 

його більш потужним

 

45

установіть напругу системної плати у відповідності з напругою ядра

 

 

процесору

 

46

установіть відповідну частоту системної плати

 

 

 

 

47

перемкніть системну плату на відповідне значення множника

 

 

 

 

48

поновіть BIOS

 

 

 

 

49

перевірте положення перемичок системної плати у відповідності з

 

 

параметрами шини та множника

 

50

перевірте вентилятор процесору та, за необхідності, замініть його більш

 

 

потужним

 

51

установіть напругу системної плати у відповідності з напругою ядра

 

 

процесору

 

52

установіть відповідну частоту системної плати

 

 

 

 

53

перемкніть системну плату на відповідне значення множника

 

 

 

 

54

поновіть драйвери та перевірте сумісність компонентів

 

 

 

 

55

перевірте монітор і подачу живлення та спробуйте замінити монітор

 

 

завідомо справним

 

43

Таблиця 2

Типові причини несправностей процесорів

Проблема

Можлива причи-

Способи вирішення

 

з/п

 

на

 

проблеми

 

 

 

 

 

 

 

 

 

 

 

 

 

Оскільки

зовнішній

огляд

не

 

 

Несправний

завжди

дозволить

визначити

 

 

шнур

справність

мережного

шнура,

 

 

живлення

під`єднайте до мережі або замініть

 

Система

 

шнур живлення

 

 

 

 

 

 

 

 

 

 

 

 

 

не відзивається,

Несправний

Замініть блок живлення

завідомо

 

нема курсору

 

блок живлення

справним блоком

 

 

 

 

1

та звукового

 

 

 

 

 

 

 

 

 

 

 

 

сигналу,

Несправна си-

Замініть системну

плату

іншою,

 

не працює

 

стемна плата

завідомо справною платою

 

 

вентилятор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вилучіть усі модулі пам`яті, окрім

 

 

Несправні

одного, та протестуйте ще раз.

 

 

 

модулі пам`яті

Якщо система не завантажується,

 

 

 

то замініть зазначений модуль.

 

 

Система не відзи-

Компоненти си-

Перевірте

всі

периферійні

 

вається, нема

 

стеми

пристрої,

особливо

пам`ять

і

 

звукового сигналу

2

не встановлені

відеоадаптер.

 

 

 

 

або «зависає»

 

 

 

 

 

або встановлені

Перевірте гнізда та роз`єми компо-

 

перед початком

 

некоректно

нентів.

 

 

 

 

 

 

тестування POST

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Система

 

 

 

 

 

 

 

 

подає звукові

Неправильно

Перевстановіть

або

 

замініть

 

сигнали,

встановлений

 

3

відеоадаптер завідомо

справним

вентилятор працює,

або несправний

 

адаптером.

 

 

 

 

 

 

на екрані нема

відеоадаптер

 

 

 

 

 

 

 

курсору

 

 

 

 

 

 

 

44

Таблиця 2 Типові причини несправностей процесорів

Проблема

Можлива причина

Способи вирішення

 

 

з/п

 

 

проблеми

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Недостатнє відведення теп-

Перевірте

 

тепловідвід/вентилятор

 

 

процесору.

 

 

 

 

 

 

 

 

 

ла

За необхідності, замініть його більш

 

 

 

потужним.

 

 

 

 

 

 

 

 

Система «зави-

Неправильно встановлено

Встановіть напругу системної плати у

 

сає»

напругу

відповідності

з

напругою

ядра

4

під час виконання

процесору

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

або одразу ж

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

після тестування

Неправильно встановлено

Встановіть

 

відповідну

частоту

 

POST

частоту шини системної

 

 

 

плати

системної плати

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неправильно встановлено

Перемкніть

 

системну

 

плату

 

на

 

 

множник тактової частоти

відповідне значення множника

 

 

 

Неправильна

Застаріла BIOS

Поновіть BIOS

 

 

 

 

 

 

ідентифікація

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

процесору

Неправильна конфігурація

Перевірте

 

положення

перемичок

 

під час тестуван-

системної

плати у

відповідності

з

 

ня POST

плати

параметрами шини та множника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Недостатнє відведення теп-

Перевірте

вентилятор

процесору;

за

 

 

необхідності,

замініть

його

більш

 

 

ла

потужним

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неправильно встановлено

Встановіть напругу системної плати у

 

Операційна си-

відповідності

з

напругою

ядра

 

напругу

процесору

 

 

 

 

 

 

 

6

стема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

не завантажується

Неправильно встановлено

Встановіть

 

відповідну

частоту

 

 

частоту шини системної

 

 

 

системної плати

 

 

 

 

 

 

 

плати

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неправильно встановлено

Перемкніть

 

системну

 

плату

 

на

 

 

множник тактової частоти

відповідне значення множника

 

 

 

Додатки

Застарілі драйвери або не-

Поновіть

драйвери

 

та

перевірте

7

не інсталюються

сумісне апаратне забезпе-

сумісність компонентів.

 

 

 

 

 

та не працюють

чення

 

 

 

 

 

 

 

 

 

Система працює,

 

Перевірте монітор і подачу живлення.

 

але зображення

Монітор вимкнений або не-

8

Спробуйте замінити монітор завідомо

 

на екрані моніто-

справний

справним.

 

 

 

 

 

 

 

 

ру нема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

45

Таблиця 3

Логічні відповідності між діагностичними інформаційними повідомленнями

про несправності процесорів, які належать до чотирьох базових категорій (задаються умовно, як відповідності між номерами зазначених повідомлень)

Повідомлення

Повідомлення

Повідомлення

Повідомлення

№№38-55

№№ 20-37

№№ 12-19

№№ 1-11

 

 

 

 

38

20

12

1 and 8 and 10 and 11

 

 

 

 

39

21

12

1 and 8 and 10 and 11

 

 

 

 

40

22

12

1 and 8 and 10 and 11

 

 

 

 

41

23

12

1 and 8 and 10 and 11

 

 

 

 

42

24

13

1 and 2 and 8

 

 

 

 

43

25

14

not(8) and 10 and not(11)

44

26

15

3 or 5

 

 

 

 

45

27

15

3 or 5

 

 

 

 

46

28

15

3 or 5

 

 

 

 

47

29

15

3 or 5

 

 

 

 

48

30

16

4

 

 

 

 

49

31

16

4

 

 

 

 

50

32

17

6

 

 

 

 

51

33

17

6

 

 

 

 

52

34

17

6

 

 

 

 

53

35

17

6

 

 

 

 

54

36

18

7

 

 

 

 

55

37

19

not(1) and 9

 

 

 

 

6.ЛІТЕРАТУРА

1.Братко И. Алгоритмы искусственного интеллекта на языке PROLOG. – М.: Издательский дом “Вильямс”, 2014. – 640 с. − Гл.4-10. − С.98-226.

2.Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: ДМК; Радио и связь, 2014. – 560 с. − Гл.4-10. − С.130-322.

46

ЛАБОРАТОРНА РОБОТА 4

Тема: Синтаксис і семантика мов логічного програмування. Частина 2.

Мета: Практичне опановування особливостей визначення операторів, здійснення обчислень, організації управління ходом виконання програм, введення та виведення інформації в логічних програмах.

1 ПЛАН ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ

1.Вивчити основні теоретичні відомості до лабораторної роботи.

2.Ознайомитися з теоретичними матеріалами, викладеними в методичних вказівках для самостійної роботи студентів.

3.Опрацювати контрольні питання.

4.Виконати завдання для самоперевірки.

5.Виконати індивідуальні контрольні завдання.

6.Оформити та захистити звіт з лабораторної роботи (вимоги до оформлення та захисту лабораторної роботи знаходяться в Додатку А, а зразок оформлення титульного аркуша звіту про виконання лабораторної роботи знаходиться в Додатку Б).

47

2 ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

2.1. Методи реалізації арифметичних, ітераційних і рекурсивних операцій у Пролог-програмах

2.1.1.Методи реалізації арифметичних операцій

удекларативных Пролог-програмах

Пролог надає два вбудованих числових типи доменів: цілі числа; дійсні числа.

Для реалізації чотирьох основних арифметичних операцій (додавання, віднімання, множення та ділення) над числами цілого та дійсного типів,

у Пролог-програмах використовують предикати.

Пролог-програма "Числа" (лістинг 1) демонструє наочний приклад застосування предикатів для реалізації арифметичних операцій.

Узазначеній програмі описано предикати та визначено правила для реализації додавання, віднімання, множення та ділення цілих і дійсних чисел.

Кожне таке правило виконує одну вбудовану арифметичну операцію (+, -, * або /) та виводить отриманий результат на екран комп'ютеру.

Внутрішню ціль програми "Числа" складено з послідовності тверджень, які використовують зазначені правила.

Уформулюванні цілі присутні числові значення, що передаються в тіла правил.

Важливо дотримуватися відповідності типів даних і типів об`єктів предикатів.

При цьому, якщо ділення цілого числа на ціле дає десятковий дріб, то всі знаки, аж до десятого, є вірними.

48

 

/*Лістинг 1. Программа "Числа",

*/

/*що демонструє застосування предикатів Прологу

*/

/*для реалізації арифметичних операцій додавання, віднімання,

*/

/*множення та ділення цілих і дійсних чисел

*/

/* Розділ опису предикатів (відносин між об`єктами) */

 

predicates

/* Предикати для реалізації арифметичних операцій над цілими числами */ add(integer,integer)

substruct(integer,integer)

multiply(integer,integer)

divide(integer,integer)

/* Предикати для реализації арифметичних операций над дійсними числами */ fadd(real,real)

fsubstruct(real,real)

fmultiply(real,real)

fdivide(real,real)

/* Розділ опису цілі Пролог-програми

*/

goal

 

write(" Results"), nl, nl,

 

add(44,23), substruct(44,23), multiply(44,23), divide(44,23),

fadd(12.65,7.3), fsubstruct(12.65,7.3), fmultiply(12.65,7.3), fdivide(12.65,7.3),

nl, write(" All done, bye!").

 

/* Розділ опису правил */

 

clauses

 

/* Правила для реалізації арифметичних операцій над цілими числами

*/

add(X,Y):- Z = X + Y, write("Sum = ", Z), nl.

 

substruct(X,Y):- Z = X - Y, write("Diff = ", Z), nl.

 

multiply(X,Y):- Z = X * Y, write("Pro = ", Z), nl.

 

divide(X,Y):- Z = X / Y, write("Quo = ", Z), nl.

 

49

/* Правила для реалізації арифметичних операцій над дійсними числами */ fadd(P,Q):- R = P + Q, write("Fsum = ",R), nl.

fsubstruct(P,Q):- R = P - Q, write("Fdiff = ",R), nl. fmultiply(P,Q):- R = P * Q, write("Fpro = ",R), nl. fdivide(P,Q):- R = P / Q, write("Fquo = ",R), nl.

/***** Кінець програми *****/

2.1.2.Методи реалізації ітераційних і рекурсивних операцій

удекларативних Пролог-програмах

Достатньо часто в програмах необхідно виконувати одну задачу декілька разів. Для вирішення проблеми, застосовують ітераційні та рекурсивні правила.

Багаторазове виконання однієї або декількох операцій у Прологпрограмах здійснюється за допомогою правил, які використовують повтор і рекурсію: правила, що виконують повтор, використовують методи відкату; правила, що виконують рекурсію, використовують методи самовиклику.

Основними класами методів реалізації багаторазового виконання однакових операцій у Пролог-програмах є: методи відкату після невдачі; методи відсікання та відкату; правила повтору, що визначаються користувачем; узагальнені рекурсивні правила.

Правила повтору та рекурсії повинні містити зручні засоби управління їх виконанням: вбудовані предикати fail і cut для управління відкатами; умови завершення для управління рекурсією.

Синтаксис (вид) правила, що виконує повтор:

repetitive_rule :-

/* правило повтору */

<предикати та правила>,

 

fail.

/* предикат виклику відкату*/

Конструкція <предикати та правила> може містити: предикати, що включають декілька тверджень; правила, що визначені в програмі.

50

Вбудований предикат fail (невдача) викликає відкат, завдяки якому конструкція <предикати та правила> виконується ще раз.

Синтаксис (вид) правила, що виконує рекурсію:

 

recursive_rule :-

/* правило рекурсії */

<предикати та правила>,

 

recursive_rule.

/* самовиклик */

Останнім складовим елементом у тілі правила рекурсії recursive_rule

є саме це правило (правила рекурсії містять у тілі правила самі себе).

Правила повтору та рекурсії можуть забезпечувати однаковий результат, але алгоритми їх виконання не є однаковими (кожен із алгоритмів у конкретній ситуації має свої переваги, недоліки та галузі застосування).

Пролог-програма «Міста США» (лістинг 2) демонструє використання предикату fail. Призначення програми полягає в виведенні на екран комп`ютеру переліку з назв десяти міст США.

Внутрішньою ціллю є вираз write("Here are the cities:"), nl, show_cities. Твердження першої підцілі видає заголовок Here are the cities (Назви міст). Друга підціль є правилом для перелічування назв міст:

show_cities :- cities(City), write(" ",City), nl, fail.

Підправило cities(City) означує змінну City (місто) назвою міста, після чого дане значення выдається на екран за допомогою предикату write.

Предикат fail викликає відкат до наступного твердження, що може забезпечити обчислення цілі.

Програма містить 10 предикатів-фактів, кажен із яких є альтернативним твердженням для предикату cities(name).

Програма про міста показує, що використання методу «Відкату після

невдачі» (ВПН) дозволяє вилучати дані з кожного твердження бази даних.

Оскільки в програмі містяться твердження для 10 варіантів, то результат також містить 10 рядків. Дані вилучаються з кожного твердження, оскільки кожний варіант відповідає підцілі cities(City).