Вопросы к экзамену

«Функциональное и логическое программирование»


Понятие декларативного программирования. Назначение декларативных языков, их особенности. ПРОЛОГ-  язык логического программирования. Фундаментальные свойства ПРОЛОГа. Предикаты как отношения между объектами. Структура предикатов. Структура ПРОЛОГ-программы. Отношения-факты и отношения-правила: форма записи, примеры. Запросы в ПРОЛОГе. Объекты данных: атомы и числа, переменные, структуры. Механизм поиска с возвратом в ПРОЛОГе. Стандартный предикат fail: назначение, примеры использования. Предикат отсечения: назначение, примеры использования. Арифметика ПРОЛОГа: операции, функции, примеры использования. Рекурсивная организация вычислений в ПРОЛОГе. Предикаты ввода и вывода: назначение, виды, примеры использования. Понятие списка в ПРОЛОГе. Стандартные задачи обработки списков: генерирование списка. Стандартные задачи обработки списков: объединение списков. Стандартные задачи обработки списков: поиск элемента в списке. Стандартные задачи обработки списков: удале..ние элементов списка. Стандартные задачи обработки списков: вставка элементов в список. Динамические базы данных. Объявление динамической базы данных. Работа с фактами динамической базы данных Общие сведения о языках функционального программирования, области применения. Основные особенности языка LISP. Диалекты LISP. Racket - один из современных диалектов Lisp. Синтаксис Racket. Задание переменных и функций в Racket. Примеры. Ввод-вывод данных в  Racket. Примеры использования. Организация циклов в  Racket. Примеры использования.. Логические отношения в Racket Условные выражения if и  cond в Racket. Примеры использования. Рекурсия в LISP(Racket). Списки в LISP(Racket). Базовые функции обработки списков в LISP(Racket).

Типовые задачи к экзамену


Составить на языке Пролог программу. Заданы отношения вида: столица(город, страна),  европа(страна), азия(страна). Создать правило, позволяющее вывести столицы европейских государств. Составить на языке Пролог программу, реализующую телефонный справочник. В справочнике содержится следующая информация о каждом абоненте: имя и телефон. Реализовать вывод всей информации из справочника, поиск телефона по имени. Заданы отношения вида: рейс(пункт_назначения, время_отправления). Составить программу на языке Пролог для вывода всей информации и для вывода списка автобусных рейсов по заданному пункту назначения.  Составить на языке Пролог программу для  нахождения максимального из А, В, С. Составить на языке Пролог программу для вычисления значения суммы:  5+10+15+...+145 Составить на языке Пролог программу  для вычисления А! + (А+В)! ( значения А и В вводятся с клавиатуры). Составить на языке Racket программу  для вычисления факториала заданного натурального числа n. Составить на языке Racket программу  для вычисления суммы целых чисел от  a до         b.