Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Встроенные функции обработки строк 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).

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...