Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка. Пример.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
82.82 Кб
Скачать

Концептуализация

На этом этапе выделяются ключевые понятия, отношения и характеристики, необходимые для описания процесса решения задачи. Для каждого из возможного заболевания будет выбираться собственная группа ключевых понятий и отношений. Рассмотрим на примере заболевания под номером 4. Болит голова.

Ключевые понятия

Характеристики

Есть ли температура - A1

Вводит пользователь

Боль вокруг глаз - A2

Вводит пользователь

Боль в затылке – A3

Вводит пользователь

Вводимые данные

Результат

A1 = 0, A2 = 0, A3 =0

A1 = 0, A2 = 0, A3 =1

A1 = 0, A2 = 1, A3 =0

A1 = 0, A2 = 1, A3 =1

A1 = 1, A2 = 0, A3 =0

A1 = 1, A2 = 0, A3 =1

A1 = 1, A2 = 1, A3 =0

A1 = 1, A2 = 1, A3 =1

Отдохните. Поспите. Избавьтесь от стресса. Обратитесь к врачу.

Переутомление Искривление позвоночника / Давление / (Обратитесь к врачу!)

Сложно диагностировать заболевание. Обратитесь к врачу.

Вероятно это – Мигрень

ОРВИ, ГРИПП

ДИСТОНИЯ (Обратитесь к врачу!)

Опухоли. Обратитесь к врачу!

ГРИПП.

Описание программы

Рассмотрим алгоритм работы программы на примере

После запуска программы предлагается список заболеваний частей тела.

1.Болит голова.

2.Болит живот.

3.Боль в груди.

4.Боль в спине.

Соответствующей клавишей производим выбор, после чего предлагается ответить на два или три вопроса

Например, выберем «Боль в груди»,

Предложены вопросы:

  1. «Есть ли кашель

  2. «Сердцебиение учащенное

  3. «Боль в груди

Ответ на вопрос осуществляется клавишами

«0 » - no;

«1» - yes.

На первый вопрос отвечаем «нет»,

На второй вопрос отвечаем «да»,

На второй вопрос отвечаем «да»

Из ответов на вышеуказанные вопросы делаем вывод, что заболевание – «стеноз аорты». Во всех случаях необходимо обратиться к врачу!

Исходный код программы

domains

i=integer

predicates

AAA(integer,integer,integer)

BBB(integer,integer,integer)

CCC(integer,integer,integer)

DDD(integer,integer)

vvodA1(integer)

vvodA2(integer)

vvodA3(integer)

vvodA4(integer)

vvodA5(integer)

vvodA6(integer)

vvodA7(integer)

vvodA8(integer)

vvodA9(integer)

vvodA10(integer)

vvodA11(integer)

start

patch

process(i)

clauses

/*-------------------------------1-------------------------------------*/

AAA(A1,A2,A3):-

A1=0,

A2=0,

A3=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Primite analgetiki. Otdohnite. Pospite. Izbavtes' ot stressa. Obratites' v vrachu"),

cursor(12,5),

write("Vse soveti nosyat rekomendatel'niy harakter! Dlya tochnoy diagnostiki obratites' k vrachu!").

AAA(A1,A2,A3):-

A1=0,

A2=0,

A3=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("PEREUTOMLENIE / ISKREVLENIE POZVONOCHNIKA / DAVLENIE / (Obratites' k vrachu!)").

AAA(A1,A2,A3):-

A1=0,

A2=1,

A3=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Slozhno opredelit'. Obratites' obyazatel'no k vrachu.").

AAA(A1,A2,A3):-

A1=0,

A2=1,

A3=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Veroyatno eto – MIGREN’ ").

AAA(A1,A2,A3):-

A1=1,

A2=0,

A3=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write(" ORVI, GRIPP (Obratites' k vrachu!) ").

AAA(A1,A2,A3):-

A1=1,

A2=0,

A3=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write(" DISTONIYA (Obratites' k vrachu!)").

AAA(A1,A2,A3):-

A1=1,

A2=1,

A3=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write(" OPUHOLI. (Obratites' k vrachu!) ").

AAA(A1,A2,A3):-

A1=1,

A2=1,

A3=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Veroyatno eto – GRIPP").

/*-------------------------------2-------------------------------------*/

BBB(A4,A5,A6):-

A4=0,

A5=0,

A6=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("u vas tochno chto-to bolit?").

BBB(A4,A5,A6):-

A4=0,

A5=0,

A6=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

BBB(A4,A5,A6):-

A4=0,

A5=1,

A6=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("BULIMIYA / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu ").

BBB(A4,A5,A6):-

A4=0,

A5=1,

A6=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("OTRAVLENIE / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu ").

BBB(A4,A5,A6):-

A4=1,

A5=0,

A6=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("GASTRIT / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

BBB(A4,A5,A6):-

A4=1,

A5=0,

A6=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("BOLEZN' BEHCHETA / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

BBB(A4,A5,A6):-

A4=1,

A5=1,

A6=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("GASTROPAREZ / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

BBB(A4,A5,A6):-

A4=1,

A5=1,

A6=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("BOLEZN' KRONA / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

/*-------------------------------3-------------------------------------*/

CCC(A7,A8,A9):-

A7=0,

A8=0,

A9=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

CCC(A7,A8,A9):-

A7=0,

A8=0,

A9=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("PERIKARDIT / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu ").

CCC(A7,A8,A9):-

A7=0,

A8=1,

A9=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("ARITMIYA / Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu ").

CCC(A7,A8,A9):-

A7=0,

A8=1,

A9=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("STENOZ AORTI ").

CCC(A7,A8,A9):-

A7=1,

A8=0,

A9=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("PROSTUDA ").

CCC(A7,A8,A9):-

A7=1,

A8=0,

A9=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("ASTMA ").

CCC(A7,A8,A9):-

A7=1,

A8=1,

A9=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("BRONHIT ").

CCC(A7,A8,A9):-

A7=1,

A8=1,

A9=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("BOLEZN' TAKAYASU/ Prichin ochen' mnogo. Dlya tochnogo diagnoza obratites' k vrachu").

/*-------------------------------4-------------------------------------*/

DDD(A10,A11):-

A10=0,

A11=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("u vas tochno bolit spina? (Mojet golova? >:-] ) ").

DDD(A10,A11):-

A10=0,

A11=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("kamni v pochkah ").

DDD(A10,A11):-

A10=1,

A11=0,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("Ishias").

DDD(A10,A11):-

A10=1,

A11=1,

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

cursor(8,5),

write("!!!ALARM!!! Obratites' k vrachu, a to umrete! ").

/*------------------Процедура создания основного меню-----------------------*/

start:-

makewindow(1,2,7," DIAGNOSTIKA BOLEZNI ",0,0,25,80),

write("SELECT SIMPTOM"),nl,

clearwindow,

cursor(2,0),

write(" *******************************************************"),nl,

write(" * *"),nl,

write(" * KURSOVAYA RABOTA *"),nl,

write(" * DIAGNOSTIKA BOLEZNI *"),nl,

write(" * *"),nl,

write(" * *"),nl,

write(" * by Shilovskiy Aleksandr *"),nl,

write(" * *"),nl,

write(" *******************************************************"),nl,

patch.

/*Процедура управления основным меню*/

patch:-

cursor(12,0),

write(" 1.Bolit golova"),nl,

write(" 2.Bolit Jivot"),nl,

write(" 3.Bol' v grudi"),nl,

write(" 4.Bol' v spine"),nl,

write(" 5.Exit"),nl,nl,

write(" =>"),

readint(Choice),

Choice >= 1,

Choice < 10,

clearwindow,

process(Choice),

clearwindow,

Choice = 9,

retractall(_),

removewindow.

/* ---------------------------------------------------------------------

-------------------------------------------------------------------*/

process(1):-

makewindow(1,2,3," Vozmojnaya bolezn' ",0,0,25,80),

nl,

vvodA1(A1),

vvodA2(A2),

vvodA3(A3),

makewindow(1,2,5," Vivod ",1,1,20,78),

AAA(A1,A2,A3),

readln(_),

exit.

process(2):-

makewindow(1,2,3," Vozmojnaya bolezn' ",0,0,25,80),

nl,

vvodA4(A4),

vvodA5(A5),

vvodA6(A6),

makewindow(1,2,5," Vivod ",1,1,20,78),

BBB(A4,A5,A6),

readln(_),

exit.

process(3):-

makewindow(1,2,3," Vozmojnaya bolezn' ",0,0,25,80),

nl,

vvodA7(A7),

vvodA8(A8),

vvodA9(A9),

makewindow(1,2,5," Vivod ",1,1,20,78),

CCC(A7,A8,A9),

readln(_),

exit.

process(4):-

makewindow(1,2,3," Vozmojnaya bolezn' ",0,0,25,80),

nl,

vvodA10(A10),

vvodA11(A11),

makewindow(1,2,5," Vivod ",1,1,20,78),

DDD(A10,A11),

readln(_),

exit.

process(7):-

makewindow(1,2,3," Vozmojnaya bolezn' ",0,0,25,80),

nl,

vvodA7(A7),

vvodA8(A8),

vvodA9(A9),

makewindow(1,2,5," Vivod ",1,1,20,78),

CCC(A7,A8,A9),

readln(_),

exit.

vvodA1(A1):-makewindow(1,2,5," Bolit golova ",1,1,20,78),

cursor(2,10),write(" U vas est’ temperatura?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A1).

vvodA2(A2):-makewindow(1,2,5," Bolit golova ",1,1,20,78),

cursor(2,10),write(" Bol’ vokrug glaz?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A2).

vvodA3(A3):-makewindow(1,2,5," Bolit golova ",1,1,20,78),

cursor(2,10),write(" Bol’ vo lbu?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A3).

/*-----------------*/

vvodA4(A4):-makewindow(1,2,5," Bolit jivot ",1,1,20,78),

cursor(2,10),write(" Vas toshnit?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A4).

vvodA5(A5):-makewindow(1,2,5," Bolit jivot ",1,1,20,78),

cursor(2,10),write(" U vas rvota?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A5).

vvodA6(A6):-makewindow(1,2,5," Bolit jivot ",1,1,20,78),

cursor(2,10),write(" bol' v jivote?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A6).

/*-----------------*/

vvodA7(A7):-makewindow(1,2,5," Bol' v grudi ",1,1,20,78),

cursor(2,10),write("Kashel'?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A7).

vvodA8(A8):-makewindow(1,2,5," Bol' v grudi ",1,1,20,78),

cursor(2,10),write("Uchashennoe serdcebienie?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A8).

vvodA9(A9):-makewindow(1,2,5," Bol' v grudi ",1,1,20,78),

cursor(2,10),write(" Bol' v grudi?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A9).

/*-----------------*/

vvodA10(A10):-makewindow(1,2,5," Bol' v spine",1,1,20,78),

cursor(2,10),write("bol' v poyasnice?"),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A10).

vvodA11(A11):-makewindow(1,2,5," Bol' v spine",1,1,20,78),

cursor(2,10),write("Bol' v pochkah? "),

cursor(4,7),write("0. no "),

cursor(5,7),write("1. yes "),nl,readint(A11).

/*-----------------*/

goal

start.