Составители:
Рубрика:
88
write(Char_data),
read_a_character.
_______________________________________________________
Программа циклически считывает символ, введенный пользовате-
лем: если этот символ не #, то он выдается на экран, если этот символ - #, то
программа завершается. Правило рекурсии имеет вид:
read_a_character :-
readchar(Char_data),
Char_data <> '#',
write(Char_data),
read_a_character.
Первая компонента правила есть встроенный предикат Турбо-
Пролога, обеспечивающий считывание символа. Значение этого символа
присваивается переменной Char_data.
Следующее подправило, проверяет,
является ли символ символом #. Если нет, то подправило успешно, символ
выдается на экран и рекурсивно вызывается read_a_character. Этот процесс
продолжается до тех пор, пока внутренняя проверка не обнаружит недо-
пустимый символ #. В этот момент обработка останавливается, и программа
завершается.
* Упражнение
4.10. Запустите программу Вернись. После приглашения Goal:
введите
последовательность символов:
The early bird gets the worm.#
4.5.2 Метод обобщенного правила рекурсии (ОПР)
Обобщенное правило рекурсии содержит в теле правила само себя.
Рекурсия будет конечной, если в правило включено условие выхода, гаран-
тирующее окончание его работы. Тело правила состоит из утверждений и
правил, определяющих задачи, которые должны быть выполнены.
Ниже в символическом виде дан общий вид правила рекурсии:
<имя правила рекурсии> :-
<
список предикатов>, (1)
<предикат условия выхода>, (2)
<список предикатов>, (3)
<имя правила рекурсии>, (4)
<список предикатов>. (5)
Хотя структура этого правила сложнее чем структура простого правила
рекурсии, рассмотренного в предыдущем разделе, однако принципы, приме-
няемые к первому из них применимы и ко второму.
Данное правило рекурсии имеет пять компонент. Первая - это
группа
предикатов. Успех или неудача любого из них на рекурсию не влияет. Сле-
дующая компонента - предикат условия выхода. Успех или неудача этого
предиката либо позволяет продолжить рекурсию, либо вызывает ее оста-
write(Char_data),
read_a_character.
_______________________________________________________
Программа циклически считывает символ, введенный пользовате-
лем: если этот символ не #, то он выдается на экран, если этот символ - #, то
программа завершается. Правило рекурсии имеет вид:
read_a_character :-
readchar(Char_data),
Char_data <> '#',
write(Char_data),
read_a_character.
Первая компонента правила есть встроенный предикат Турбо-
Пролога, обеспечивающий считывание символа. Значение этого символа
присваивается переменной Char_data. Следующее подправило, проверяет,
является ли символ символом #. Если нет, то подправило успешно, символ
выдается на экран и рекурсивно вызывается read_a_character. Этот процесс
продолжается до тех пор, пока внутренняя проверка не обнаружит недо-
пустимый символ #. В этот момент обработка останавливается, и программа
завершается.
* Упражнение
4.10. Запустите программу Вернись. После приглашения Goal: введите
последовательность символов:
The early bird gets the worm.#
4.5.2 Метод обобщенного правила рекурсии (ОПР)
Обобщенное правило рекурсии содержит в теле правила само себя.
Рекурсия будет конечной, если в правило включено условие выхода, гаран-
тирующее окончание его работы. Тело правила состоит из утверждений и
правил, определяющих задачи, которые должны быть выполнены.
Ниже в символическом виде дан общий вид правила рекурсии:
<имя правила рекурсии> :-
<список предикатов>, (1)
<предикат условия выхода>, (2)
<список предикатов>, (3)
<имя правила рекурсии>, (4)
<список предикатов>. (5)
Хотя структура этого правила сложнее чем структура простого правила
рекурсии, рассмотренного в предыдущем разделе, однако принципы, приме-
няемые к первому из них применимы и ко второму.
Данное правило рекурсии имеет пять компонент. Первая - это группа
предикатов. Успех или неудача любого из них на рекурсию не влияет. Сле-
дующая компонента - предикат условия выхода. Успех или неудача этого
предиката либо позволяет продолжить рекурсию, либо вызывает ее оста-
88
Страницы
- « первая
- ‹ предыдущая
- …
- 86
- 87
- 88
- 89
- 90
- …
- следующая ›
- последняя »
