подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, "", Eel4, Epr4, Eel5, Epr5, А):!, подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, "0", Eel4, Epr4, Eel5, Epr5, А).
подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, "", Epr4, Eel5, Epr5, А):str_int(Eel3, El3_int),
El4_int = El3_int + 1,
str_int(Eel4, El4_int),
!, подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).
подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, "", Eel5, Epr5, А):!, подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, "0", Eel5, Epr5, А).
подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, "", Epr5, А):str_int(Eel4, El4_int),
El5_int = El4_int + 1,
str_int(Eel5, El5_int),
!, подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5, А).
подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, "", А):!, подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, "0", А).
подготовка(Eel1, Epr1, Eel2, Epr2, Eel3, Epr3, Eel4, Epr4, Eel5, Epr5,
[нечеткое_число(Эл_1, Пр_1), нечеткое_число(Эл_2, Пр_2), нечеткое_число(Эл_3, Пр_3), нечеткое_число(Эл_4, Пр_4), нечеткое_число(Эл_5, Пр_5)]):str_int(Eel1, Эл_1_инт), str_real(Epr1, Пр_1_реал),
str_int(Eel2, Эл_2_инт), str_real(Epr2, Пр_2_реал),
str_int(Eel3, Эл_3_инт), str_real(Epr3, Пр_3_реал),
str_int(Eel4, Эл_4_инт), str_real(Epr4, Пр_4_реал),
str_int(Eel5, Эл_5_инт), str_real(Epr5, Пр_5_реал),
Эл_1 = Эл_1_инт, Пр_1 = Пр_1_реал,
Эл_2 = Эл_2_инт, Пр_2 = Пр_2_реал,
Эл_3 = Эл_3_инт, Пр_3 = Пр_3_реал,
Эл_4 = Эл_4_инт, Пр_4 = Пр_4_реал,
Эл_5 = Эл_5_инт, Пр_5 = Пр_5_реал,
!.
/*начало***********************/
начало(А, Б, _Win):проверка(А), проверка(Б), реверс(А, [], А_реверс), реверс(Б, [], Б_реверс),
min_max_el(А, Б_реверс, Min),
min_max_el(А_реверс, Б, Max),
Max_1 = Max + 1, разность(А, Б, А, Б, Min, Max_1, -1.0, [], В_реверс), реверс(В_реверс, [], В), число_строка(В, "", Строка), число_слова(В, В, -1.0, Слова),
HWnde_3 = win_GetCtlHandle(_Win, idc_task_e_3),
win_SetText(HWnde_3, Слова),
HWnde_4 = win_GetCtlHandle(_Win, idc_task_e_4),
win_SetText(HWnde_4, Строка),
!.
/*проверка*********************/
проверка(А):проверка_сорт(А), проверка_полноты(А).
/*проверка_сорт****************/
проверка_сорт([_]):!. проверка_сорт([нечеткое_число(Эл_1, _), нечеткое_число(Эл_2, Пр_2)| А]):Эл_1 < Эл_2,
!, проверка_сорт([нечеткое_число(Эл_2, Пр_2)|А]).
проверка_сорт(_):dlg_Note("Отсортируйте таблицу принадлежности нечеткого числа"),
fail.
/*проверка_полноты*************/
проверка_полноты([_]):!.
проверка_полноты([нечеткое_число(Эл_1, _), нечеткое_число(Эл_2, Пр_2)|А]):Эл_1 + 1 = Эл_2,
!, проверка_полноты([нечеткое_число(Эл_2, Пр_2)|А]).
проверка_полноты(_):dlg_Note("В таблице принадлежности пропущены элементы"),
fail.
/*реверс***********************/
реверс([], А, А):!.
реверс([Эл|А], А_1, А_реверс):!, реверс(А, [Эл|А_1], А_реверс).
/*min_max_el***********************/
min_max_el([нечеткое_число(Эл_1, _)|_], [нечеткое_число(Эл_2, _)|_], Min_Max):Min_Max = Эл_1 - Эл_2.
/*min**************************/
min(Пр_1, Пр_2, Пр_min):Пр_1 <= Пр_2,
Пр_min = Пр_1,
!.
min(_, Пр_2, Пр_2):!.
/*max**************************/
max(Пр_1, Пр_2, Пр_max):Пр_1 >= Пр_2,
Пр_max = Пр_1,
!.
max(_, Пр_2, Пр_2):!.
/*разность*********************/
разность([], [], _, _, Элемент, Элемент, _, В, В).
разность([], [], А, Б, Элемент, Элемент_максимум, Принадлежность, В, В_1):Элемент_1 = Элемент + 1, разность(А, Б, А, Б, Элемент_1, Элемент_максимум, -1.0, [нечеткое_число(Элемент, Принадлежность)|В], В_1).
разность([_|А], [], А_1, Б_1, Элемент, Элемент_максимум, Принадлежность, В, В_1):разность(А, Б_1, А_1, Б_1, Элемент, Элемент_максимум, Принадлежность, В, В_1).
разность([нечеткое_число(Эл_1, Пр_1)|А], [нечеткое_число(Эл_2, Пр_2)|Б], А_1, Б_1, Элемент, Элемент_максимум, Принадлежность, В, В_1):Элемент = Эл_1 - Эл_2,
min(Пр_1, Пр_2, Принадлежность_минимум),
max(Принадлежность, Принадлежность_минимум, Принадлежность_максимум), разность([нечеткое_число(Эл_1, Пр_1)|А], Б, А_1, Б_1, Элемент, Элемент_максимум, Принадлежность_максимум, В, В_1).
разность(А_1, [_|Б_1], А_2, Б_2, Элемент, Элемент_максимум, Принадлежность, В, В_1):разность(А_1, Б_1, А_2, Б_2, Элемент, Элемент_максимум, Принадлежность, В, В_1).
/*число_строка*****************/
число_строка([], Строка, Строка):!.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.