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


 

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

9844. Правление Ивана грозного: от централизации к феодальной диктатуре 37.3 KB
  Правление Ивана грозного: от централизации к феодальной диктатуре. Борьба за достижение основных стратегических целей в области внутренней и внешней политики, определившихся на рубеже XV-XVI веков, продолжалась в XVI столетии. Это столетие неразрывн...
9845. СССР в 1945-1953 гг. трудности послевоенного переустройства, ужесточение политического режима 26.22 KB
  СССР в 1945-1953 гг. трудности послевоенного переустройства, ужесточение политического режима. Война принесла огромные человеческие и материальные потери. В 1939-1945 гг. мир потерял от 55 до 75 млн. человек, т.е. в 5-7 раз больше, чем в Первую миро...
9846. Смутное время: кризис государства и общества в России в начале 17 века 33.63 KB
  Смутное время: кризис государства и общества в России в начале 17 века. XVII век является одной из наиболее сложных эпох Русской истории. Начало века - это Смутное время, которое до основания потрясло Российское государство и чуть было не привело ег...
9847. Реформы 1953-1964 гг.: первые попытки либерализации советской системы 37.18 KB
  Реформы 1953-1964 гг.: первые попытки либерализации советской системы. В сентябре 1953 г. Н.С. Хрущев был избран Первым секретарем ЦК КПСС. По какому пути могла пойти страна при новом лидере? Ответ на данный вопрос надо искать в соотношении сил в вы...
9848. Россия в новое время: складывание абсолютизма во второй половине 17 века 26.98 KB
  Россия в новое время: складывание абсолютизма во второй половине 17 века В XVII веке, начиная с Михаила Федоровича Романова (1613-1645), самодержавие активно лавировало между группировками господствующего класса, укрепляя трон и централизацию управл...
9849. ИНФОРМАЦИОННЫЕ АСПЕКТЫ УПРАВЛЕНИЯ ИНФРАСТРУКТУРОЙ И ТРУДОВЫМИ РЕСУРСАМИ РЕГИОНОВ УКРАИНЫ 137.5 KB
  Топливно-энергетический комплекс содержит группы отраслей промышленного производства, которые специализируются на добыче, обогащении, переработке и потреблении твердого минерального, жидкого и газового топлива, производстве, передаче и использовании электроэнергии, тепла.
9850. Церковный раскол в середине 17 века 25.29 KB
  Церковный раскол в середине 17 века. Русская православная церковь занимает значительное место в истории русского государства. Православие определило этническое самосознание русского народа в период борьбы с монголо-татарским игом, что вместе с общер...
9851. Послевоенные вызовы: начало холодной войны, создание ракетно-ядерного щита в СССР 22.92 KB
  Послевоенные вызовы: начало холодной войны, создание ракетно-ядерного щита в СССР. Окончание Второй мировой войны открыло новую страницу в истории человечества. Геополитическая структура мира в результате поражения Германии и ее союзников приобрела ...
9852. Основные направления европеизации страны при Петре 1: реформы в области государственного управления и культуры 36.43 KB
  Основные направления европеизации страны при Петре 1: реформы в области государственного управления и культуры. В истории Российского государства Петр I сыграл ключевую роль. На рубеже XVII-XVIII веков Россия стояла на пороге преобразований. В эконо...