Встроенные функции обработки строк visual и pdc prolog
concat(string,string,string): (i,i,o) (o,i,i) (i,o,i) (i,i,i)
frontchar(String,FrontChar,RestString) frontchar(string,char,string): (i,o,o) (i,i,o) (i,i,i) (o,i,i)
frontstr(NumberOfChars,String1,StartStr,String2) frontstr(integer,string,string,string): (i,i,o,o)
fronttoken(String,Token,RestString) fronttoken(string,string,string):(i,o,o)(i,i,o)(i,o,i)(i,i,i)(o,i,i)
str_len(String,Length) str_len(string,integer): (i,i) (i,o)
searchstring (STRING SourceStr, STRING SearchStr, UNSIGNED Position) (i, i, o)
substring (STRING Source, UNSIGNED Pos, UNSIGNED Len, STRING Part) (i, i, i, o)
subchar (STRING String, UNSIGNED Position, CHAR RetChar) (i, i, o)
searchchar (STRING String, CHAR SearchingChar, UNSIGNED Pos) (i, i, o)
concat (STRING String1, STRING String2, STRING LongString) (i, i, o), (o, i, i), (i, o, i), (i, i, i) Встроенные функции преобразования типов
char_int(CharParam,IntParam) char_int(charParam,integer): (i,o) (o,i) (i,i)
str_char(StringParam,CharParam) str_char(string,char): (i,o) (o,i) (i,i)
str_int(StringParam,IntParam) str_int(string,integer):(i,o)(o,i)(i,i)
str_real(StringParam,RealParam) str_real(string,real): (i,o) (o,i) (i,i)
upper_lower(StringUpperCase,StringInLowerCase) upper_lower(string,string): (i,o) (o,i) (i,i)
term_str (<domainName>, <TERM> Term, STRING String) (i, o, i) (i, i, o) (i, i, i)
3) Логические операции: Штрих Шеффера ï Стрелка Пирса ¯ (a ï b) = (Ø (a Ù b)) (a ¯ b) = (Ø (a Ú b))
4) 1. Э. Мендельсон, Введение в математическую логику.
Лабораторная работа №5: рекурсия
Методические указания
Составьте две Пролог - программы: а) первые программы (варианты 1 ¸ 18) соответствуют варианту Вашего задания, б) вторая программа (варианты 19 ¸ 36) соответствует варианту Вашего задания + 18. Примечания
1) Номер варианта (N) равен порядковому номеру студента в списке группы. 2) Срок выполнения – 12 - 16-ая недели семестра. 3) Отчёт по выполнению лабораторной работы оформляется и защищается после чтения лекций по соответствующей теме и должен содержать: d) файлы Lab_5a1_N.pro и Lab_5a2_N.pro с комментариями, e) для 1-ой задачи:
1) формулу исчисления предикатов (ИП), интерпретирующую отрицание простого основного вопроса раздела цели Пролог - программы, 2) формулу ИП, интерпретирующую неосновной вопрос из двух конъюнктов раздела цели Пролог - программы, 3) формулу ИП, интерпретирующую факт раздела предложений Пролог - программы, 4) формулу ИП, интерпретирующую правило раздела предложений Пролог - программы, c) файл Lab_5b_N.pro с комментариями, d) для 2-ой задачи – определения понятий: 1) логического следствия, 2) логического вывода, 3) разрешимого алгоритма, 4) разрешимой формальной системы.
Постановка задачи a1
Функция задана аналитически. Вычислить с заданной точностью значение функции, представленной в виде знакочередующегося сходящегося ряда, для заданного значения её аргумента.
Варианты задачи 0. f(x) = (1+x)-1/2 , ряд: 1 – x*(1/2) + x2*(1*3)/(2*4) – x3*(1*3*5)/(2*4*6) +..., область сходимости: |x| < 1, точность: eps. 1. f(x) = ln(1+x) 2. см. задачу №5a2 3. см. задачу №5a2 4. f(x) = cos x 5. f(x) = sin x 6. f(x) = (1+x)1/4 7. f(x) = (1+x)1/3 8. см. задачу №5a2 9. см. задачу №5a2 10. f(x) = (1+x)-1/4 11. f(x) = (1+x)-1/3 12. f(x) = (1+x)1/2 13. см. задачу №5a2 14. f(x) = (1+x)-3/2 15. f(x) = ln x 16. f(x) = arctg x 17. f(x) = ln(x+(x2+1)1/2) 18. f(x) = (1+x)-5/2
Паскаль- программа
/* Lab_5a1_0.pro Определить значение функции f(x) = (1+x)-1/2 = 1.0 / sqrt(1.0 + x), Определить сумму ряда: 1 - x*(1/2) + x2*(1*3)/(2*4) - x3*(1*3*5)/(2*4*6)..., для |x| < 1, с точностью Eps. */ var n: integer; s,x,a,eps: real; begin write('x='); readln(x); s:= 1.0; a:= 1.0; n:= 2; while abs (a) > eps do begin a:= -a * x * (n-1) / n; s:= s + a; n:= n + 2 end; writeln('s=',s:7:5); writeln('f=', 1.0/sqrt(1.0+x):7:5); writeln('r=',exp(-0.5*ln(1.0+x))s:7:5); readln end. Пролог-программа domains r = real i = integer
predicates nondeterm s_r(r,r,r,r) nondeterm s_r(r,r,r,r,r,r,i)
clauses s_r(X,Eps,S1,S2):- % X - аргумент, Eps - точность, % S1 - приближённый результат, S2 - точный результат s_r(X,Eps,S1,S2,1.0, 1.0,2). % 1.0 - значение 1-го члена ряда
s_r(X,Eps,S1,S2,S1,A,_):- abs(A)<=Eps, % abs значение члена ряда <= Eps S2=1.0/sqrt(1.0+X).
s_r(X,Eps,S1,S2,Sr,A,N):- abs(A)>Eps, % abs значение члена ряда > Eps
At = (-1)*A*X*(N-1)/N, % At - очередной член ряда St = Sr + At, % St - очередная сумма ряда Nt = N + 2, s_r(X,Eps,S1,S2,St,At,Nt). % итерационный цикл
goal s_r(0.5,0.0001,X,Y).
Читайте также: A) функции государства Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|