Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к лаб. раб. Візуальне прог..doc
Скачиваний:
8
Добавлен:
07.02.2016
Размер:
198.66 Кб
Скачать
  1. Зміст звіту

Звіт з лабораторної роботи повинен містити

  1. Тему та мету роботи.

  2. Завдання до лабораторної роботи відповідного варіанту (за списком групи).

  3. Текст програми.

  4. Результати роботи програми.

  1. Контрольні питання

  1. Основні секції програми; їх призначення.

  2. Змінні. Анонімні змінні. Конкретизація змінних.

  3. Типи тверджень; їх розташування в програмі.

  4. Статична та динамічна бази фактів. Чим відрізняється їх опис?

  5. Стандартні предикати роботи з динамічними фактами.

  6. Механізм звороту. Управління пошуком рішень за допомогою предиката fail.

2 ЛАБОРАТОРНА РОБОТА № 2

ОБРОБКА РЯДКІВ В VISUAL PROLOG. ВИСХІДНА РЕКУРСІЯ. ВІДСІК.

    1. Мета роботи

Мета роботи - одержання знань і навиків, необхідних для обробки рядків, використовуючи висхідну рекурсію та предикат – відсік(!).

    1. Вказівки до виконання лабораторної роботи

2.2.1 Перед виконанням завдання треба ознайомитися з нижче поданими прикладами, скопіювати по черзі приклади в текстовий редактор оболонки Visual Prolog та виконати їх.

Приклад 2_1. Знайти в рядку кількість слів з першою буквою а.

predicates

кіл_слів(string,integer,integer) /*Рядок, Кількість слів з першою буквою ‘a’, Результат */

clauses

кіл_слів("",N,N).

кіл_слів(S,N,R):-fronttoken(S,W,S_ost), frontchar(W,'a',_), N1=N+1,!,

кіл_слів(S_ost,N1,R);

fronttoken(S,_,S_ost),кіл_слів(S_ost,N,R).

goal

readln(S), кіл_слів(S,0,Res), write(Res).

В програмі вказана англійська буква ‘a’.

Перша гілка правила працює, якщо перша буква поточного слова – ‘a’. Друга гілка правила працює, якщо перша буква поточного слова не ‘a’.

    1. Завдання до лабораторної роботи

  1. Ввести рядок з клавіатури. Підрахувати кількість букв "а" в останньому слові рядка.

  2. Ввести рядок з клавіатури. Підрахувати кількість слів у рядку, в яких перший і останній символи однакові.

  3. Ввести рядок з клавіатури. Перетворити його так, щоб всі склади "ЦЕ" було замінено на "ТО".

  4. Ввести рядок з клавіатури. Знайти довжину найдовшого слова речення.

  5. Ввести рядок з клавіатури. Вилучити з даного рядку всі символи, що належать до цифр та пропуски.

  6. Ввести рядок з клавіатури. Замінити в ньому всі малі букви однойменними великими, не використовуючи стандартний предикат.

  7. Ввести рядок з клавіатури. Вилучити з нього всі символи, що належать до цифр, та замінити всі крапки на знак оклику.

  8. Ввести речення з клавіатури. Замінити у реченні усі прийменники "і" на "та", якщо попереднє слово закінчується на "і".

  9. Ввести рядок з клавіатури. Підрахувати найбільшу кількість пропусків, що йдуть підряд.

  10. Ввести рядок з клавіатури. Підрахувати кількість входжень в рядок груп букв „abc” і „aba”.

  11. Ввести рядок з клавіатури. Вилучити з даного рядку символи, що розташовані між дужками, разом з дужками. Припускається, що в середині кожної пари дужок немає інших дужок.

  12. Ввести рядок з клавіатури. Вставити між словами, що починаються з тієї ж букви, на яку закінчується попереднє слово, символ '*'.

  13. Ввести рядок з клавіатури. Вивести на екран слово, в якому буква 'а' зустрічається у найбільшій кількості.

  14. Ввести з клавіатури рядок чисел, які розділяються пропусками. Одержати з нього новий рядок, вилучивши числа, які знаходяться на парних місцях, а числа, які знаходяться на місцях з непарними номерами збільшити удвічі.

  15. Ввести рядок з клавіатури. Перевірити, чи входять в рядок всі букви слова "then".

  16. Ввести рядок з клавіатури. Замінити пари букв "nо" на "on" і навпаки.

  17. Ввести з клавіатури рядок чисел, які розділяються пропусками. Одержати з даного рядку чисел суму цих чисел і додати цю суму в кінець рядка.

  18. Ввести рядок з клавіатури. Вилучити з нього усі слова з непарними порядковими номерами та записати усі слова з парними номерами в зворотному порядку. Наприклад, якщо № слова "then" парний, то слово перетворюється у слово "neht".

  19. Ввести рядок з клавіатури. Одержати з даного рядка новий, слова в якому записані в зворотному порядку, а порядок слів той же.