Задания для самостоятельной работы
Задание 1.
Разработать предикат для быстрого
вычисления n-го
числа Фибоначчи. Подсказка:
аргументы этого предиката должны быть
такими:
quick_fib(integer First,
% первый член ряда
integer Second,
% второй член ряда
unsigned Index,
% индекс искомого члена
integer NthItem).
% искомый член
Работа предиката
основана на том, что каждый следующий
член ряда получается путём сложения
двух предыдущих, которые хранятся в
первом и втором аргументах соответственно.
Индекс при этом декрементируется.
Рекурсия останавливается тогда, когда
индекс уменьшится до трёх. При этом
NthItem=First+Second.
Задание 2.
Вывести на экран все двухзначные числа,
произведение цифр которых равно 18.
Подсказка:
один из способов проверки такого
равенства (X
div 10)*(X mod 10)=18,
где X
– проверяемое число.
Задание 3.
Проверить, является ли автобусный
шестизначный билет “счастливым”.
Счастливый номер – это номер, у которого
сумма первых трёх цифр равна сумме
последних трёх цифр. Подсказка:
для определения цифры, находящейся в
нужной позиции шестизначного номера
можно воспользоваться либо предикатом
string::front
предварительно переведя номер в домен
string
предикатом toString,
либо последовательностью операций
целочисленного деления div
и операций определения остатка от
деления mod.
Задание 4.
Найти сумму всех двузначных чисел,
кратных трём.
Задание 5.
Разработать функцию для нахождения
суммы ряда:
y=exp^x=1+x/1!+x^2/2!+x^3/3!+........
x^n/n!
где x-значение
переменной, n-количество членов ряда.
Проверить работу этой функции при n=100,
сравнив её результаты со значением
встроенной функции ex
при x=0,7.
Подсказка:
в Visual
Prolog
7.3 возведение числа e
в степень записывается так: e^X.