
готов лаби 4 курс 1 сим / ЛП / otchet_5
.docМіністерство освіти і науки, молоді і спорту України
Кіровоградський національний технічний університет
Механіко-технологічний факультет
Кафедра програмного забезпечення
Дисципліна: « Логічне програмування »
Лабораторна робота № 5
Тема: «Робота з рядковими змінними на мові програмування Turbo Prolog»
Виконав: ст. групи КІ-08-2
Салтан В.С.
Перевірила: викладач
Савеленко О. К.
Кіровоград 2011
Мета: Розглянути основні операції над рядковими змінними на мові програмування Turbo Prolog.
Завдання:
Скласти оригінальну програму ”Елементарний редактор”, що містить переклад не менше трьох словосполучень і демонструє операції над рядками (присвоєння змінним рядкових значень, визначення довжини рядка, конкатенація рядків і створення підрядків
domains
s=symbol
predicates
perevod(s,s)
slova(s,s,s)
g
clauses
slova(translate,"переклад","перекладений").
slova(text,"текст","текстовий").
slova(shoes,"взуття","взуттева").
slova(factory,"фабрика","фабричне").
slova(man,"чоловик","чоловичий").
slova(style,"стиль","стильний").
g:-
nl,write("Введить 2 слова:"),nl,
readln(X1),
readln(Y1),
slova(X1,_,_),
slova(Y1,_,_),
write("Фраза на английский: "),nl,
write(X1," ",Y1),
X1=X,Y1=Y,
perevod(X,Y),!.
perevod(X,Y):-
slova(X,_,X2),
slova(Y,Y2,_),nl,
write("Переклад:"),nl,
write(X2," ",Y2),nl,!.
Рис.1 – Виконання програми
Контрольні питання:
Які операції над рядками дозволяє виконувати Turbo Prolog?
Turbo Prolog дозволяє виконувати над рядковими змінними стандартні операції, такі ж, як і в інших мовах програмування, а саме:
а) Присвоєння змінним рядкових значень.
б) Визначення довжини рядка.
в) Конкатенація (об’єднання) рядків.
г) Створення підрядків.
д) Створення підрядків заданої довжини на основі вихідного рядка.
Синтаксис предикату створення підрядків?
s1(“Prolog був реалізований групою Л. Камерое”).
goal
s1(X), frontstr(21,X,Y,Z), write(Y), nl, write(Z), nl.
Який предикат використовується для конкатенації рядків?
concat (I рядок, II рядок, об’єднаний рядок)
Як визначити довжину рядка в Turbo Prolog?
str_ln(рядок, довжина рядка)