51431

Работа со строками

Лабораторная работа

Информатика, кибернетика и программирование

Написать предикат выделения первого символа строки, первого символа подстроки в заданной строке. Листинг программы

Русский

2014-02-11

40 KB

1 чел.

Московский государственный технический университет им. Н.Э. Баумана

Калужский филиал

Отчет по лабораторной работе №5

«Работа со строками»

Вариант 10

Выполнил: студентка группы ЭВМ-81

Щукина А.К.

Проверил: Смирнов С.Г.

Калуга, 2013

Условие

Написать предикат выделения первого символа строки, первого символа подстроки в заданной строке.

Листинг программы

domains

s = string

c = char

i = integer

predicates

 first_symbol_of_string(s,c) % ВЫВОД ПЕРВОГО СИМВОЛА СТРОКИ

first_symbol_of_substring(s,s,i,c) % ВЫВОД ПЕРВОГО СИМВОЛА ПОДСТРОКИ В СТРОКЕ И ЕГО НОМЕРА

 first_symbol_of_substring1(s,s,i,c) % ПРОВЕРКА НА ПОДСТРОКУ

clauses

% ЕСЛИ СТРОКА ПУСТА, ТО ТАМ НЕТ СИМВОЛОВ

 first_symbol_of_string("",_):- write("STRING IS EMPTY"), nl.

% ВЫВОД ПЕРВОГО СИМВОЛА СТРОКИ

first_symbol_of_string(Str,Char):- frontchar(Str,Char,_), write(Char), nl.

 % ЕСЛИ СТРОКА ПУСТА, ТО ОНА НЕ СОДЕРЖИТ ПОДСТРОКУ

 first_symbol_of_substring("",_,_,_):- write("STRING HASN'T THIS SUBSTRING"), nl.

 % ЕСЛИ ПОДСТРОКА ПУСТА, ТО ЕЕ НЕТ В СТРОКЕ

 first_symbol_of_substring(_,"",_,_):- write("SUBSTRING IS EMPTY"), nl.

 % ИЩЕМ ПЕРВЫЙ СИМВОЛ СТРОКИ, СОВПАДАЮЩИЙ С ПЕРВЫМ СИМВОЛОМ ПОДСТРОКИ

 first_symbol_of_substring(Str,SubStr,NumChar,Char):-

frontchar(Str,Char,_),                  frontchar(SubStr,SubChar,_),

Char=SubChar,

first_symbol_of_substring1(Str,SubStr,NumChar,Char).

 % ЕСЛИ НЕ СОВПАДАЕТ, ТО ПРОВЕРЯЕМ СТРОКУ ДАЛЬШЕ И УВЕЛИЧИВАЕМ НОМЕР СИМВОЛА

 first_symbol_of_substring(Str,SubStr,NumChar,ResChar):-

frontchar(Str,_,TStr),

NumChar1 = NumChar + 1,

first_symbol_of_substring(TStr,SubStr,NumChar1,ResChar).

 % ЕСЛИ НАШЛИ СИМВОЛ СТРОКИ, СОВПАДАЮЩИЙ С ПЕРВЫМ СИМВОЛОМ ПОДСТРОКИ,

% ТО ПРОВЕРЯЕМ, ДЕЙСТВИТЕЛЬНО ЛИ МЫ НАШЛИ ПОДСТРОКУ В СТРОКЕ

 first_symbol_of_substring1(Str,SubStr,NumChar,ResChar):-

frontchar(Str,Char,TStr),

frontchar(SubStr,SubChar,TSubStr),

Char=SubChar,

first_symbol_of_substring1(TStr,TSubStr,NumChar,ResChar).

 % ЕСЛИ ДА, ТО ВЫВОДИМ НОМЕР СИМВОЛА В СТРОКЕ И САМ СИМВОЛ  

 first_symbol_of_substring1(_,"",NumChar,ResChar):- write(NumChar,"-",ResChar), nl.

goal

Str = "MY LITLE STRING",

SubStr = "RING",

write("STRING:"), nl,

write(Str), nl,

write("SUBSTRING:"), nl,

write(SubStr), nl, nl,

write("1) "),

first_symbol_of_string(Str,Char),

write("2) "),

first_symbol_of_substring(Str,SubStr,1,Char1).

Скриншот

Рис. 1


 

