Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Готовые отчеты / ЛиФП. Курсовая работа

.pdf
Скачиваний:
41
Добавлен:
29.01.2021
Размер:
438.36 Кб
Скачать

CL2_S11D = CL1_S11D, CL2_S12D = CL1_S12D, CL2_S13D = CL1_S13D, CL2_S33D = CL1_S33D, CL2_S44D = CL1_S44D. get_e(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D,

CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL2_E31, CL2_E33, CL2_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15,

CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T)) :- RC = 1, Re = 3, Rs = 1, !,

CL2_E31 = CL1_H31 * CL1_E33S,

CL2_E33 = CL1_H33 * CL1_E33S,

CL2_E15 = CL1_H15 * CL1_E11S; RC = 1, Re = 3, Rs = 2, !,

CL2_E31 = CL1_D31 * (CL1_C11E + CL1_C12E) + CL1_D33 * CL1_C13E, CL2_E33 = 2 * CL1_D31 * CL1_C13E + CL1_D33 * CL1_C33E,

CL2_E15 = CL1_D15 * CL1_C44E; RC = 2, Re = 2, Rs = 1, !,

M = (2 * CL1_D31 * CL1_C13D + CL1_D33 * CL1_C33D) / (CL1_D31 * (CL1_C11D + CL1_C12D) + CL1_D33 * CL1_C13D),

A1 = 2 * CL1_D31 / CL1_E33S + CL1_D33 * M / CL1_E33S,

C1 = -CL1_D31 * (CL1_C11D + CL1_C12D) - CL1_D33 * CL1_C13D,

D1 = sqrt(1 - 4 * A1 * C1), CL2_E31 = (D1 - 1) / (2 * A1),

CL2_E33 = M * CL2_E31,

A2 = CL1_D15 / CL1_E11S,

C2 = -CL1_D15 * CL1_C44D, D2 = sqrt(1 - 4 * A2 * C2),

CL2_E15 = (D2 - 1) / (2 * A2);

CL2_E31 = CL1_E31, CL2_E33 = CL1_E33, CL2_E15 = CL1_E15.

get_d(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D,

CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D,

CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL2_D31, CL2_D33, CL2_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T)) :-

RC = 1, Re = 1, Rs = 1, !,

CL2_D31 = CL1_E31 * (CL1_S11E + CL1_S12E) + CL1_E33 * CL1_S13E, CL2_D33 = 2 * CL1_E31 * CL1_S13E + CL1_E33 * CL1_S33E,

CL2_D15 = CL1_E15 * CL1_S44E; RC = 1, Re = 3, Rs = 2, !,

CL2_D31 = CL1_E33T * CL1_G31,

CL2_D33 = CL1_E33T * CL1_G33,

CL2_D15 = CL1_E11T * CL1_G15; RC = 2, Re = 1, Rs = 2, !,

M = (2 * CL1_E31 * CL1_S13D + CL1_E33 * CL1_S33D) / (CL1_E31 * (CL1_S11D + CL1_S12D) + CL1_E33 * CL1_S13D),

A1 = 2 * CL1_E31 / CL1_E33T + CL1_E33 * M / CL1_E33T,

C1 = CL1_E31 * (CL1_S11D + CL1_S12D) + CL1_E33 * CL1_S13D,

D1 = sqrt(1 - 4 * A1 * C1), CL2_D31 = (1 - D1) / (2 * A1),

CL2_D33 = M * CL2_D31,

A2 = CL1_E15 / CL1_E11T,

C2 = CL1_E15 * CL1_S44D,

D2 = sqrt(1 - 4 * A2 * C2), CL2_D15 = (1 - D2) / (2 * A2);

CL2_D31 = CL1_D31, CL2_D33 = CL1_D33, CL2_D15 = CL1_D15.

get_h(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D,

CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D,

CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL2_H31, CL2_H33, CL2_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T)) :-

RC = 1, Re = 1, Rs = 1, !, CL2_H31 = CL1_E31 / CL1_E33S, CL2_H33 = CL1_E33 / CL1_E33S, CL2_H15 = CL1_E15 / CL1_E11S; RC = 2, Re = 4, Rs = 1, !,

