лп / Krtuvorychko / otchet_5
.docМіністерство освіти і науки, молоді і спорту України
Кіровоградський національний технічний університет
Механіко-технологічний факультет
Кафедра програмного забезпечення
Дисципліна: « Логічне програмування »
Лабораторна робота № 5
Тема: «Робота з рядковими змінними на мові програмування Turbo Prolog»
Виконав: ст. групи КІ-12-СК
Криворучко О.В.
Перевірив: викладач
Резніченко В.А.
Кіровоград 2013
Мета: Розглянути основні операції над рядковими змінними на мові програмування 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(рядок, довжина рядка)