В файле задана последовательность целых чисел, найти сумму чисел, предшествующих первому отрицательному - Prolog
Формулировка задачи:
В файле задана последовательность целых чисел, найти сумму чисел, предшествующих первому отрицательному.
Решение задачи: «В файле задана последовательность целых чисел, найти сумму чисел, предшествующих первому отрицательному»
textual
Листинг программы
domains file = input predicates start sum_by_neg(integer) clauses sum_by_neg(S) :- not(eof(input)),readint(N), N>=0, Q=S+N, sum_by_neg(Q). sum_by_neg(S) :- write(S),nl. start :- openread(input,".\\my\\A1.TXT"),readdevice(input),sum_by_neg(0).
Объяснение кода листинга программы
- В начале кода объявляются пространства имен: domains file = input
- Затем объявляются предикаты: predicates start sum_by_neg(integer)
- Далее идут клаузы:
clauses
sum_by_neg(S) :- not(eof(input)),readint(N), N>=0, Q=S+N, sum_by_neg(Q).
sum_by_neg(S) :- write(S),nl.
start :- openread(input,
.\\my\\A1.TXT
),readdevice(input),sum_by_neg(0). - В первой клаузе предиката sum_by_neg происходит подсчет суммы чисел, предшествующих первому отрицательному. Если вводимый файл пуст, то выводится сообщение об ошибке.
- Во второй клаузе предиката sum_by_neg выводится результат подсчета суммы.
- В последней клаузе предиката start открывается файл для чтения, считывается информация о файле и запускается подсчет суммы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д