CL2_H31 = CL1_G31 * (CL1_C11D + CL1_C12D) + CL1_G33 * CL1_C13D, CL2_H33 = 2 * CL1_G31 * CL1_C13D + CL1_G33 * CL1_C33D,

CL2_H15 = CL1_G15 * CL1_C44D; RC = 1, Re = 4, Rs = 1, !,

M = (2 * CL1_G31 * CL1_C13E + CL1_G33 * CL1_C33E) / (CL1_G31 * (CL1_C11E + CL1_C12E) + CL1_G33 * CL1_C13E),

A1 = 2 * CL1_G31 * CL1_E33S + CL1_G33 * M * CL1_E33S,

C1 = CL1_G31 * (CL1_C11E + CL1_C12E) + CL1_G33 * CL1_C13E,

D1 = sqrt(1 - 4 * A1 * C1), CL2_H31 = (1 - D1) / (2 * A1),

CL2_H33 = M * CL2_H31,

A2 = CL1_G15 * CL1_E11S,

C2 = CL1_G15 * CL1_C44E,

D2 = sqrt(1 - 4 * A2 * C2),

CL2_H15 = (1 - D2) / (2 * A2);

CL2_H31 = CL1_H31, CL2_H33 = CL1_H33, CL2_H15 = CL1_H15.

get_g(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15,

CL2_G31, CL2_G33, CL2_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T)) :- RC = 1, Re = 1, Rs = 1, !,

21

CL2_G31 = CL1_H31 * (CL1_S11D + CL1_S12D) + CL1_H33 * CL1_S13D,

CL2_G33 = 2 * CL1_H31 * CL1_S13D + CL1_H33 * CL1_S33D, CL2_G15 = CL1_H15 * CL1_S44D;

RC = 1, Re = 3, Rs = 1, !, CL2_G31 = CL1_D31 / CL1_E33T, CL2_G33 = CL1_D33 / CL1_E33T, CL2_G15 = CL1_D15 / CL1_E11T;

RC = 1, Re = 3, Rs = 2, !,

M = (2 * CL1_H31 * CL1_S13E + CL1_H33 * CL1_S33E) / (CL1_H31 * (CL1_S11E + CL1_S12E) + CL1_H33 *

CL1_S13E),

A1 = 2 * CL1_H31 * CL1_E33T + CL1_H33 * M * CL1_E33T,

C1 = -CL1_H31 * (CL1_S11E + CL1_S12E) - CL1_H33 * CL1_S13E, D1 = sqrt(1 - 4 * A1 * C1),

CL2_G31 = (D1 - 1) / (2 * A1), CL2_G33 = M * CL2_G31,

A2 = CL1_H15 * CL1_E11T,

C2 = -CL1_H15 * CL1_S44E,

D2 = sqrt(1 - 4 * A2 * C2), CL2_G15 = (D2 - 1) / (2 * A2);

CL2_G31 = CL1_G31, CL2_G33 = CL1_G33, CL2_G15 = CL1_G15.

get_es(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D,

CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33,

CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL2_E11S, CL2_E33S, CL1_E11T, CL1_E33T)) :-

RC = 1, Re = 1, Rs = 2, !,

CL2_E11S = CL1_E11T - CL1_D15 * CL1_E15,

CL2_E33S = CL1_E33T - 2 * CL1_D31 * CL1_E31 - CL1_D33 * CL1_E33; RC = 1, Re = 3, Rs = 2, !,

CL2_E11S = CL1_E15 / CL1_H15,

CL2_E33S = CL1_E33 / CL1_H33;

CL2_E11S = CL1_E11S, CL2_E33S = CL1_E33S.

