Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Mashulay
1

Обучающая игра

25.03.2013, 17:15. Показов 658. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Надеюсь найдутся знающие люди и помогут мне.
Ребят у меня возник вопрос в задании.мне нужно написать обучающую программу для детей. Ниже(в задании) представлено условие реализации для одного действия. плюс к этому нужно еще сложение, вычитание и деление.
Задание:
1. Сгенерировать два целых случайных числа от 1 до 10, вычислить их произведение
2. Вывести на экран эти два числа. Предложить пользователю ввести результат вычисления
3. Проверить правильность вычисления
4. Сообщить пользователю результат вычисления - правильный или не правильный.
5. Если ответ правильный, то увеличить количество правильных отве-тов на 1. Если ответ не правильный, то выдать звуковой сигнал.
6. Перейти на п. 1. Повторить цикл 5 раз.
7. Вывести в качествве результата проверки знаний – количество пра-вильных ответов.

Проблемы возникли с делением, не могу сделать чтобы при генерации второго числа = 0 выводилось сообщение.
и не могу сделать округление... он почему- то принимает в правильный ответ разные значения.

Вот то что я смогла сделать
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
 database 
    count(i)
  domains
    x,i=integer
predicates
        nondeterm num(x)
        nondeterm ymn(x,x,x)
    nondeterm sloj(x,x,x)  
    nondeterm vuch(x,x,x) 
    nondeterm del(real,real,real)     
    
    nondeterm repeat
    nondeterm menu
    nondeterm action (x)
    nondeterm hello
    nondeterm hello1
    nondeterm hello2
    nondeterm hello3
    nondeterm srav(integer,integer)
    nondeterm cikl(integer,integer)
    nondeterm kolichestvo
 
 
clauses
%ãåíåðàöèÿ ÷èñëà îò 1 äî 10            
num(X):-random(Z),X=Z*10,!.
%óìíîæåíèå 2-õ ÷èñåë
ymn(X,Y,Z):- Z=X*Y.
%ñëîæåíèå 2-õ ÷èñåë
sloj(X,Y,Z):- Z=X+Y.
%âû÷åòàíèå 2-õ ÷èñåë
vuch(X,Y,Z):- Z=X-Y.
%äåëåíèå 2-õ ÷èñåë
del(X,Y,Z):-Z=X/Y.
%Ñðàâíåíèå ÷èñåë 
srav(Z,Z1):-Z=Z1.
 
%Ïðåäèêàò óìíîæåíèÿ
hello:-assert(count(0)),fail.
hello:- num(X),write("Ïåðâîå ÷èñëî: ", X), nl,
    num(Y),write("Âòîðîå ÷èñëî: ", Y), nl,
    ymn(X,Y,Z),write("Ââåäèòå ðåçóëüòàò óìíîæåíèÿ: "),readint(Z1),
    srav(Z,Z1),nl,write("Ïðaâèëüíûé îòâåò "),nl,nl,count(K1),K=K1+1, retractall(_),asserta(count(K)),!.
hello:-write("Íåïðàâèëüíûé îòâåò "),nl,beep,nl,!.
 
%Ïðåäèêàò ñëîæåíèÿ
hello1:-assert(count(0)),fail.
hello1:- num(X),write("Ïåðâîå ÷èñëî: ", X), nl,
    num(Y),write("Âòîðîå ÷èñëî: ", Y), nl,
    sloj(X,Y,Z),write("Ââåäèòå ðåçóëüòàò ñëîæåíèÿ: "),readint(Z1),
    srav(Z,Z1),nl,write("Ïðaâèëüíûé îòâåò "),nl,nl,count(K1),K=K1+1, retractall(_),asserta(count(K)),!.
hello1:-write("Íåïðàâèëüíûé îòâåò "),nl,beep,nl,!.
 
