Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Predicates





St (string)

find_length /* найти длину строки st */

Goal

Find_length.

Clauses

st(«Темы практических занятий:»).

st(«- введение в язык PDC Prolog;»).

st(«- правила;»).

st(«- структуры;»).

st(«- арифметика;»).

st(«- рекурсия;»).

st(«и т.д.»).

find_length:-

St (S), str_len (S,L),

write(S, «(», L, «)»), nl, fail.

 

КОНКАТЕНАЦИЯ СТРОК

Под этой операцией подразумевается объединение исходных строк с целью образования одной новой строки:

concat (String1, String2, String3) (i,i,o),(o,i,i),(i,o,i),(i,i,i).

 

При использовании по «прямому» назначению встроенного предиката concat объекты String1 и String2 являются входными строками, а String3 - объединенная выходная строка.

 

Следующий пример 5.2 демонстрирует объединение четырех строк:

- 191186,

- Санкт-Петербург,

- ул. Миллионная, 5,

- СЗПИ.

В этом примере строки представлены односимвольными переменными: A, B, C,...

 

/*Пример 5.2.*/

Predicates

Pr

Goal

Pr.

Clauses

Pr:-

Nl,nl,

A= «191186,»,

B= «Санкт-Петербург,»,

С= «ул. Миллионная, 5,»,

D= «СЗПИ»,

Concat (A,B,E),

Concat (C,D,F),

Concat (E,F,G),

Write (G).

 

Встроенный предикат

frontchar(Str1, Char, Str2) (i,o,o),(i,i,o),(i,o,i),(i,i,i),(o,i,i)

аналогичен предикату concat. Отличие заключается в том, что frontchar присоединяет значение переменной Char (а она имеет тип char) только К НАЧАЛУ СТРОКИ. При этом возможно три варианта использования предиката frontchar, а условно эти варианты можно представить так:

Str1 = Char + Str2,

Char = Str1 - Str2,

Str2 = Str1 - Char.

Объединяя работу этого предиката с рекурсивной обработкой списка можно реализовать расщепление строки в последовательность символов, или, наоборот, для создания строки из последовательности символов, или, наконец, для проверки символов в строке.

 

Пример 5.3 демонстрирует преобразование строки в список

символов с использованием предиката frontchar.

 

/*Пример 5.3.*/

Domains

charlist = char*

str = string

Predicates

Str_list (str, charlist)

Clauses

str_list («», []).

str_list (S, [H|T]):-

Frontchar (S, H, S1),

Str_list (S1,T).

 

В правиле str_list первым параметром является строка, а вторым - список. Предикат frontchar рекурсивно извлекает первый символ из S и помещает его в список. В разделе domains объект charlist является списком символов, а str -строкой.

 

При вводе цели

str_list(«СЗПИ», A)

переменная A связывается со списком [’С’,’З’,’П’,’И’].

 

СОЗДАНИЕ ПОДСТРОК

Подстрока - это строка, являющаяся копией некоторой части исходной строки. Для создания подстрок используется встроенный предикат

frontstr (N, Str1, StartStr, EndStr) (i,i,o,o).

Аргументу StartStr присваивается подстрока из N первых символов исходной строки Str1, а EndStr присваивается остаток строки Str1. Например, утверждение

frontstr(13, «Искусственный интеллект», StartStr, EndStr).

Присваивает StartStr значение «Искусственный», а EndStr - «интеллект», т.к. N = 13 соответствует числу символов слова «Искусственный».

 

Кроме рассмотренных в этом параграфе встроенных предикатов, широко используемых для преобразования строк, можно перечислить еще целый ряд предикатов:

subchar (String, Position, Char) (i,i,o) - переменной Char присваивается элемент строки String в позиции Position.

substring (String, Position, Length, Substring) (i,i,i,o) - переменной Substring присваивается часть строки String, начинающейся с позиции Position и имеющей длину Length.

searchchar (String, Char, Position) (i,i,o) - переменной Position присваивается номер позиции в строке String, в которой впервые встречается символ Char.

searchstring (String, Substring, Position) (i,i,o) - переменной Position присваивается номер позиции в строке String, с которой начинается подстрока Substring.

 

ОПЕРАЦИИ ПРЕОБРАЗОВАНИЯ ТИПОВ

Для преобразования данных из одного типа в другой используются следующие предикаты char_int, str_char, str_int, str_real, upper_lower. Их применение целесообразно при выполнении преобразований между символом и его значением в коде ASCII, между строкой и символом, строкой и целым, строкой и вещественным, символами верхнего и нижнего регистра.

 

Все предикаты преобразования типов содержат два объекта, а имена предикатов показывают тип выполняемого преобразования:

Char_int (Char, Integer), (i,o),(o,i),(i,i),

Str_char (String, Char), (i,o),(o,i),(i,i),

Str_int (String, Integer), (i,o),(o,i),(i,i),

Str_real (String, Real), (i,o),(o,i),(i,i),







Дата добавления: 2015-10-19; просмотров: 378. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия