paзмeн2(OcтPaз^1eнятъ,Kyп5p,OcrЗp,Kyп1p,CпиcPaзмeнaOcraткa).
%Выдача рубля
размен2 (ИсхСумма,Куп5р,КупЗр.Куп1 р.СписРазмена):-ИсхСумма>0,Куп1р>0, разность (Куп1р,1,Ост1р), разность (ИсхСумма, 1 .ОстРазменять), конкат ([1],СписРазменаОстатка,СписРазмена), размен2 (ОстРазменять,Куп5р,КупЗр,Ост1р.СписРазменаОстатка).
конкат ([],Y,Y).
конкат ([Х|Х1],У,[Х|ХЗ]):-конкат (X1.Y.X3).
разность(Уменьшаемое,Вычитаемое,Остаток)>
Остаток=Уменьшаемое-Вычитаемое.
/*—Конец программы - "Размен денежных сумм"------ */
3.Задача решается аналогично той, которая приведена в тексте. Поэтому запишем только формулы. «Черный ящик» будет выглядеть так:
Правило будет иметь следующий вид: прилет(<час1>,<мн1>,<час2>,<мин2>,<час>,<мин>,<сут>).
В этой задаче возможны четыре различных случая:
Условия (по-русски) |
Условия (матем.) |
Формулы для расчета: |
Самолет прилетает в тот же час и в те же сутки, что и вылетел |
мин1+мин2<60 час1+час2<24 |
мин=мин1+мин2 час=час1+час2 сут=те_же_сутки |
Есть переход суммы минут в следующий час, без перехода часов в следующие сутки |
мин1+мин2>59 час1+час2+1<24 |
мин=мин1+мин2-60 час=час1+час2-Н сут=те_же_сутки |
Нет перехода суммы минут в следующий час, но есть переход часов в следующие сутки |
мин1+мин2<60 час1+час2+1>23 |
мин=мин1+мин2 час=час1+час2-24 сут=след_сутки |
Есть переход суммы минут в следующий час и переход часов в следующие сутки |
мин1+мин2>59 час1+час2+1>23 |
мин=мин1+мин2-60 час=час1+час2-23 сут=след_сутки |
Например, для четвертого случая правило на Прологе будет такое: прилет(Час1,Мин1,Час2,Мин2,Час,Мин,след_сутки):-Мин1 +Мин2>59,Мин=Мин1 +Мин2-60,Час1 +Час2>23, Час=Час1+Час2-23.
Остальные правила и контрольные вопросы допишите сами. 4.остроуг(Имя)> кандидат(Имя,А,В,С), max3(A,B,C,D), квад-paT(D.P), квадрат(А,А2), квадрат(В,В2), квадрат(С,С2), К=А2+В2+С2, L=K-P, P<L.
5.Это следует из того, что для теоремы Пифагора обратная теорема также верна, то есть если для трех чисел верно, что с2 = а2 + Ь2, то они могут быть сторонами прямоугольного треугольника. Для тупоугольного треугольника из того, что с2 > а2 + Ь2 не следует, что с < а + Ь.
6.Здесь надо доказать, что если с2 < а2 + Ь2 => с < а + Ь. Действительно, так как стороны треугольника - положительные числа, с < а + b => с2 < (а + Ь)2 => с2 < а2 + 2ab +ь2. ab > 0 => а2 + 2ab +Ь2 > а2 + Ь2, т.е. с < а + Ь - условие более сильное, чем с2 < а2 + Ь2.
5. ВводивыводданныхнаПрологе 5.1. Встроенныепредикатыпреобразованиятипов
В Прологе существуют специальные функции для ввода и вывода данных. Эти функции реализуются при помощи встроенных предикатов. Перечислим их:
nl - переводит строку при вводе ивыводе данных;
readint(X) - считывает целое число и присваивает его переменной X;
readln(X) - вводит строку и присваивает ее переменной X;
write(A,B,C,...) - выводит на экран значения переменных А, В, С,..., причем значением переменной может быть как строка, так и число. Строки для вывода необходимо заключать в кавычки.
Например, правило:
работа:- write («Введитесвоеимя:»), геас!спаг(Имя), nl,
write(«flo6poe утро, », Имя), nl, write («ЯрадаВасвидеть»).
и вопрос
Цель: работа
даст следующий результат:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.