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

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

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; просмотров: 362. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

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

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Искусство подбора персонала. Как оценить человека за час Искусство подбора персонала. Как оценить человека за час...

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

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

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