Задание 2.
Составить программу для вычисления значения выражения S=2(X2+Y2)/(X+Y) для введенных X и Y.
Задание 3.
Составить программу для вычисления среднего арифметического двух введенных чисел.
Задание 6.
Составить программу для выбора наименьшего из трех введенных чисел.
Арифметические вычисления
Хотя Пролог не предназначен для решения вычислительных задач, его возможности вычислений аналогичны соответствующим возможностям таких языков программирования как Basic , C , Pascal .
В языке Пролог имеется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в таблице.
X + Y
Сумма X и Y
X – Y
Разность X и Y
X * Y
Произведение X и Y
X / Y
Деление X на Y
X mod Y
Остаток от деления X на Y
X div Y
Целочисленное деление X на Y
abs(X)
Абсолютная величина числа X
sqrt(X)
Квадратный корень из X
random(X )
Случайное число в диапазоне от 0 до 1
random(Int,X )
Случайное целое число в диапазоне от 0 до Int
round(X)
Округление Х
trunc(X)
Целая часть Х
sin(X)
Синус X
cos(X)
Косинус X
arctan(X)
Арктангенс Х
tan(X)
Тангенс X
ln(X)
Натуральный логарифм X
log(X)
Логарифм Х по основанию 10
Пример 1.
Вычислить значение выражения Z=(2*X+Y)/(X-Y) для введенных X и Y .
Заметим, что присваивание арифметических выражений происходит командой "is", а не "=".
Функция, вычисляющая это выражение будет выглядеть следующим образом:
знач_выраж(Арг1, Арг2):-Арг1=\=Арг2, Рез is (2*Арг1+Арг2)/( Арг1 - Арг2 ),
write( "Рез=") , write(Рез);
writeln("Делить на 0 нельзя!").
Если теперь обратиться к ней: знач _ выраж (3,5), то система выведет:
Рез=-5.5 (однако если попросить вывести все решения, то появится и сообщение "Делить на 0 нельзя!". Попробуйте решить эту проблему самостоятельно.)
Если же ввести: знач _ выраж (3,3), то система выведет:
Делить на 0 нельзя!
Пример 2. Найти минимальное из двух введенных A и B .
min ( A , B , A ):- A =< B ,!. (Заметьте, не "<=", а именно "=<").
min ( A , B , B ).
goal:- min ( 3 , 5 , Min ), write ( "min="),write(Min), nl .
Результат будет:
min=3