Пример «Тест Кнута - Мужчина или Мальчик»
Файлы:
- Тесты
- Тест Кнута - Мужчина или Мальчик.перфо
Пример программы на языке программирования Перфо:
//Эта программа написана на языке Перфо
//Тест «мужчина или мальчик» был предложен компьютерным ученым Дональдом Кнутом
//как средство оценки реализаций языка программирования ALGOL 60.
//Целью теста было отличить компиляторы, которые правильно реализовали
//«рекурсию и нелокальные ссылки», от компиляторов, которые сделали это не правильно.
//Интерпретатор Перфо выдаёт правильные ответы вплоть до числа 9
//а при числе 10 ему не хватает глубины стека, которую можно увеличить
//при необходимости средствами .Net
//Проверяемая функция
(функция (A k x1 x2 x3 x4 x5)
(функция (B)
(уст k (- k 1))
(A k B x1 x2 x3 x4)
)
(если (<= k 0)
(+ (x4) (x5))
(B)
)
)
//Программа проверки
(Вывод "Число : Результат" пс)
(Для (Инд 0 9)
(Вывод Инд " : " (A Инд (функ () 1) (функ () -1) (функ () -1) (функ () 1) (функ () 0)) пс)
)
//Таблица правильных результатов
// Число : Результат
// 0 : 1
// 1 : 0
// 2 : -2
// 3 : 0
// 4 : 1
// 5 : 0
// 6 : 1
// 7 : -1
// 8 : -10
// 9 : -30
// 10 : -67
// 11 : -138
// 12 : -291
// 13 : -642
// 14 : -1446
// 15 : -3250
// 16 : -7244
// 17 : -16065
// 18 : -35601
// 19 : -78985
// 20 : -175416
К началу статьи
Вернуться в раздел:
Примеры по языку Перфо
Перейти в раздел:
Примеры