get_et(RC, Re, Rs, cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D, CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33,

CL1_G15, CL1_E11S, CL1_E33S, CL1_E11T, CL1_E33T), cl(CL1_C11E, CL1_C12E, CL1_C13E, CL1_C33E, CL1_C44E, CL1_C11D, CL1_C12D, CL1_C13D, CL1_C33D, CL1_C44D, CL1_S11E, CL1_S12E, CL1_S13E, CL1_S33E, CL1_S44E, CL1_S11D,

CL1_S12D, CL1_S13D, CL1_S33D, CL1_S44D, CL1_E31, CL1_E33, CL1_E15, CL1_D31, CL1_D33, CL1_D15, CL1_H31, CL1_H33, CL1_H15, CL1_G31, CL1_G33, CL1_G15, CL1_E11S, CL1_E33S, CL2_E11T, CL2_E33T)) :-

RC = 1, Re = 1, Rs = 1, !,

CL2_E11T = CL1_E11S + CL1_D15 * CL1_E15,

CL2_E33T = CL1_E33S + 2 * CL1_D31 * CL1_E31 + CL1_D33 * CL1_E33; RC = 1, Re = 4, Rs = 1, !,

CL2_E11T = CL1_D15 / CL1_G15,

CL2_E33T = CL1_D31 / CL1_G31;

CL2_E11T = CL1_E11T, CL2_E33T = CL1_E33T.

get_constants(pcl(PCL_C11E, PCL_C12E, PCL_C13E, PCL_C33E, PCL_C44E, PCL_E31, PCL_E33, PCL_E15, PCL_S11,

PCL_S33, PCL_Reg_C, PCL_Reg_e, PCL_Reg_s), OutConstList) :-

eq1(PCL_Reg_C, [PCL_C11E, PCL_C12E, PCL_C13E, PCL_C33E, PCL_C44E], [CL_C11E, CL_C12E, CL_C13E, CL_C33E,

CL_C44E], [CL_C11D, CL_C12D, CL_C13D, CL_C33D, CL_C44D], [CL_S11E, CL_S12E, CL_S13E, CL_S33E, CL_S44E], [CL_S11D, CL_S12D, CL_S13D, CL_S33D, CL_S44D]),

eq2(PCL_Reg_e, [PCL_E31, PCL_E33, PCL_E15], [CL_E31, CL_E33, CL_E15], [CL_D31, CL_D33, CL_D15], [CL_H31, CL_H33, CL_H15], [CL_G31, CL_G33, CL_G15]),

eq3(PCL_Reg_s, [PCL_S11, PCL_S33], [CL_E11S, CL_E33S], [CL_E11T, CL_E33T]), get_constants_aux(PCL_Reg_C, PCL_Reg_e, PCL_Reg_s, cl(CL_C11E, CL_C12E, CL_C13E, CL_C33E, CL_C44E,

CL_C11D, CL_C12D, CL_C13D, CL_C33D, CL_C44D, CL_S11E, CL_S12E, CL_S13E, CL_S33E, CL_S44E, CL_S11D, CL_S12D, CL_S13D, CL_S33D, CL_S44D, CL_E31, CL_E33, CL_E15, CL_D31, CL_D33, CL_D15, CL_H31, CL_H33, CL_H15, CL_G31,

CL_G33, CL_G15, CL_E11S, CL_E33S, CL_E11T, CL_E33T), OutConstList). eq1(PCL_Reg_C, List, List1, List2, List3, List4) :-

PCL_Reg_C = 1, List1 = List, !;

PCL_Reg_C = 2, List2 = List, !;

PCL_Reg_C = 3, List3 = List, !;

PCL_Reg_C = 4, List4 = List, !;

write("eq1. PCL_Reg_C <= 0 || PCL_Reg_C >= 5"), !, fail. eq2(PCL_Reg_e, List, List1, List2, List3, List4) :-

PCL_Reg_e = 1, List1 = List, !;

PCL_Reg_e = 2, List2 = List, !;

PCL_Reg_e = 3, List3 = List, !;

PCL_Reg_e = 4, List4 = List, !;

write("eq1. PCL_Reg_e <= 0 || PCL_Reg_e >= 5"), !, fail. eq3(PCL_Reg_s, List, List1, List2) :-

PCL_Reg_s = 1, List1 = List, !;

PCL_Reg_s = 2, List2 = List, !;

