Решение процедурных задач на Прологе
Процедурная семантика Пролога, решение алгоритмических задач, требующих вычислений. Листинг программы решения квадратного уравнения. Порядок выполнения. Последовательность вызовов процедур, которые необходимо осуществить для выполнения данной задачи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | украинский |
Дата добавления | 08.05.2020 |
Размер файла | 572,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Решение процедурных задач на Прологе
Цель работы: на примере программы для решения квадратного уравнения познакомиться с возможностями системы Visual Prolog для решения процедурных задач.
Краткие теоретические сведения
На Прологе, хотя это не является основной областью его использования, с успехом, применяя процедурную семантику, могут решаться и обычные алгоритмические задачи, требующие вычислений. При этом каждый из предикатов рассматривается как процедура, переменные, входящие в предикаты, -- как формальные параметры, описание предикатов, -- как последовательность вызовов процедур, которые необходимо осуществить для выполнения данной задачи. В качестве простого примера приведем программу решения квадратного уравнения.
Листинг программы решения квадратного уравнения
% Решение квадратного уравнения а*х*х+b*х+с = 0
PREDICATES
zapros % Ввод исх. данных, вызов основной процедуры
povtor % Нужен для организации повторения запроса
kvur(real, real, real) % kvur(А, В, С) - решение для а=А, b=В, с=С
CLAUSES
kvur(A, B, C):-B*B-4*A*C>0,
X1 = (-B+sqrt(B*B-4*A*C))/2/A,
X2 = (-B-sqrt(B*B-4*A*C) )/2/A,
write("x1 = "), write(X1),
write(" x2 = "),write(X2),nl.
kvur(А, В, С):-В*В-4*А*С = 0,
X = (-В)/2/А,
write("X = "), write(X), nl.
kvur(A, В, С):-В*В-4*A*С<0,
write("Корней нет").
zapros:- write( "Введите коэффициенты кв. ур. а*х*х+Ь*х+с = 0 "),
povtor,
write("а = "), readreal (A), A<>0, nl,
write("b = "), readreal(В), nl,
write("с = "), readreal(С), nl,
kvur(A, В, С) ,
write("Для выхода нажмите символ q, продолжение - любая клавиша"), nl,
readchar(S), S = 'q', !.
povtor.
povtor:-povtor.
GOAL
zapros.
Порядок выполнения
· Ознакомьтесь с листингом программы
· Откройте среду визуальной разработки Visual Prolog.
· Выберите пункты меню File, New.
· Наберите приведенный выше текст программы.
· Сохраните программу в личной папке.
· Запустите программу утилитой Test Goal (меню Project, Test Goal или соответствующая кнопка на панели инструментов)
пролог программа уравнение алгоритмический
· Вводите различные значения для коэффициентов квадратного уравнения, такие, чтобы оно имело два решения, одно решение, ни одного решения. Запишите в тетрадь полученные результаты
Контрольные вопросы
1. Для чего используются предикаты zapros и povtor?
Предикат zapros необходим для ввода исходных данных, и вызова основной процедуры.
Предикат povtor нужен для организации повторения запроса.
2. Каково назначение предикатов write, readreal, readchar ?
Write, readreal, readchar в прологе являются стандартными предикатами ввода-вывода и служат для организации взаимодейтсвия программы с пользователем.
Write- Запись заданных констант или значений переменных.
Readreal- Читает целое число и связывает его с вещественной перменной.
Readchar- Читает целое число и связывает его с символьной перменной.
3. Как записываются комментарии в программе на Прологе?
Комментарии в программе на Прологе записываются с помощью знака %.
4. Что означает символ «!» в тексте программы.
Ограничение объема поиска, с целью повышения эффективности работы компьютера. Предикат "отсечение" обозначается знаком восклицания -«!».
Размещено на Allbest.ru
Подобные документы
Разработка программы на языке С++ для решения дифференциального уравнения Лапласа в прямоугольной области методом сеток. Численное решение задачи Дирихле для уравнения Лапласа, построение сетки и итерационного процесса. Листинг и результат программы.
курсовая работа [307,5 K], добавлен 30.04.2012Оптимизация затрат на доставку продукции потребителям. Характеристика транспортной задачи, общий вид решения, обобщение; содержательная и математическая постановка задачи, решение с помощью программы MS Excel: листинг программы, анализ результатов.
курсовая работа [514,8 K], добавлен 04.02.2011Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011Графическое решение задач. Составление математической модели. Определение максимального значения целевой функции. Решение симплексным методом с искусственным базисом канонической задачи линейного программирования. Проверка оптимальности решения.
контрольная работа [191,1 K], добавлен 05.04.2016Решение систем алгебраических линейных уравнений методом Гаусса. Вычисление обратной матрицы и определителя. Декомпозиция задачи. Схема взаимодействия интерфейсных форм. Описание процедур и функций. Тестирование разработанного программного продукта.
курсовая работа [1,1 M], добавлен 05.06.2012Решение задачи средствами Паскаль и блок-схемы выполненных процедур, составление программы. Результаты решения задачи по перевозке грузов. выполнение задачи средствами MS Excel, создание таблиц. Порядок и особенности решения задачи в среде MathCAD.
курсовая работа [2,5 M], добавлен 27.02.2011Численные решения задач методом Коши, Эйлера, Эйлера (модифицированный метод), Рунге Кутта. Алгоритм, форма подпрограммы и листинг программы. Решение задачи в MathCad. Подпрограмма общего решения, поиск максимальных значений. Геометрический смысл задачи.
курсовая работа [691,4 K], добавлен 17.05.2011Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Практические навыки моделирования задач линейного программирования и их решения графическим и симплекс-методом с использованием прикладной программы SIMC. Моделирование транспортных задач и их решение методом потенциалов с помощью программы TRAN2.
контрольная работа [199,8 K], добавлен 15.06.2009Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.
контрольная работа [196,1 K], добавлен 15.01.2009