Запуск программы TurboProlog на SWI-prolog
Формулировка задачи:
Программа на прологе, замечательно работающая в TurboProlog2.0
топики про переделку программ читал, однако изыскания не к чему не привели, т.к. не одна из попыток не заработала как надо скидываю исходный вариант - работающей программы.
Листинг программы
- PREDICATES
- add(integer,integer)
- fadd(real,real)
- maximum(real,real,real)
- n3(integer,integer)
- gipotenuza(integer,integer)
- CLAUSES
- gipotenuza(X,Y):- Z = sqrt(X*X + Y*Y),write("Sum= ",Z).
- add(X,Y):-Z=X+Y,write("Sum= ",Z),nl.
- fadd(X,Y):-Z=X+Y,write("FSum=",Z),nl.
- maximum(X,X,X).
- maximum(X,Y,X):- X>Y.
- maximum(X,Y,Y):- X<Y.
- n3(X,Y):-maximum(X,Y,Z),R=3*Z,write("n3=",R),nl.
Решение задачи: «Запуск программы TurboProlog на SWI-prolog»
textual
Листинг программы
- gipotenuza(X,Y):- Z is sqrt(X*X + Y*Y), write('Sum= '), writeln(Z).
- add(X,Y):- Z=X+Y, write('Sum= '), writeln(Z).
- fadd(X,Y):- Z=X+Y, write('FSum='), writeln(Z).
- maximum(X,X,X).
- maximum(X,Y,X):- X>Y.
- maximum(X,Y,Y):- X<Y.
- n3(X,Y):- maximum(X,Y,Z), R is 3*Z, write('n3='), writeln(R).
Объяснение кода листинга программы
- gipotenuza(X,Y) - функция вычисляет гипотенузу прямоугольного треугольника по формуле: Z = sqrt(XX + YY).
- add(X,Y) - функция складывает числа X и Y, результат сохраняется в переменной Z.
- fadd(X,Y) - функция складывает числа X и Y, результат сохраняется в переменной Z, но с учетом симметричности (добавляется знак числа).
- maximum(X,Y,Z) - функция находит максимальное число из трех, значения которых X, Y, Z.
- n3(X,Y) - функция находит куб максимального числа из двух, значения которых X, Y.
- Значения переменных: X, Y, Z, R - неопределенные.
- Вывод на экран:
- gipotenuza(X,Y) - выводит гипотенузу прямоугольного треугольника.
- add(X,Y) - выводит сумму чисел X и Y.
- fadd(X,Y) - выводит сумму чисел X и Y с учетом симметричности.
- maximum(X,Y,Z) - выводит максимальное число из трех.
- n3(X,Y) - выводит куб максимального числа из двух.
- Значение константы 3 - не определено.
- Значение переменной R - не определено.
- Вывод на экран с помощью функций writeln(Z) и write('n3=').
- Передача значений переменных в качестве аргументов функций.
- Оператор is используется для присваивания значения переменной Z.
- Оператор : используется для задания условий.
- Оператор - используется для задания отношений между переменными.
- Оператор * используется для умножения чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д