Сборник задач по логическому программированию для студентов специальности «030100 информатика»




НазваниеСборник задач по логическому программированию для студентов специальности «030100 информатика»
страница6/11
Дата публикации08.07.2013
Размер0.73 Mb.
ТипСборник задач
skachate.ru > Информатика > Сборник задач
1   2   3   4   5   6   7   8   9   10   11
^

Лабораторная работа №2. Арифметика. Управление логическим выводом в программах


Пример 1. Описать предикаты для вычисления суммы, разности, произведения, частного двух чисел, возведения числа в квадрат, вывода остатка при деление на 3, вывод случайного числа из интервала [1,100].

Программа 13. Арифметика

Domains

N=integer

R=real

Predicates

add(N,N)

sub(N,N,N)

multi(N,N,N)

division(N,N,R)

kvadrat(N,N)

ostat(N,N)

vivod(N)

Clauses

add(X,Y):-S=X+Y, write(“Sum= ”,S),nl.

sub(X,Y,S):-S=X-Y.

multi(X,Y,P):-P=X*Y.

division(X,Y,R):-Y<>0, R=X/Y.

kvadrat(X,N):-N=X*X.

ostat(X,N):-N=X mod 3.

vivod(N):-random(Y), N=1+Y*100.

Пример 2. Программирование взаимоисключающих утверждений. Процедуру нахождения наибольшего из двух чисел можно записать в виде отношения

max(X,Y,X):-X>=Y.

max(X,Y,Y):-X
Эти правила являются взаимоисключающими. Возможна более экономная формулировка: если X>=Y, то максимум=X, иначе =Y. На Прологе это запишется следующим образом:

max(X,Y,X):-X>=Y, !.

max(_,Y,Y).
Программа 14. Максимум

Domains

N=integer

Predicates

max(N,N,N)

Clauses

max(X, Y, X):-X>Y,!.

max(_,Y,Y).
Пример 3. Рассмотрим различные способы записи предиката different, определяющего различны ли числа, использующие сочетание встроенных предикатов ! и fail.

different(X,X):-!,fail.

different(_,_).

или

different(X,Y):-X=Y,!,fail.

different(_,_).

или

different(X,Y):-X=Y,!,fail; true.

/* true –встроенный предикат, который всегда истиннен*/

или

different(X,Y):-not(X=Y).

Задания для самостоятельной работы

1. Описать предикаты:

  1. Найти квадрат числа X; куб числа X.

  2. Найти значение функций у = а*х + b, где a, b и х — целые числа.

  3. Найти периметр треугольника, если все его стороны изве­стны.

  4. Найти площадь прямоугольного треугольника по двум его катетам.

  5. Найти площадь трапеции с основаниями А и В и высотой Н.

  6. Найти квадрат гипотенузы в прямоугольном треугольни­ке по двум его катетам.

  7. Найти объем прямоугольного параллелепипеда со сторо­нами А, В и С.

  8. Зная скорость V и время Т, определите путь.

  9. Найти последнюю цифру в записи натурального числа.

  10. Найти цифры в десятичной записи двузначного натураль­ного числа.

  11. Найти первую цифру в десятичной записи трехзначного натурального числа.

  12. Найти сумму цифр в десятичной записи трехзначного на­турального числа.

2.

  1. Найти

А. Наименьшее значение из двух чисел;

Б. Наименьшее значение из трех чисел на основе первой задачи;

В. Наименьшее значение из шести чисел на основе второй задачи.

  1. Определить, удовлетворяют ли длины трех отрезков усло­вию прямоугольного треугольника.

  2. Определить, удовлетворяют ли длины трех отрезков усло­вию треугольника.

  3. Найти модуль числа X.

  4. Описать предикат для вычисления функции, заданной соотношением:



Рекомендуемая литература

  1. Ин Ц., Соломон Д. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1993.-608 с.,ил.

  2. Информатика. Задачник-практикум в 2 т./Под ред. И.Г.Семакина, Е.К. Хеннера: Том.2.-М.:-БИНОМ. Лаборатория знаний, 2003.-278 с.:ил.
^

Лабораторная работа №3. Повторение и рекурсия


Пример 1. Выводить на экран квадрат числа, вводимого пользователем, пока не будет введен 0.

Программа 15. Вывод квадрата числа

Domains

x=integer

Predicates

go

repeat

check(x)

Clauses

repeat.

repeat:- repeat.

go:- repeat, write (“Введите число пожалуйста или 0-для выхода ”),

readint(A), check(A).

check(0):-nl,write(“ok”),!.

check(A):-B=A*A, write(B),nl, fail.

Или

go:- repeat, write (“Введите число ”), readint(A),

B=A*A, write(А, “^2= ” ,B),nl,

write(“прервать да/нет (y/n) ”), readchar(C), C= “n”,!.
Пример 2. Организовать меню для выбора арифметической операции.

Программа 16. Меню

Domains

x=integer

Predicates

menu

actions(x)

repeat

Clauses

repeat.

repeat:- repeat.

menu:- repeat,

write(“Введите 1 для +, 2 для *, 3-для -, 0-для выхода\n”),

readint(N),

actions(N).

actions(0):-!.

actions(1):-write(“Введите первое число”), nl, readint(A),

write(“Введите второе число”) nl, readint(B),

