Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лп / Krtuvorychko / otchet_9

.doc
Скачиваний:
1
Добавлен:
09.02.2016
Размер:
100.35 Кб
Скачать

Міністерство освіти і науки, молоді і спорту України

Кіровоградський національний технічний університет

Механіко-технологічний факультет

Кафедра програмного забезпечення

Дисципліна: « Логічне програмування »

Лабораторна робота № 9

Тема: «Творча робота з курсу „Логічне програмування”»

Гра «Хто хоче стати мільйонером?»

Виконав: ст. групи КІ-12-СК

Криворучко О.В.

Перевірив: викладач

Резніченко В.А.

Кіровоград 2013

Мета: Узагальнити знання, отримані під час вивчення курсу та творчо їх використати.

Завдання:

Написати оригінальну програму, яка буде уособлювати в собі всі знання та вміння, набуті вами під час вивчення курсу „Логічне програмування” а також вашу фантазію та творчу думку. Бажано використання меню та графіки.

Лістинг програми:

domains

s=symbol

i=integer

sp=symbol*

predicates

menu1

menu2

menu3

menu4

call1(i)

call2(i)

call3(i)

call4(i)

make_window

draw

draw_triangle

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12

v13 v14 v15 v16 p501 p502 p503 p504 pz1 pz2

pz3 pz4 max(i,i,i,i,i) zvonok vv1

vv2 vv3 vv4 vv5 vv6 vv7 vv8 vv9 vv10 vv11

vv12 vv13 vv14 vv15

vvod1 vvod2 vvod3 vvod4

clauses

call1(1):-p501.

call1(2):-pz1.

call1(3):-zvonok.

menu1:-write("Какую подсказку выбираете?\n"),

write("1 - 50 на 50 \n","2 - Помощь зала\n","3 - Звонок другу\n"),

readint(X),call1(X).

call2(1):-p502.

call2(2):-pz2.

call2(3):-zvonok.

menu2:-write("Какую подсказку выбираете?\n"),

write("1 - 50 на 50\n","2 - Помощь зала\n","3 - Звонок другу\n"),

readint(X),call2(X).

call3(1):-p503.

call3(2):-pz3.

call3(3):-zvonok.

menu3:-write("Какую подсказку выбираете?\n"),

write("1 - 50 на 50\n","2 - Помощь зала\n","3 - Звонок другу\n"),

readint(X),call3(X).

call4(1):-p504.

call4(2):-pz4.

call4(3):-zvonok.

menu4:-write("Какую подсказку выбираете?\n"),

write("1 - 50 на 50\n","2 - Помощь зала\n","3 - Звонок другу\n"),

readint(X),call4(X).

draw:-make_window,draw_triangle,cursor(1,1),vv1.

make_window:- graphics(4,1,5),

makewindow(1,10,9,"Миллионер",3,8,20,65).

draw_triangle:-line(12000,12000,12000,12000,2).

p501:-random(R),B=1+3*R,V=round(B),V<>1,nl,

write("Возможные варианты\n"),

write(1,"\n",V),nl,!;write(4,"\n",1),nl.

p502:-random(R),B=1+3*R,V=round(B),V<>2,

write("Возможные варианты\n"),write(2,"\n",V),nl,!;

write(1,"\n",2),nl.

p503:-random(R),B=1+3*R,V=round(B),V<>3,

write("Возможные варианты\n"),

write(V,"\n",3),nl,!;write(3,"\n",1),nl.

p504:-random(R),B=1+3*R,V=round(B),V<>4,

write("Возможные варианты\n"),write(4,"\n",V),nl,!;

write(2,"\n",4),nl.

pz1:-random(X1),Y1=1+75*X1,Z1=round(Y1),

random(X2),Y2=1+25*X2,Z2=round(Y2),

random(X3),Y3=1+25*X3,Z3=round(Y3),

random(X4),Y4=1+25*X4,Z4=round(Y4),

Kol=Z1+Z2+Z3+Z4,

Kol1=(Z1/Kol)*100,Kol2=(Z2/Kol)*100,

Kol3=(Z3/Kol)*100,Kol4=(Z4/Kol)*100,

Koll1=round(Kol1),Koll2=round(Kol2),

Koll3=round(Kol3),Koll4=round(Kol4),

write(Koll1," %\n"),write(Koll2," %\n"),

write(Koll3," %\n"),write(Koll4," %\n").

pz2:-random(X1),Y1=1+25*X1,Z1=round(Y1),

random(X2),Y2=1+75*X2,Z2=round(Y2),

random(X3),Y3=1+25*X3,Z3=round(Y3),

random(X4),Y4=1+25*X4,Z4=round(Y4),

Kol=Z1+Z2+Z3+Z4,

Kol1=(Z1/Kol)*100,Kol2=(Z2/Kol)*100,

Kol3=(Z3/Kol)*100,Kol4=(Z4/Kol)*100,

Koll1=round(Kol1),Koll2=round(Kol2),

Koll3=round(Kol3),Koll4=round(Kol4),

write(Koll1," %\n"),write(Koll2," %\n"),

write(Koll3," %\n"),write(Koll4," %\n").

pz3:-random(X1),Y1=1+25*X1,Z1=round(Y1),

random(X2),Y2=1+25*X2,Z2=round(Y2),

random(X3),Y3=1+75*X3,Z3=round(Y3),

random(X4),Y4=1+25*X4,Z4=round(Y4),

Kol=Z1+Z2+Z3+Z4,

Kol1=(Z1/Kol)*100,Kol2=(Z2/Kol)*100,

Kol3=(Z3/Kol)*100,Kol4=(Z4/Kol)*100,

Koll1=round(Kol1),Koll2=round(Kol2),

Koll3=round(Kol3),Koll4=round(Kol4),

write(Koll1," %\n"),write(Koll2," %\n"),

write(Koll3," %\n"),write(Koll4," %\n").

pz4:-random(X1),Y1=1+25*X1,Z1=round(Y1),

random(X2),Y2=1+25*X2,Z2=round(Y2),

random(X3),Y3=1+25*X3,Z3=round(Y3),

random(X4),Y4=1+75*X4,Z4=round(Y4),

Kol=Z1+Z2+Z3+Z4,

Kol1=(Z1/Kol)*100,Kol2=(Z2/Kol)*100,

Kol3=(Z3/Kol)*100,Kol4=(Z4/Kol)*100,

Koll1=round(Kol1),Koll2=round(Kol2),

Koll3=round(Kol3),Koll4=round(Kol4),

write(Koll1," %\n"),write(Koll2," %\n"),

write(Koll3," %\n"),write(Koll4," %\n").

max(A,B,C,D,A):-A>=B,A>=C,A>=D.

max(A,B,C,D,B):-B>=A,B>=C,B>=D.

max(A,B,C,D,C):-C>=A,C>=B,C>=D.

max(A,B,C,D,D):-D>=A,D>=B,D>=C.

zvonok:-

random(X1),Y1=1+3*X1,A1=round(Y1),A1=A,

random(X2),Y2=1+3*X2,B1=round(Y2),B1=B,

random(X3),Y3=1+3*X3,C1=round(Y3),C1=C,

random(X4),Y4=1+3*X4,D1=round(Y4),D1=D,

max(A,B,C,D,E),write(E).

vvod1:-write("Ваш ответ\n"),

readint(X),X=1;exit.

vvod2:-write("Ваш ответ\n"),

readint(X),X=2;exit.

vvod3:-write("Ваш ответ\n"),

readint(X),X=3;exit.

vvod4:-write("Ваш ответ\n"),

readint(X),X=4;exit.

v1:-clearwindow,

write("Кто был главным героем мультфильма Ну погоди!?\n"),

write("1: Лиса и Медведь\n"),

write("2: Кот и собака\n"),

write("3: Волк и Заяц\n"),

