Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабПрактикум(1-5)_ПЗ в ИС_2011 .doc
Скачиваний:
27
Добавлен:
19.11.2019
Размер:
1.56 Mб
Скачать

Практикум 2-3

Добавьте в программу, представленную на рис.2.2 факты, хранящие пароли пользователей с параметрами (Имя, Пароль). Модифицируйте предикат hello (или создайте новый) - после ввода пользователем имени запросите пароль, если среди фактов будет обнаружено такое сочетание имени и пароля, то сообщить приветствие, а если нет – выдать сообщение: «Пользователь или пароль указан не верно. Повторить попытку (да или нет)? ». Если пользователь ответил «да», то повторить запрос имени и пароль, если «нет», то закончить работу программы.

Описание арифметических операций

В языке Пролог используется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в табл. 1.

Таблица 1

Обозначение

Тип операции

>,<,=,>=,<=,<>

Операции сравнения

+, -, *, /

Арифметические операции

X mod Y

Остаток от деления X на Y

X div Y

Частное от деления X на Y

abs(X)

Абсолютная величина числа X

sqrt(X)

Квадратный корень из X

sin(X), cos(X), tan(X),

arctan(X)

Тригонометрические функции

exp(X)

Возведение в степень X

log(X)

Десятичный логарифм (ln) числа X

ln(X)

Натуральный логарифм числа X

random(X)

Х – случайное число в диапазоне

0 <= Х < 1

Для описания любых операций арифметики можно также использовать собственные предикаты.

Предикаты Пролога не могут появляться в арифметических выражениях. Если требуется, например, переменной R присвоить значение, равное большему из двух выражений X и Y, умноженному на 3, то, используя предикат maximum, следующая запись является не верной:

rez(X,Y,R):- R=maximum(X,Y,Z)*3.

правильно записать так:

rez(X,Y,R):-maximum(X,Y,Z), R=3*Z.

Вычислить длину гипотенузы по длинам катетов прямоугольного треугольника можно с помощью конструкции:

gipotenuza(X,Y,Z):- Z = sqrt(X*X + Y*Y).

На рис. 2.3 представлена программа генерации целого случайного числа в пределах от 0 до 10.

Рис.2.3. Программа генерации случайного числа от 0 до 10

Практикум 2-4

Напишите программу «Угадай число»

Компьютер загадывает случайное число в диапазоне от 0 до 10. Его нужно угадать.

Пример диалога может выглядеть как на рис. 2.4.

Рис.2.4. Пример диалога с программой

Самостоятельные задания

  1. Создайте предикат, находящий максимум из четырех целых чисел, определяемых случайным образом в диапазоне от 0 до 100.

  2. Создайте предикат, имеющий пять аргументов и проверяющий, попадает ли точка, чьи координаты заданы первыми двумя параметрами, в круг, центр которого определяют третий и четвертый параметр, а радиус – пятый.

  3. Написать программу вычисления корней квадратного уравнения

ax2+bx+c=0. Коэффициенты a,b,c ввести в диалоге.