С=A+B,write(C),nl,fail.

actions(2):- write(“Введите первое число”), nl, readint(A),

write(“Введите второе число”) nl, readint(B),

С=A*B,write(C),nl,fail.

actions(3):- write(“Введите первое число”), nl, readint(A),

write(“Введите второе число”) nl, readint(B),

С=A-B,write(C),nl,fail.

Пример 3. Вычислить n-ый член последовательности Фибоначчи. N-ый член последовательности Фибоначчи, начиная с третьего, определяется суммой 2-х предыдущих, а 1-ый и 2-ой члены равняются единице.

Введем двуместный предикат fib, первый аргумент будет определять порядковый номер члена, а второй будет записываться для записи ответа. Введем два факта, первый - первый член последовательности Фибоначчи равен 1, второй - второй член последовательности равен 1, а для определения n-го члена запишем правило. Действительно, чтобы определить n-ый член, мы должны определить значения двух предыдущих и сложить их.

fib(1,1).

fib(2,1).

fib(N,F):- N1=N-1, fib(N1,F1), N2=N-2, fib(N2,F2), F=F1+F2.

? fib(1,F)

Ответом будет F=1, и Пролог сделает попытку сопоставить с запросом второй факт и потерпит неудачу. Однако сопоставление головы третьего утверждения с запросом происходит успешно и осуществляется попытка доказать цель fib(-1,F1), что в свою очередь, приводит к цели fib(-2, …)и так далее, т.е. образуется бесконечный цикл. Эту ситуацию можно устранить, используя отсечение и тем самым, указывая Прологу, что не существует других решений в случае успешного согласования граничного условия.

Программа 17. Последовательность Фибоначчи

Domains

x=integer

Predicates

fib(x,x)

Clauses

fib(1,1):-!.

fib(2,1):-!.

fib(N,F):- N1=N-1, fib(N1,F1), N2=N-2, fib(N2,F2), F=F1+F2.
Задания для самостоятельной работы

  1. Вычислить N!.

  2. Вычислить n-ый член последовательности Фибоначчи.

  3. Вывести все числа от n до 1.

  4. Вывести все числа от 1 до n.

  5. Вычислить сумму чисел от 1 до n.

  6. Определите xn, n>0.

  7. Определите 2n, n>0.

  8. Определите N5, n>0.

  9. Вычислите сумму четных чисел от 1 до n.

  10. Вычислите сумму квадратов нечетных чисел от 1 до n.

  11. Вычислите сумму ak, где ak=1/(1+k).

  12. Вычислить.

  13. Вычислить.

  14. Определите корень уравнения методом половинного деления.

  15. Найти наибольший общий делитель двух чисел, трех чисел.

  16. Определить число сочетаний .

  17. Вычислить N!+(N-1)!+...+2!+1!.

  18. Вычислить количество четных элементов на заданном интервале.

  19. Перевести число из десятичной системы счисления в систему с основанием N, где N<10, N>1.



Рекомендуемая литература

    1. Стобо Д.Ж. Язык программирования Пролог: Пер. с англ.- М.- Радио и связь, 1993.-368 с.:ил.

    2. Ин Ц., Соломон Д. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1993.-608 с.,ил.

    3. Информатика:Учеб.пособие для студ.пед.вузов/А.В.Могилев, Н.И.Пак, Е.К.Хеннер;Под ред. Е.К.Хеннера.-3-е изд., перераб. и доп.-М.:Издательский центр “Академия”, 2004.-848 с.
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconРуденко Т. В. Сборник задач и упражнений по языку Си. ( учебное пособие для студентов II курса )
Представлены задачи и упражнения по языку Си и программированию на нем. Рассматриваемая версия Си соответствует международному и...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconСборник Задач по гидравлике Учебное пособие для студентов-заочников
Бровченко П. Н., Прохасько Л. С., Кузьмина Н. Д. Сборник задач по гидравлике: Учебное пособие для студентов-заочников. – Челябинск:...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconМетодические указания по курсовому проектированию для студентов очной...
Составлены в соответствии с рабочей программой курсов “Проектирование информационных систем” для студентов специальности 230100-...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconМетодические указания по выполнению дипломной работы для студентов...
Ргтэу по специальности «Прикладная информатика ( в экономике)» и устанавливают требования к ее тематике, содержанию, объему, результатам...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconРабочая программа по дисциплине «экономическая информатика» для студентов...
Задание и методические указания к контрольной работе для студентов заочного отделения
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconИнформатика Лабораторные работы для студентов специальности аэп заочного отделения (2 семестр)
Приведены методические указания по выполнению лабораторных работ по дисциплине "Информатика", изучаемой во 2 семестре
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconМетодические указания предназначены для студентов специальности 351400...
Методические указания предназначены для студентов специальности 351400 «Прикладная информатика в экономике» очной и заочной формы...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconСборник задач по физике пласта практикум для студентов направления...
С23 Сборник задач по физике пласта: практикум по дисциплине «Физика пласта» для студентов направления «Прикладная геология» и направления...
Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconСборник задач по финансовому менеджменту для специальности 080502...

Сборник задач по логическому программированию для студентов специальности «030100 информатика» iconМетодические указания к выполнению контрольной работы для студентов...
Теория экономических информационных систем : методические указания к выполнению контрольной работы для студентов заочного отделения...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница