Решение процедурных задач на Прологе
Процедурная семантика Пролога, решение алгоритмических задач, требующих вычислений. Листинг программы решения квадратного уравнения. Порядок выполнения. Последовательность вызовов процедур, которые необходимо осуществить для выполнения данной задачи.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | лабораторная работа |
| Язык | украинский |
| Дата добавления | 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


