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


 

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

50711. ИССЛЕДОВАНИЕ СЛОЖНОЙ ЦЕПИ ПОСТОЯННОГО ТОКА 126 KB
  Выполнить опытную проверку принципа наложения. Принцип наложения формулируется следующим образом: ток в Кой ветви равен алгебраической сумме токов вызываемых в этой ветви каждой из э. Принцип наложения используется в методе расчета получившем название метода наложения. Опытная проверка принципа наложения производится в следующем порядке: а в цепи собранной при выполнении пункта 1 отключается один из источников э.
50712. Имя существительное как части речи 72.5 KB
  Имя существительное – это самостоятельная часть речи, имеющая категориальное значение предметности и выражающая его в несловоизменительных категориях рода и одушевленности
50713. Ознайомлення з приладами та пристроями для вимірювання витрат енергоносіїв 132 KB
  Витрата рідини що вимірюється в одиницях обєму називається обємною Vτ наприклад м3 с а в одиницях мас масовою Мτ кг с. Звязок між ними Мτ= Vτρ де ρ кг м3 густина рідини. Обєм рідини як правило не є одиницею кількості речовини оскільки для однієї і тієї ж кількості рідини він залежить від температури і тиску або питомого обєму. За необхідності із цього поняття виокремлюють краплинні рідини і гази.
50714. Исследование работы фланцевого соединения 86.5 KB
  Эксперимент начинается со снятия показаний тензодатчиков при разгруженных болтах. Затяжка каждого болта контролируется по изменению показаний прибора ВСТ4. Значения показаний прибора разгруженных Поi и затянутых Пi болтов заносятся в таблицу 3 причем разность показаний для каждого болта не должна отличаться от расчетной более чем 15.
50715. Исследование фазового резонанса в цепи с последовательным соединением активного, индуктивного и емкостного сопротивлений 108 KB
  Цель работы: уяснить условия получения резонанса напряжений экспериментально исследовать явление резонанса напряжений в зависимости от изменения либо реактивного сопротивления либо частоты исследуемой цепи. Резонанс напряжений называется такой пассивной электрической цепи переменного тока с последовательным соединением активного индуктивного и емкостного сопротивлений при котором входное реактивное сопротивление равно нулю. При резонансе напряжений напряжение на входе цепи совпадает по фазе с током т.
50716. Исследование колебаний вращающегося вала 324 KB
  Изза неточности изготовления и сборки центры масс деталей как правило не находятся на оси вращения вала т. При вращении вала вследствие дисбаланса возникают переменные по направлению силы инерции дополнительно нагружающие вал и его опоры и вызывающие механические колебания системы. В связи с этим необходимо исследование колебаний вращающегося вала.
50717. Определение напряжений в днищах, нагруженных внутреннем давлением 216 KB
  Цель работы: Задачи исследования: Теоретический расчет напряжений и деформаций в эллиптическом и плоском днищах нагруженных внутренним давлением; Экспериментальное определение напряжений и деформаций в днищах сравнение их с расчетными значениями; Сравнение днищ различной формы с точки зрения возникающих в них напряжений Теоретическая часть Напряжения и деформации в эллиптических днищах нагруженных внутренним давлением В инженерной практике для расчета напряжений и деформаций пользуются...
50718. Исследование распределения напряжений в эллиптическом и коническом днищах 441.5 KB
  Расчет напряжений и деформаций в днищах нагруженных внутренним давлением. Экспериментальное определение напряжений и деформаций в днищах. Анализ результатов теоретической и экспериментального исследования напряженного...
50719. ИССЛЕДОВАНИЕ ТРЕХФАЗНОЙ ЦЕПИ ПРИ СОЕДИНЕНИИ НАГРУЗКИ ЗВЕЗДОЙ 595.5 KB
  Экспериментальное определение основных соотношений между токами, напряжениями и мощностями в симметричных и несимметричных цепях. Исследование различных режимов работы трехфазной цепи. Выяснение практической роли нейтрального провода.