Вопрос 3. Привести пример программы, реализующий repeat -цикл.


Добавил:DMT
Дата создания:30 декабря 2007, 19:20
Дата обновления:30 декабря 2007, 19:20
Просмотров:5806 последний сегодня, 12:46
Комментариев: 5
Вопрос 3. Привести пример программы, реализующий repeat -цикл.
up

Комментарии для "Вопрос 3. Привести пример программы, реализующий repeat -цикл. "


Пользователь: DMT
Сообщений: 123
Статус: Программист
Зарегистрирован:
18 октября 2007, 2:35
Был:13 ноября 2017, 4:54
DMT
smsup
Дата: 4 января 2008, 14:04 Сообщение № 1
Repeat – цикл.
Цикл, основанный на не завершающемся цикле repeat.
Пример
Код на Lisp
  1. echo :- repeat, readln( X ), echo( X ), !.
  2. echo :- eof( X ), !.
  3. echo :- write( X ), nl, fail.
  4. repeat.
  5. repeat :- repeat.
  6.  
При использовании обязательна ссылка на http://DMTSoft.ru


Решение цели echo( X ) приводит к неудаче, пока Х – не конец файла. Безуспешное вычисление вызывает возврат к цели repeat, цель выполняется, считывается Х и выводится следующий терм.отсечение в определение echo гарантирует от позднейшего повторения repeat.

В repeat – цикле обязательно должно быть:
а) предикат, гарантировано приводящий к безуспешным вычислениям.
б) отсечение, предохраняющее от бесконечности вычислений, при возврате в цикл.
Пользователь: lilo
Сообщений: 38
Статус: Незримый
Зарегистрирован:
8 января 2008, 12:39
Был:9 апреля 2008, 19:55
lilo
smsup
Дата: 8 января 2008, 12:50 Сообщение № 2
Код на Lisp
  1. predicates
  2. repeat
  3. typewriter
  4. clauses
  5. repeat.
  6. repeat :- repeat.
  7. typewriter :-
  8. repeat,
  9. readchar(C),
  10. write(C),
  11. char_int(C,13).
  12. goal typewriter.
При использовании обязательна ссылка на http://DMTSoft.ru

Пользователь: ruslan
Сообщений: 23
Статус: Незримый
Зарегистрирован:
5 января 2008, 2:42
Был:29 января 2008, 21:23
ruslan
smsup
Дата: 15 января 2008, 0:33 Сообщение № 3
Даю рабочую программу, которая читает файл с помощью repeat-цикла и выводит его содержимое на экран:

Код на Lisp
  1. DOMAINS
  2. FILE = input
  3. PREDICATES
  4. nondeterm repfile(file)
  5. CLAUSES
  6. repfile(_).
  7. repfile(F) :- not(eof(F)),repfile(F).
  8. GOAL
  9. openread(input,"file.txt"),
  10. readdevice(input),
  11. repfile(input),
  12. readln(L),write(L),nl,fail.
  13.  
При использовании обязательна ссылка на http://DMTSoft.ru