Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ELSE 2 D U P ПЕРВЫЙ ПЕРВЫЙ -



IF ПЕРВЫЙ NIP

ELSE ХВОСТ РЕКУРСИЯ

THEN
THEN




Экр # 54         C: PR O L O G.BLK

0 \ ПРИМЕР РЕКУРСИИ: ВЫЧИСЛЕНИЕ ФАКТОРИАЛА
1

2 ( N М -> )


ФАКТОРИАЛ OVER 0-

4

5

6

7;

8

9 ( M -> M! )

10: ФАКТОРИАЛ 1 «ФАКТОРИАЛ;
11
12
13
14
15






I FN IP

ELSE OVER * SWAP 1- SWAP РЕКУРСИЯ

THEN


 


IF ПОЛУЧИТЬ-ЦЕЛЬ @ НАЙТИ-ПРЕДЛОЖЕНИЕ?



IF ДОБАВИТЬ-ЦЕЛИ FALSE

ELSE ВОЗВРАТ

IF FALSE ELSE FALSE TRUE THEN

THEN

ELSE TRUE DUP
THEN


Экр # 52         C. PROLLOG.BLK

0 \ ЛИСПОПОДОБНЫЕ СЛОВА ПОСТРОЕНИЯ СПИСКОВ

1 \ НА ФОРТЕ-83

3

4

5

6

7

8

9
10;
11
12
13
14
15

278

2 ( СШ N -> СП 2)
NH blft DUP I <

IF 2DR O P НУЛЬ
ELSE









BEGIN 1- DUP

WHILE SWAP Х ВОСТ SWAP

REPEAT DROP
THEN




Экр # 57         C PROLOG. BLK

О \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА
1

2 ( -> ФЛАГ ИСТИНА | ЛОЖЬ)

3 \ ФЛАГ - ИСТИНА -> УСПЕХ
4: Х ПОИСК

5 ЦЕЛИ @ НОЛЬ NOT

6

7

8

9
10
11


279


Экр # 60       C: PROLOG.BLK

0 \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА
1

2 20 НОВСПИСОК ЦЕЛИ

3 20 НОВСПИСОК РЕШЕНИЯ

4 200 НОВСПИСОК ПРЕДЛОЖЕНИЯ

5 ( -> ЦЕЛЬ)

6: ПОЛУЧИТЬ-ЦЕЛЬ ЦЕЛИ @ DUP ПЕРВЫЙ SWAP

7 ХВОСТ ЦЕЛИ SWAP УСТАНОВИТЬ;

8 ( ЦЕЛЬ @ПРЕДЛОЖЕНИЯ1 -> ЦЕЛЬ

9 @ПРЕДЛОЖЕНИЯ2)

10: НАЙТИ-ПРЕДЛОЖЕНИЕ

11 BEGIN 2DUP ПЕРВЫЙ ПЕРВЫЙ DUP > R - R>

12     НОЛЬ OR NOT

13 WHILE ХВОСТ

14 REPEAT
15;


Экр # 63         C: PROLOG.BLK

0 \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА

1 ( -> ФЛАГ)

2 \ ФЛАГ - 'ИСТИНА' -> УСПЕХ
3: ПОИСК

4
5

6;

7 DEFER ВЫВОД ' ПОИСК IS ВЫВОД

BEGIN (ПОИСК)
UNTIL

? - РЕШЕНИЯ НУЛЬ УСТАНОВИТЬ ЦЕЛИ DUP НУЛЬ
УСТАНОВИТЬ

10 ЧТСП ВЫВОД CR

