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



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

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

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