write("eq1. PCL_Reg_s <= 0 || PCL_Reg_s >= 3"), !, fail. get_constants_aux(PCL_Reg_C, PCL_Reg_e, PCL_Reg_s, InConstList, OutConstList) :-

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 1, PCL_Reg_s = 1, !,

get_cd(1, 1, 1, ConstList1, ConstList2), get_sd(1, 1, 1, ConstList2, ConstList3), get_d(1, 1, 1, ConstList3, ConstList4), get_h(1, 1, 1, ConstList4, ConstList5), get_g(1, 1, 1, ConstList5, ConstList6), get_et(1, 1, 1, ConstList6, OutConstList);

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 1, PCL_Reg_s = 2, !,

get_d(1, 1, 1, ConstList1, ConstList2), get_es(1, 1, 2, ConstList2, ConstList3), get_cd(1, 1, 1, ConstList3, ConstList4), get_sd(1, 1, 1, ConstList4, ConstList5), get_h(1, 1, 1, ConstList5, ConstList6), get_g(1, 1, 1, ConstList6, OutConstList);

22

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 2, PCL_Reg_s = 1, !, get_e(1, 3, 2, ConstList1, ConstList2), get_h(1, 1, 1, ConstList2, ConstList3), get_cd(1, 3, 2, ConstList3, ConstList4), get_sd(1, 1, 1, ConstList4, ConstList5), get_et(1, 1, 1, ConstList5, ConstList6), get_g(1, 3, 1, ConstList6, OutConstList);

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 2, PCL_Reg_s = 2, !, get_g(1, 3, 1, ConstList1, ConstList2), get_e(1, 3, 2, ConstList2, ConstList3), get_es(1, 1, 2, ConstList3, ConstList4), get_h(1, 1, 1, ConstList4, ConstList5), get_cd(1, 3, 2, ConstList5, ConstList6),

