Повтор и рекурсия в структурах Visual Prolog
Формулировка задачи:
Написать программу, которая вычисляет среднее арифметическое чисел больших за 17 числового ряда от -5 до 35 с шагом 7.
Результат решения получить в виде:
/ * элемент числового ряда
а1 = -5
а2 = 2
...... ..
а n = .... Количество = ...; Сумма = ... ..; Cреднее арифметическое = .... * /
Вот что набросал:
Если кто нибудь напишет так как требовалось буду рад!
Листинг программы
- predicates
- count(integer,integer)
- clauses
- count(N,S):-N>=35,!.
- count(N,S):-write ('\r','\t',N),
- NewS=S+N,write ("\t\t\t",NewS),
- NewN = N+7,
- count(NewN,NewS).
- goal
- count (-5,0),
- write ("\n\nКоличество= …; Сумма = …..; Cреднее арифметическое= ….*/").
Вот еще набросал:
Листинг программы
- predicates
- count(integer,integer)
- clauses
- count(N,S):-N>=35,!.
- count(N,S):-
- NewS=S+1,
- NewN = N+7,
- write ("a",NewS," = ",N,"\n"),
- count(NewN,NewS).
- goal
- count (-5,0),
- write ("\nКоличество=;\tСумма =;\t\tCреднее арифметическое=\n\n").
Сам сделал:
Листинг программы
- predicates
- count(integer,integer,integer,integer,integer)
- clauses
- count(N,S,X,Y,Z):-N>=35,!.
- count(N,S,X,Y,Z):-
- NewS=S+N,
- NewZ=Z+1,
- NewN = N+7,
- NewX = S+N,
- NewY = NewX/NewZ,
- write (NewZ,"\t ",N,"\t\t ",NewX,"\t\t\t",NewY,"\n"),
- count(NewN,NewS,NewX,NewY,NewZ).
- goal
- write("№\tЭлемент\t\tСумма\t\tCреднее арифметическое\n"),count (-5,0,0,0,0).
Решение задачи: «Повтор и рекурсия в структурах Visual Prolog»
textual
Листинг программы
- count(_, A, S, K, S, K) :-
- A >= 35,
- !.
- count(N, A, S, K, SR, KR):-
- A > 17,
- !,
- NewN = N+1,
- NewA = A+7,
- NewS = S+A,
- NewK = K+1,
- write ("a", N, " = ", A, "\n"),
- count(NewN, NewA, NewS, NewK, SR, KR).
- count(N, A, S, K, SR, KR):-
- NewN = N+1,
- NewA = A+7,
- count(NewN, NewA, S, K, SR, KR).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д