А также другие работы, которые могут Вас заинтересовать

30818. ADO, провайдеры ADO 11.36 KB
  DO позволяет представлять данные из разнообразных источников реляционных баз данных текстовых файлов и т. Провайдеры DO обеспечивают соединение приложения использующего данные через DO с источником данных сервером SQL локальной СУБД файловой системой и т. Для каждого типа хранилища данных должен существовать провайдер DO. Провайдер знает о местоположении хранилища данных и его содержании умеет обращаться к данным с запросами и интерпретировать возвращаемую служебную информацию и результаты запросов с целью их передачи приложению.
30819. Генератор отчетов Rave Reports 5.0 18.73 KB
  Компоненты для создания отчетов Генератор отчетов Rve Reports 5.0 Генератор отчетов Rve Reports 5.0 разработан фирмой Nevron и входит в состав Delphi 7 в качестве основного средства для создания отчетов. Он состоит из трех частей: ядро генератора отчетов обеспечивает управление отчетом и его предварительный просмотр и отправку на печать.
30820. Доступ к общим данным 17.87 KB
  Доступ к общим данным Строки являются записями а столбцы полями таблицы базы данных. Класс tdtset обеспечивает возможность редактирования набора данных а также предоставляет средства для перемещения навигации по записям. Этот класс инкапсулирует в себе функциональные возможности borlnd dtbse engine bde процессора баз данных фирмы borlnd. Класс tbdedtset имеет класспотомок tdbdtset в котором определены дополнительные свойства и методы обеспечивающие возможность связывания набора данных с физическими таблицами базы данных.
30821. Структура BDE 46.29 KB
  Структура BDE Архитектура и функции BDE BDE представляет собой набор динамических библиотек которые умеют передавать запросы на получение или модификацию данных из приложения в нужную базу данных и возвращать результат обработки. В составе BDE поставляются стандартные драйверы обеспечивающие доступ к СУБД Prdox dBSE FoxPro и текстовым файлам. Структура процессора баз данных BDE Доступ к данным серверов SQL обеспечивает отдельная система драйверов SQL Links. Помимо этого в BDE имеется очень простой механизм подключения любых драйверов...
30822. Модели организации данных в БД 30.78 KB
  Модели организации данных в БД Организация баз данных физическая и логическая Организация БД Организация данных базыопределяется видом модели данных которую поддерживает конкретная СУБД. Модель данных это методпринцип логической организации данных реализуемый в СУБД. Организация данныхв базе характеризуется двумя уровнями логическим и физическим. Логическаяорганизация БД определяется типом структур данных и видоммодели данных которая поддерживается СУБД.
30823. Реляционная модель базы 14.12 KB
  Реляционная модель базы Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: все столбцы в таблице однородные имеют одинаковый тип; каждый столбец имеет уникальное имя; одинаковые строки в таблице отсутствуют; порядок следования строк и столбцов может быть произвольным. В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц. Каждая таблица представляет один объект и состоит из...
30824. Виды связей в БД 16.81 KB
  При этом таблица Книги будет содержать ссылки на записи таблицы Издатели . В большинстве случаев сопоставляются первичный ключ одной таблицы содержащий для каждой из строк уникальный идентификатор и внешний ключ другой таблицы. При такой связи каждой строке таблицы А может соответствовать множество строк таблицы Б однако каждой строке таблицы Б может соответствовать только одна строка таблицы А. Связи многие ко многим При установлении связи многие ко многим каждой строке таблицы А может соответствовать множество строк таблицы Б и наоборот.
30825. Типы СУБД 13.67 KB
  Централизованная база данных хранится в памяти одной вычислительной системы. Такой способ использования баз данных часто применяют в локальных сетях ПК. Распределенная база данных состоит из нескольких возможно пересекающихся или даже дублирующих друг друга частей хранимых в различных ЭВМ вычислительной сети.
30826. Классификация СУБД по архитектуре (одно-, двух-, трехзвенные) 43.7 KB
  По своей архитектуре СУБД делятся на одно двух и трехзвенные В однозвенной архитектуре используется единственное звено клиент обеспечивающее необходимую логику управления данными и их визуализацию. В двухзвенной архитектуре значительную часть логики управления данными берет на себя сервер БД в то время как клиент в основном занят отображением данных в удобном для пользователя виде.