Составители:
Рубрика:
86
4.8. Измените программу Эхо так, чтобы она воспринимала целые
числа с клавиатуры и дублировала их на экран. Напишите правило так,
чтобы программа завершалась при вводе числа 0 (нуль). (Встроенный пре-
дикат Турбо-Пролога для считывания целых чисел с клавиатуры - это
readin(Number)
Здесь Number - имя переменной для целых чисел).
4.9. Модифицируйте программу Эхо так
, что бы она воспринимала
два десятичных числа с клавиатуры и дублировала их на экран. Затем за-
ставьте программу вычислить сумму введенных десятичных чисел и вы-
дать эту сумму на экран. Программа должна завершаться, если одно из двух
вводимых чисел 0 (ноль). (Встроенный предикат Турбо-Пролога для считы-
вания десятичных чисел с
клавиатуры - это
readreal(Number)
Здесь Number - имя переменной для десятичных чисел). Правило для сло-
жения двух десятичных чисел может быть записано в виде:
sum(X,Y,Z) :-
Z = X+Y.
Здесь X, Y, Z - имена переменных для десятичных чисел.
4.5 Методы организации рекурсии
Правила, не использующие правил повтора в качестве компонент, яв-
ляются наиболее общими способом организации рекурсивной обработки
данных при программировании на Турбо-Прологе. Этот метод подходит
для целого ряда применений, начиная с обработки файлов и кончая матема-
тическими вычислениями.
4.5.1 Простая рекурсия
Правило, содержащее само себя в качестве компоненты, называется
правилом рекурсии. Правила рекурсии так же как правила повтора реализу-
ют повторное выполнение задач. Они весьма эффективны, например, при
формировании запросов к базе данных, а также при обработке таких домен-
ных структур, как списки. Списки и рекурсия в Турбо-Прологе рассматрива-
ются
в гл. 5.
Пример правила рекурсии:
write_srting :- /* выдать строку */
write("МЫ - ЭТО ВЕСЬ МИР"),
nl,
write_string.
Это правило состоит из трех компонент. Первые две выдают строку
"МЫ - ЭТО ВЕСЬ МИР" и переводят курсор на начало следующей строки
экрана. Третья - это само правило. Так как оно содержит само себя, то чтобы
быть успешным
, правило write_string должно удовлетворять само себе. Это
приводит снова к вызову операции выдачи на экран строки и смещение
курсора на начало новой строки экрана. Процесс продолжается бесконечно
и в результате строки выдается на экран бесконечное число раз.
4.8. Измените программу Эхо так, чтобы она воспринимала целые
числа с клавиатуры и дублировала их на экран. Напишите правило так,
чтобы программа завершалась при вводе числа 0 (нуль). (Встроенный пре-
дикат Турбо-Пролога для считывания целых чисел с клавиатуры - это
readin(Number)
Здесь Number - имя переменной для целых чисел).
4.9. Модифицируйте программу Эхо так, что бы она воспринимала
два десятичных числа с клавиатуры и дублировала их на экран. Затем за-
ставьте программу вычислить сумму введенных десятичных чисел и вы-
дать эту сумму на экран. Программа должна завершаться, если одно из двух
вводимых чисел 0 (ноль). (Встроенный предикат Турбо-Пролога для считы-
вания десятичных чисел с клавиатуры - это
readreal(Number)
Здесь Number - имя переменной для десятичных чисел). Правило для сло-
жения двух десятичных чисел может быть записано в виде:
sum(X,Y,Z) :-
Z = X+Y.
Здесь X, Y, Z - имена переменных для десятичных чисел.
4.5 Методы организации рекурсии
Правила, не использующие правил повтора в качестве компонент, яв-
ляются наиболее общими способом организации рекурсивной обработки
данных при программировании на Турбо-Прологе. Этот метод подходит
для целого ряда применений, начиная с обработки файлов и кончая матема-
тическими вычислениями.
4.5.1 Простая рекурсия
Правило, содержащее само себя в качестве компоненты, называется
правилом рекурсии. Правила рекурсии так же как правила повтора реализу-
ют повторное выполнение задач. Они весьма эффективны, например, при
формировании запросов к базе данных, а также при обработке таких домен-
ных структур, как списки. Списки и рекурсия в Турбо-Прологе рассматрива-
ются в гл. 5.
Пример правила рекурсии:
write_srting :- /* выдать строку */
write("МЫ - ЭТО ВЕСЬ МИР"),
nl,
write_string.
Это правило состоит из трех компонент. Первые две выдают строку
"МЫ - ЭТО ВЕСЬ МИР" и переводят курсор на начало следующей строки
экрана. Третья - это само правило. Так как оно содержит само себя, то чтобы
быть успешным, правило write_string должно удовлетворять само себе. Это
приводит снова к вызову операции выдачи на экран строки и смещение
курсора на начало новой строки экрана. Процесс продолжается бесконечно
и в результате строки выдается на экран бесконечное число раз.
86
Страницы
- « первая
- ‹ предыдущая
- …
- 84
- 85
- 86
- 87
- 88
- …
- следующая ›
- последняя »