%Ïðåäèêàò âû÷åòàíèÿ
hello2:-assert(count(0)),fail.
hello2:- num(X),write("Ïåðâîå ÷èñëî: ", X), nl,
    num(Y),write("Âòîðîå ÷èñëî: ", Y), nl,
    vuch(X,Y,Z),write("Ââåäèòå ðåçóëüòàò âû÷èñëåíèÿ: "),readint(Z1),
    srav(Z,Z1),nl,write("Ïðaâèëüíûé îòâåò "),nl,nl,count(K1),K=K1+1, retractall(_),asserta(count(K)),!.
hello2:-write("Íåïðàâèëüíûé îòâåò "),nl,beep,nl,!.
 
 
%Ïðåäèêàò Äåëåíèå
hello3:-assert(count(0)),fail.
hello3:- write("ïðàâèëî îïèñàòü íàäî???? "), nl,nl,
    num(X),write("Ïåðâîå ÷èñëî: ", X), nl,
    num(Y), write("Âòîðîå ÷èñëî: ", Y), nl, Y=0, write("Íà íîëü äåëèòü íåëüçÿ"), fail.
hello3:- num(X),write("Ïåðâîå ÷èñëî: ", X), nl,
    num(Y),write("Âòîðîå ÷èñëî: ", Y), nl, Y>0,
    del(X,Y,Z), write(Z), write("Ââåäèòå ðåçóëüòàò äåëåíèÿ: "),readreal(Z1),
    srav(Z,Z1),nl,write("Ïðaâèëüíûé îòâåò "),nl,nl,count(K1),K=K1+1, retractall(_),asserta(count(K)),!.
hello3:-write("Íåïðàâèëüíûé îòâåò "),nl,beep,nl,!.
 
 
 
 
 
 
 
%öèêë èç 5 ðàç
cikl(0,_):-!.
cikl(N,O):- O=1, N1=N-1, hello, cikl(N1,O).
cikl(N,O):- O=2, N1=N-1, hello1, cikl(N1,O).
cikl(N,O):- O=3, N1=N-1, hello2, cikl(N1,O).
cikl(N,O):- O=4, N1=N-1, hello3, cikl(N1,O).
 
%ïîä÷åò êîëè÷åñòâà ïðàâèëüíûõ îòâåòîâ
kolichestvo:-count(K),nl,write("Êîëè÷åñòâî ïðàâèëüíûõ îòâåòîâ ",K),nl,!.
 
%ìåíþ
repeat.
repeat:-repeat.
menu:-repeat,
    write("ââåäèòå: "), nl,
    write("0-âûõîä "), nl,
    write("1-Óìíîæåíèå "), nl,
    write("2-Ñëîæåíèå "), nl,
    write("3-Âû÷åòàíèå "), nl,
    write("4-Äåëåíèå "), nl,
    readint(N), action(N).
action(0):-!.
action(1):-cikl(5,1), kolichestvo, retractall(_),nl, fail.
action(2):-cikl(5,2), kolichestvo, retractall(_),nl, fail.
action(3):-cikl(5,3), kolichestvo, retractall(_),nl, fail.
action(4):-cikl(5,4), kolichestvo, retractall(_),nl, fail.
goal
menu.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2013, 17:15
Ответы с готовыми решениями:

Маленький гурман-BabyBus, бесплатная обучающая игра для детей
Маленький гурман-BabyBus версия: 5.1.1 ...

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

Обучающая программа
Здравствуйте! У меня такой вопро: Пишу обучающую пронграмму для студентов (лекции + тесты). На...

Обучающая программа
Здравствуйте! Мне нужно написать обучающую программу по CorelDraw на Delphi. Если есть у кого-либо...

0
25.03.2013, 17:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2013, 17:15
Помогаю со студенческими работами здесь

Обучающая выборка
Добрый вечер! Подскажите пожалуйста ресурс, где можно скачать базу печатных символов, для...

Обучающая литература
Всем привет. Я только новичок в Android разработке и Java:wall:, люди посоветуйте какую либо...

Обучающая литература
Посоветуйте, где можно взять хорошую обучающую литературу для Рython 3 на русском языке.

обучающая программа
друзья, подскажите, я сделал странички в html с теорией, оформил красивенько,, как добавить их как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru