ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

Факториал


Основные характеристики понятия
Текст понятия: 

/*В этом примере определяется рекурсивно функция n!.
Для этого вводится шаблон "fact(@n,@i,@y)" локальной функции,
рекурсивно накапливающей результат. Далее вводится внешний шаблон "@n!",
действие которого определяется через ранее определенную локальную функцию fact(n,i,y).*/.

Введем шаблон "fact(@n,@i,@y)"
с переменными:
"n,i,y :real_выражение"
и переменной результата " z:real_выражение " ;
Пояснения: [Вычисляет факториал]
Условие применения шаблона:
[]
Действие шаблона:
[
if n==i then z=y else z=fact(n,i+1,(y)*(i+1))
]
Тип доступа шаблона:[локальный].

Введем шаблон "@n!"
с переменными:
"n :real"
и переменной результата " z:real " ;
Пояснения: [Вычисляет факториал]
Условие применения шаблона:
[]
Действие шаблона:
[
z=fact(n,1,1)
]
Тип доступа шаблона:[внешний].

/*Примеры вопросов к онтологии:
"Вопрос: 5! ?"
Ответ: 120";

"Вопрос: 132! ?"
Ответ: 1.118248651E+224".
*/.

/* Так как данное вычисление факториала производится в машинных числаж,
то возможно переполнение для 171! */.

/**************************************************************************************
Заметим, что так как эта онтология разработана в среде "Примеры онтологий с рекурсией",
и шаблон "@n!" был определен как внешний, то этот шаблон будет видим из любой онтологии
(если он в этой онтологии не удален), разработанной в среде онтологии "Примеры онтологий
с рекурсией" и, следовательно, в этих онтологиях факториал может быть вычислен.
****************************************************************************************/.

Используемые понятия: 

В данной онтологии отношение использования не установлено

Шаблоны, разработанные в данном понятии: 

В данной онтологии шаблоны не разработаны

у данной онтологии нет версий