write("4: Ястреб и Сорока\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv1:-v1,readint(X),X=1,menu3,vvod3,vv2;

vvod3,vv2.

v2:-clearwindow,

write("Как звали одного из героев повести Робинзон Крузо?\n"),

write("1: Пятница"),nl,

write("2: Суббота"),nl,

write("3: Воскресенье"),nl,

write("4: Понедельник"),nl,

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv2:- v2,readint(X),X=1,menu1,vvod1,vv3;

vvod1,vv3.

v3:-clearwindow,

write("Валюта США?\n"),

write("1: Доллар\n"),

write("2: Евро\n"),

write("3: Гривна\n"),

write("4: Рубль\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv3:- v3,readint(X),X=1,menu1,vvod1,vv4;

vvod1,vv4.

v4:-clearwindow,

write("Кто является золотым голосом России?\n"),

write("1: Маша Распутина\n"),

write("2: Стас Пьеха\n"),

write("3: Владислав Галкин\n"),

write("4: Николай Басков\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv4:- v4,readint(X),X=1,menu4,vvod4,vv5;

vvod4,vv5.

v5:-clearwindow,

write("Как в шутку обзывают Женю из фильма Ирония судьбы?\n"),

write("1: Наркоман из Питера\n"),

write("2: Алкоголик из Москвы\n"),

write("3: Сантехник из Нью_Йорка\n"),

write("4: Жигало из Тверской\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv5:- v5,readint(X),X=1,menu2,vvod2,vv6;

vvod2,vv6.

v6:-clearwindow,

write("Из какого мяса традиционно готовится начинка для чебуреков?\n"),

write("1: Баранина\n"),write("2: Свинина\n"),

write("3: Телятина\n"),write("4: Конина\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv6:- v6,readint(X),X=1,menu1,vvod1,vv7;

vvod1,vv7.

v7:-clearwindow,

write("Какой народ придумал танец 'чардаш'?\n"),

write("1: Венгры\n"),write("2: Румыны\n"),

write("3: Чехи\n"),write("4: Молдаване\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv7:- v7,readint(X),X=1,menu1,vvod1,vv8;

vvod1,vv8.

v8:-clearwindow,

write("Изучения соединений какого элемента является основой органической химии?\n"),

write("1: Кислород\n"),write("2: Углерод\n"),

write("3: Азот\n"),write("4: Кремний\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv8:- v8,readint(X),X=1,menu2,vvod2,vv9;

vvod2,vv9.

v9:-clearwindow,

write("Кто открыл тайну трех карт графине из 'Пиковой дамы' А.С. Пушкина?\n"),

write("1: Казанова\n"),write("2: Калиостро\n"),

write("3: Сен-Жермен\n"),write("4: Томас Воган\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv9:- v9,readint(X),X=1,menu3,vvod3,vv10;

vvod3,vv10.

v10:-clearwindow,

write("В какой стране была пробурена первая промышленная нефтяная скважина?\n"),

write("1: Кувейт\n"),write("2: Иран\n"),

write("3: Ирак\n"),write("4: Азербайджан\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv10:- v10,readint(X),X=1,menu4,vvod4,vv11;

vvod4,vv11.

v11:-clearwindow,

write("Разновидностью какого минерала является горный хрусталь?\n"),

write("1: Апатита\n"),write("2: Циркона\n"),

write("3: Кварца\n"),write("4: Турмалина\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv11:- v11,readint(X),X=1,menu3,vvod3,vv12;

vvod3,vv12.

v12:-clearwindow,

write("Какое название в 1918 году дали городу Царское Село?\n"),

write("1: Павловск\n"),write("2: Пушкин\n"),

write("3: Красное Село\n"),write("4: Детское Село\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv12:- v12,readint(X),X=1,menu2,vvod2,vv13;

vvod2,vv13.

v13:-clearwindow,

write("Кто распорядился поместить на американских банкнотах надпись 'Мы верим в Бога'?\n"),

write("1: Дуайт Эйзенхауэр\n"),

write("2: Сэлмон Чейз\n"),

write("3: Бенджамин Франклин\n"),

write("4: Франк Рузвельт\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv13:- v13,readint(X),X=1,menu2,vvod2,vv14;

vvod2,vv14.

v14:-clearwindow,

write("На каком языке просветитель Франциск Скорина в 1527_1525 годах напечатал первые среди восточных славян книги?\n"),

write("1: На польском\n"),

write("2: На русском\n"),

write("3: На белорусском\n"),

write("4: На украинском\n"),

write("Вам нужна подсказка?\n"),

write("1 - Да\n","2 - Нет\n").

vv14:- v14,readint(X),X=1,menu3,vvod3,vv15;

vvod3,vv15.

v15:-clearwindow,

write("Какого слова нет на памятнике П.К. Пахтусову в Кронштадте?\n"),

write("1: Польза\n"),

write("2: Отвага\n"),

write("3: Дело\n"),

write("4: Труд\n").

vv15:- v15,readint(X),X=1,menu3,vvod3,v16;

vvod3,v16.

v16:-write("Pobeda").

goal

draw.

Рис.1 – Виконання програми

6

Соседние файлы в папке Krtuvorychko