11 ['] ВЫВОД > BODY @ [•] ПОИСК - \ УСТАНОВЛЕН

12 ЛИ ВЫВОД НА ПОИСК?

13 IF

L4   IF." УСПЕХ" ELSE." НЕУДАЧА" THEN
15 THEN;


 


Экр # 61         CPROLOG.BLK

0 \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА

1 ( ЦЕЛЬ @ ПРЕДЛОЖЕНИЕ -> ФЛАГ)

2 \ ПОИСК ПОДХ.ПРЕДЛОЖЕНИЯ И ПОМЕЩ. В РЕШ.

3 \ ФЛАГ ИСТИНЕН, ЕСЛИ ПРЕДЛОЖЕНИЕ НАЙДЕНО

4: НАЙТИ-ПРЕДЛОЖЕНИЕ? НАЙТИ-ПРЕДЛОЖЕНИЕ

5 DUP НОЛЬ DUP > R

6 IF 2DROP

7 ELSE РЕШЕНИЯ СВЯЗЬ РЕШЕНИЯ СВЯЗЬ

8 THEN R> NOT;

9: ДОБАВИТЬ-ЦЕЛИ РЕШЕНИЯ @ ХВОСТ ПЕРВЫЙ

10 ПЕРВЫЙ ХВОСТ ЦЕЛИ 2СОЕД; ( -> ФЛАГ)

11 \ ФЛАГ - 'ЛОЖЬ', ЕСЛИ СПИСОК РЕШЕНИЯ ПУСТ

12: ВОЗВРАТ РЕШЕНИЯ @ DUP ПЕРВЫЙ SWAP ХВОСТ

13 ПЕРВЫЙ ХВОСТ РЕШЕНИЯ DUP @ ХВОСТ ХВОСТ

14 УСТАНОВИТЬ НАЙТИ-ПРЕДЛОЖЕНИЕ? DUP

15 IF ДОБАВИТЬ-ЦЕЛИ THEN;


Экр # 64         CrPROLOG.BLK

0 \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА
1

2 \ МАКСИМУМ ЦЕЛЕЙ В ПРАВИЛЕ - 4

3: ПРАВИЛО: CREATE HERE DUP 2+,

4 НУЛЬ, 10 ALLOT ЧТСП;
5

 

6: КЛ ПРЕДЛОЖЕНИЯ @ ВЫДАТЬ;

7: .ЦЕЛИ ЦЕЛИ @ ВЫДАТЬ

8: КАК? РЕШЕНИЯ @ DUP НОЛЬ

9 IF ВЫДАТЬ

10 ELSE

11 BEGIN DUP НОЛЬ NOT

12 WHILE DUP ХВОСТ ПЕРВЫЙ ПЕРВЫЙ ВЫДАТЬ

13         ХВОСТ ХВОСТ

14    REPEAT DROP

15 THEN;


 


Экр # 62         CPROLOG.BLK

0 \ ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА

1 ( -> ФЛАГ ИСТИНА | ЛОЖЬ)

2 \ ФЛАГ - 'ИСТИНА' -> УСПЕШНОЕ ЗАВЕРШЕНИЕ

3:

4

5

6

7

8

9
10
11
12
13;
14
15

280

(ПОИСК)

ЦЕЛИ @ НОЛЬ NOT
IF ПОЛУЧИТЬ-ЦЕЛЬ ПРЕДЛОЖЕНИЯ
@ НАЙТИ-ПРЕДЛОЖЕНИЕ?
IF ДОБАВИТЬ-ЦЕЛИ FALSE
ELSE ОТКАТ

IF FALSE ELSE FALSE TRUE THEN
THEN

ELSE TRUE DUP
THEN


Экр

0\

1

2

3

4

5

6

7

8

9
10
11
12
13
14
15


# 65        C.PROLOG.BLK

ИНТЕРПРЕТАТОР ПРАВИЛ ПРОЛОГА
ДОСТАТОЧНО? KEY?

IF KEY DROP KEY 13-
ELSE FALSE

THEN

СЛЕДЫ ПОИСКА
СЛЕД
BEGIN CR." ЦЕЛИ: " ЦЕЛИ @ ВЫДАТЬ

CR." РЕШЕНИЯ: " КАК? CR (ПОИСК) DUP > R
IF

IF." УСПЕХ" ELSE." НЕУДАЧА" CR THEN
THEN R> ДОСТАТОЧНО? OR
UNTIL


281


 


Экр # 66          CPROLOG.BLK

О \ АЛГОРИТМ УНИФИКАЦИИ
1
2
3

4 \ ПЕРСП ОПРЕДЕЛЯЕТ ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ

5 ( -> PFA+2)

6: ПЕРСП CREATE HERE 2+, 0, DOES>

7   2+;
8

9

10 ПЕРСП FOO ' FOO @ FORGET FOO
11
12

13 ( С -> F) \ F ИСТИННО, ЕСЛИ ПЕРСП

14: ПЕР? DUP @ О- SWAP 4 - @ [ DUP ] LITERAL - AND

15 DROP


Экр # 69         CPROLOG.BLK

0 \ АЛГОРИТМ УНИФИКАЦИИ

1 ( Cl C2 О -> F)

2 \ F - 'ИСТИНА'.ЕСЛИ С1 и С2 УНИФИЦИРУЕМЫ; СВЯЗКИ В О

3: УНИФИКАЦИЯ DUP > R @ ROT OVER ЗНАЧЕНИЕ

4 -ROT ЗНАЧЕНИЕ OVER ПЕР?

5 IF НУЛЬ -ROT R> СПИСОК TRUE ELSE DUP ПЕР?

6 IF SWAP НУЛЬ -ROT R> СПИСОК TRUE

7 ELSE 2DUP ATOM? SWAP ATOM? OR NOT

8        IF 2DUP ПЕРВЫЙ SWAP ПЕРВЫЙ SWAP R@ РЕКУРСИЯ

9            IF ХВОСТ SWAP ХВОСТ SWAP R> РЕКУРСИЯ

10            ELSE 2DROP R> DROP FALSE

11           THEN

12 ELSE R> DROP-

13 THEN

14   THEN

15 THEN;


 


Экр # 67          CPROLOG.BLK

0 \ АЛГОРИТМ УНИФИКАЦИИ

1 ( С СП1 -> СП2)

2 \ 2АССОЦ-СПИСОК СОДЕРЖИТ ПАРЫ ПЕРСПИС- ЗНАЧЕНИЕ

3: 2АССОЦ DUP НОЛЬ

4

5

6

7

8

9
10;
11
12
13
14
15

IF NIP

ELSE 2DUP ПЕРВЫЙ -

IF NIP

ELSE ХВОСТ ХВОСТ РЕКУРСИЯ

THEN
THEN


Экр # 70         CPROLOG.BLK '

0\БАЗА ЗНАНИЙ
1

2: МАРКЕР;

3 ПРАВИЛО: ДАЕТ-МОЛОКО (ДАЕТ-МОЛОКО )

4 ПРАВИЛО: ИМЕЕТ-ВОЛОС-ПОКРОВ (ИМЕЕТ-ВОЛОС-ПОКРОВ )

5 ПРАВИЛО: ИММЕТ-РОГА (ИМЕЕТ-РОГА )

6 ПРАВИЛО: МЛЕКОПИТАЮЩЕЕ (МЛЕКОПИТАЮЩЕЕ ДАЕТ-МОЛОКО

7 ИМЕЕТ-ВОЛОС-ПОКРОВ)

8 ПРАВИЛО: КОЗЕЛ1   (КОЗЕЛ БОРЬКА )

9 ПРАВИЛО: КОЗЕЛ2   (КОЗЕЛ МЛЕКОПИТАЮЩЕЕ ИМЕЕТ-РОГА )
10 ПРЕДЛОЖЕНИЯ НУЛЬ УСТАНОВИТЬ ПРЕДЛОЖЕНИЯ ЧТСП

11* (ДАЕТ-МОЛОКО @ ИМЕЕТ-ВОЛОС-ПОКРОВ @ ИМЕЕТ-РОГА

12 @ МЛЕКОПИТАЮЩЕЕ @ КОЗЕЛ 1 @ КОЗЕЛ2 @ )

13 РЕШЕНИЯ НУЛЬ УСТАНОВИТЬ

14 ЦЕЛИ НУЛЬ УСТАНОВИТЬ

15 НУЛЬ КОЗЕЛ ЦЕЛИ СПИСОК     


 


Экр # 68          CrPROLOG.BLK

0 \ АЛГОРИТМ УНИФИКАЦИИ
1

2 ( С1 @О -> СП2)

3: ЗНАЧЕНИЕ OVER ПЕР?

4
5
6
7
8
9
10
11
12
13
14
15

IF 2DUP 2АССОЦ DUP НОЛЬ

IF 2DROP

ELSE ROT DROP ХВОСТ ПЕРВЫЙ SWAP РЕКУРСИЯ

THEN

ELSE DROP
THEN


Экр # 71         CPROLOG.BLK

0\БАЗА ЗНАНИЙ

1: МАРКЕР; ПРАВИЛО: ДАЕТ-МОЛОКО (ДАЕТ-МОЛОКО )

2 ПРАВИЛО: ИМЕЕТ-ВОЛОС-ПОКРОВ 1

3 (ИМЕЕТ-ВОЛОС-ПОКРОВ ГРУБИЯН )

4 ПРАВИЛО: ИМЕЕТ-ВОЛОС-ПОКРОВ2 (ИМЕЕТ-ВОЛОС-ПОКРОВ )

5 ПРАВИЛО: ИМЕЕТ-РОГА (ИМЕЕТ-РОГА )

6 ПРАВИЛО: МЛЕКОПИТАЮЩЕЕ

7 (МЛЕКОПИТАЮЩЕЕ ДАЕТ-МОЛОКО ИМЕЕТ-ВОЛОС-ПОКРОВ)

8 ПРАВИЛО: КОЗЕЛ 1  (КОЗЕЛ БОРЬКА )

9 ПРАВИЛО: КОЗЕЛ2    (КОЗЕЛ ГРУБИЯН )

Ю ПРАВИЛО: КОЗЕЛЗ   (КОЗЕЛ МЛЕКОПИТАЮЩЕЕ ИМЕЕТ-РОГА )

11 ПРЕДЛОЖЕНИЯ НУЛЬ УСТАНОВИТЬ ПРЕДЛОЖЕНИЯ ЧТСП

12 (ДАЕТ-МОЛОКО @ ИМЕЕТ-ВОЛОС-ПОКРОВ 1 @ ИМЕЕТ-ВОЛОС

13 ПОКРОВ2 @ ИМЕЕТ-РОГА @ МЛЕКОПИТАЮЩЕЕ @ КОЗЕЛ 1 @

14 КОЗЕЛ2 @ КОЗЕЛЗ @ ) РЕШЕНИЯ НУЛЬ УСТАНОВИТЬ ЦЕЛИ НУЛЬ 15
УСТАНОВИТЬ НУЛЬ КОЗЕЛ ЦЕЛИ СПИСОК


 


282


283


Экр # 72            CPROLOG.BLK

О \ ПЕРЕМЕННЫЕ-СПИСКИ И СПИСОК ENV
1

2 ПЕРСП XI

3 ПЕРСП Х2

4 ПЕРСП ХЗ
5

 

6 VARIABLE A1

7 VARIABLE A2

8 VARIABLE A3

9 20 НОВСПИСОК ENV

 

10 20 НОВСПИСОК СШ НУЛЬ А2 ХЗ СП1 СПИСОК

11 20 НОВСПИСОК СП2 НУЛЬ А1 ХЗ СП1 @ СП2 СПИСОК

12 20 НОВСПИСОК СПЗ НУЛЬ Al X2 СПЗ СПИСОК
13

14
15


Экр # 90           CPROLOG.BLK

0 \ АЛГОРИТМЫ РАСПОЗНАВАНИЯ ОБРАЗОВ

1 \ КЛАСС - ОПРЕДЕЛЯЮЩЕЕ КЛАССЫ СЛОВО;

2 \ СОДЕРЖИТ: # ТОЧЕК В КЛАССЕ;

3 \ ТОЧКУ-ПРОТОТИП; W(N+1); ТОЧКИ КЛАСТЕРА (X, Y)

( N -> ) \ # ОБУЧАЮЩИХ ТОЧЕК В КЛАССЕ
КЛАСС CREATE DUP, 6 ALLOT 4 * ALLOT

( N -> @) \ @ УКАЗЫВАЕТ НА ТОЧКУ (X, Y)
DOES> DUP -ROT @ MIN 4 • + 8 +

4
5
6
7
8
9;
10

11 \ СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ ВЕКТОРОВ

12 (@V1 @V2-> N)

13: ТОЧКА 2DUP @ SWAP @ * -ROT 2+ @ SWAP 2+ @ * +;
14

15


 


 

Экр # 91           CPROLOG.BLK

0 \ АЛГОРИТМЫ РАСПОЗНАВАНИЯ ОБРАЗОВ

1 ( 'КЛАСС -> )

2 \ УСРЕДНЕННЫЙ ВЕКТОР - 'КЛАСС ЭТО CFA КЛАССА

3 ■: ПРОТОТИП DUP > BODY DUP 2+6 0 FILL @ DUP > R 0

4 DO DUP > BODY 2+ OVER I SWAP EXECUTE

2DUP @ SWAP +! 2+ @ SWAP 2+ +!

LOOP > BODY 2+ DUP DUP @ R@ / OVER! 2+ DUP @ R> / SWAP;
DUP 4 + SWAP DUP ТОЧКА 2/ SWAP! \ ВЫЧИСЛЕНИЕ W(N+1)

Экр # 73           CPROLOG.BLK

3

4

5

6

7

8

9

10

И

12

13

14

15

0 \ ВЫВОД РАСШИРЕННОГО ПЕРСП

1 ( @ -> ФЛАГ)

2 \ ФЛАГ-ИСТИНЕ, ЕСЛИ @ ЯВЛЯЕТСЯ PFA ПЕРЕМЕННОЙ
: ATOM? BODY> @ [•] НУЛЬ @ -;

( ©СПИСОК -> )                                                            '

: ВЫДАТЬСП CR." ("
BEGIN DUP ПЕРВЫЙ DUP ATOM?
IF DUP НОЛЬ

IF DROP ELSE BODY> > NAME.ID THEN
ELSE DUP ПЕР?

IF 2- BODY> > NAME.ID ELSE РЕКУРСИЯ THEN
THEN ХВОСТ DUP НОЛЬ
UNTIL 8 ( ЗАБОЙ) EMIT." ) " DROP


5

6

7

8;

9 \ РЕШАЮЩАЯ ФУНКЦИЯ ПО ПРИНЦИПУ МИНИМАЛЬНОГО
10 \ РАССТОЯНИЯ
Т1 ( 'КЛАСС @Х -> N)

12: D(X) SWAP > BODY 2+ DUP 4 + @ -ROT ТОЧКА SWAP -;
13
14
15


 


Экр # 74            CPRQLOG.BLK

О \ ВЫВОД РАСШИРЕННОГО ПЕРСП
1

2 ( ©СПИСОК-> )

3: ВЫДАТЬ DUP @ НОЛЬ

5
6

7

8

9
10
11
12
13;
14
15

IF DROP CR." НУЛЬ"
ELSE DUP ATOM?
IF BODY> > NAME.ID
ELSE DUP ПЕР?

IF 2- BODY> > NAME CR." ПЕРСП
ELSE ВЫДАТЬСП
THEN
THEN
THEN


ID


 

Экр # 92           CPROLOG.BLK

0 \ АЛГОРИТМЫ РАСПОЗНАВАНИЯ ОБРАЗОВ
1

2 < N-> )

3: КЛАССЫ CREATE DUP, 2* ALLOT

( N -> 'КЛАССЫ)
DOES> DUP @ ROT MIN 2* + 2+ @

4

5

6;                                                                      .

7

8 ( @X 'КЛАССЫ -> N) КЛАССИФИКАЦИЯ ТОЧКИ (X, Y) В @х

9: КЛАССИФИКАЦИЯ DUP 0 0 ROT > BODY @ 0

10
11
12
13
14
15

DO I 3 PICK EXECUTE 4 PICK D(X) DUP 3 PICK >

IF -ROT 2DROP I ELSE DROP THEN
LOOP NIP NIP NIP


 


284


285

























































































































































Экр # 93        C: P RO L O G. BL K

О \ АЛГОРИТМЫ РАСПОЗНАВАНИЯ ОБРАЗОВ

I

2 ( X I Y l Y2... XN YN N ' КЛАСС -> )

3: > КЛАСС > B O DY DUP > R 8 + D U P ROT DUP R> ! 4 * + 2-

4 DO I! -2 +L OO P

5;
6

7 ( ' КЛАСС 1 ' КЛАСС 2... 'K J IACCN -> )

8: Ж ЛАССЫ ' > B O DY DUP > R 2+ DUP ROT DUP R> ! 2* + 2-

9 DO I! -2 +LOOP
10,

1 1
12
13
14
15







Экр # 94        C: PR OLO G.B L K

0 \ АЛГОРИТМЫ РАСПОЗНАВАНИЯ ОБРАЗОВ
1

2 \ ПРИМЕР
3


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 216; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.076 с.)
Главная | Случайная страница | Обратная связь