get_sd(1, 1, 1, ConstList6, OutConstList); get_constants_aux1(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 3, PCL_Reg_s = 1, !, get_cd(1, 3, 1, ConstList1, ConstList2), get_sd(1, 1, 1, ConstList2, ConstList3), get_e(1, 3, 1, ConstList3, ConstList4), get_d(1, 1, 1, ConstList4, ConstList5), get_et(1, 1, 1, ConstList5, ConstList6), get_g(1, 3, 1, ConstList6, OutConstList);

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 3, PCL_Reg_s = 2, !,

get_g(1, 3, 2, ConstList1, ConstList2), get_d(1, 3, 2, ConstList2, ConstList3), get_e(1, 3, 2, ConstList3, ConstList4), get_es(1, 3, 2, ConstList4, ConstList5), get_cd(1, 3, 2, ConstList5, ConstList6), get_sd(1, 1, 1, ConstList6, OutConstList);

get_constants_aux1(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 4, PCL_Reg_s = 1, !, get_h(1, 4, 1, ConstList1, ConstList2), get_e(1, 3, 1, ConstList2, ConstList3), get_cd(1, 3, 1, ConstList3, ConstList4), get_sd(1, 1, 1, ConstList4, ConstList5), get_d(1, 1, 1, ConstList5, ConstList6),

get_et(1, 4, 1, ConstList6, OutConstList); get_constants_aux1(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 4, PCL_Reg_s = 2, !, get_d(1, 3, 2, ConstList1, ConstList2), get_e(1, 3, 2, ConstList2, ConstList3), get_es(1, 1, 2, ConstList3, ConstList4), get_h(1, 1, 1, ConstList4, ConstList5), get_cd(1, 3, 2, ConstList5, ConstList6),

get_sd(1, 1, 1, ConstList6, OutConstList); get_constants_aux2(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 1, PCL_Reg_s = 1, !, get_h(1, 1, 1, ConstList1, ConstList2), get_g(1, 1, 1, ConstList2, ConstList3), get_ce(2, 1, 1, ConstList3, ConstList4), get_se(1, 1, 1, ConstList4, ConstList5), get_d(1, 1, 1, ConstList5, ConstList6),

get_et(1, 4, 1, ConstList6, OutConstList); get_constants_aux2(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 1, PCL_Reg_s = 2, !,

get_d(2, 1, 2, ConstList1, ConstList2), get_g(1, 3, 1, ConstList2, ConstList3), get_es(1, 1, 2, ConstList3, ConstList4), get_h(1, 1, 1, ConstList4, ConstList5), get_ce(2, 1, 1, ConstList5, ConstList6), get_se(1, 1, 1, ConstList6, OutConstList);

get_constants_aux2(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 2, PCL_Reg_s = 1, !,

get_e(2, 2, 1, ConstList1, ConstList2), get_h(1, 1, 1, ConstList2, ConstList3), get_g(1, 1, 1, ConstList3, ConstList4), get_et(1, 1, 1, ConstList4, ConstList5), get_ce(2, 1, 1, ConstList5, ConstList6), get_se(1, 1, 1, ConstList6, OutConstList);

get_constants_aux2(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 2, PCL_Reg_s = 2, !, get_g(1, 3, 1, ConstList1, ConstList2), get_se(2, 3, 2, ConstList2, ConstList3), get_ce(2, 3, 2, ConstList3, ConstList4), get_e(1, 3, 2, ConstList4, ConstList5), get_es(1, 1, 2, ConstList5, ConstList6), get_h(1, 1, 1, ConstList6, OutConstList);

get_constants_aux2(PCL_Reg_C, InConstList, ConstList1),

PCL_Reg_e = 3, PCL_Reg_s = 1, !, get_g(1, 1, 1, ConstList1, ConstList2), get_e(1, 3, 1, ConstList2, ConstList3), get_ce(2, 1, 1, ConstList3, ConstList4), get_se(1, 1, 1, ConstList4, ConstList5), get_d(1, 1, 1, ConstList5, ConstList6),

get_et(1, 1, 1, ConstList6, OutConstList); get_constants_aux2(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 3, PCL_Reg_s = 2, !,

get_g(1, 1, 1, ConstList1, ConstList2), get_d(1, 3, 2, ConstList2, ConstList3), get_se(2, 3, 2, ConstList3, ConstList4),

23

get_ce(2, 3, 2, ConstList4, ConstList5), get_e(1, 3, 2, ConstList5, ConstList6), get_es(1, 3, 2, ConstList6, OutConstList);

get_constants_aux2(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 4, PCL_Reg_s = 1, !,

get_h(2, 4, 1, ConstList1, ConstList2), get_ce(1, 3, 1, ConstList2, ConstList3), get_se(2, 4, 1, ConstList3, ConstList4), get_e(1, 3, 1, ConstList4, ConstList5), get_d(1, 1, 1, ConstList5, ConstList6), get_et(1, 1, 1, ConstList6, OutConstList);

get_constants_aux2(PCL_Reg_C, InConstList, ConstList1), PCL_Reg_e = 4, PCL_Reg_s = 2, !,

get_d(1, 3, 2, ConstList1, ConstList2), get_h(2, 4, 1, ConstList2, ConstList3), get_se(2, 3, 2, ConstList3, ConstList4), get_ce(2, 3, 2, ConstList4, ConstList5), get_e(1, 3, 2, ConstList5, ConstList6), get_es(1, 1, 2, ConstList6, OutConstList).

get_constants_aux1(Reg_C, InConstList, OutConstList) :- Reg_C = 1, !, get_se(1, 1, 1, InConstList, OutConstList);

Reg_C = 3, get_ce(2, 3, 2, InConstList, OutConstList). get_constants_aux2(Reg_C, InConstList, OutConstList) :-

Reg_C = 2, !, get_sd(1, 1, 1, InConstList, OutConstList); Reg_C = 4, get_cd(0, 0, 0, InConstList, OutConstList).

log_str(String) :-

removewindow(), write(String), nl, makewindow(1, 15, 15, "Piezomaterial", 1, 0, 24, 80).

6.Заключение

Врезультате выполнения курсовой работы мы разработали программу на языке Turbo Prolog 2.0 для работы с базой данных пьезоматериалов. Было проведено тестирование отдельных предикатов и всей программы в целом. Программа полностью удовлетворяет заданным требованиям.

24