Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
-1 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 38
1

Написал калькулятор с менюшкой. Выдает ошибку "clause for the same predicate should be group"

19.10.2014, 16:37. Показов 1219. Ответов 5
Метки нет (Все метки)

Пишет ошибку 415 clause for the same predicate should be group
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
domains
    
    s=integer
 
predicates
check_1(real)
    check_3(real,real)
    check2(real,real)
    
    vvedennya(s)
    menu    
 
clauses 
    
 
    menu:-clearwindow,write("1.Dodavannya"),nl,write("2.Widnimannya"),nl,write("3.Mnojennya"),nl,write("4.Dilennya"),nl,write("5.Exit"),nl;write("FAIL!"),nl.
    vvedennya(1):-clearwindow,write("Dodavannya:"),nl,nl,write("Vvedit chislo: "),
            readreal(A), nl, check_1(A), !.
check_1(0):-write("Nepravulno vvedeno chuslo"). 
            check_1(A):-
            write("Vvedit chislo: "),
            readreal(B), nl, check_3(A,B), !.
            
        check_3(_,0):-
                write("Nepravulno vvedeni chusla").
                check2(A,B):- Y=A+B, write(Y),nl, !.
    vvedennya(2):-clearwindow,write("Widnimannya "),nl,nl,write("Vvedit chislo: "),
            readreal(A), nl, check_1(A), !.
check_1(0):-write("Nepravulno vvedeno chuslo"). 
            check_1(A):-
            write("Vvedit chislo: "),
            readreal(B), nl, check_3(A,B), nl,!.
            
        check_3(_,0):-
                write("Nepravulno vvedeni chusla").
                check2(A,B):- Y=A-B, write(Y).
    vvedennya(3):-clearwindow,write("Mnojennya "),nl,nl,write("Vvedit chislo: "),
            readreal(A), nl, check_1(A), !.
check_1(0):-write("Nepravulno vvedeno chuslo"). 
            check_1(A):-
            write("Vvedit chislo: "),
            readreal(B), nl, check_3(A,B),!.
            
        check_3(_,0):-
                write("Nepravulno vvedeni chusla").
                check2(A,B):- Y=A*B, write(Y).         
    vvedennya(4):-clearwindow,write("Dilennya "),nl,nl,write("Vvedit chislo: "),
            readreal(A), nl, check_1(A), !.
check_1(0):-write("Nepravulno vvedeno chuslo"). 
            check_1(A):-
            write("Vvedit chislo: "),
            readreal(B), nl, check_3(A,B),!.
            
        check_3(_,0):-
                write("Nepravulno vvedeni chusla").
                check2(A,B):- Y=A/B, write(Y).    
vvedennya(5):- exit.
goal
    menu,readint(X),vvedennya(X)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2014, 16:37
Ответы с готовыми решениями:

Тест выдаёт ошибку - " cannot convert from "method group" to "bool?" "
Описываю класс Дроби. Есть поля типа int числителя и знаменателя. Необходимо пройти следующий тест...

Ошибка: "Syntax error in clause body, predicate call expected"
Начал только изучать, выкидывает ошибку "Syntax error in clause body, predicate call expected". В...

Ошибка: "Strange predicate as a head in clause 0"
Strange predicate ,_2),_3(_1,_4)),conc(_4,,_2)] as a head in clause 0. что эт за ошибка???

Выдает ошибку - "Не удалось привести тип объекта "TheMaze.FormLevel1" к типу "System.Windows.Forms.Label"."
Ругается вот на эту строчку: ((Label)sender).Visible = false; Вот код: using System; using...

5
Фрилансер
3681 / 2052 / 565
Регистрация: 31.05.2009
Сообщений: 6,684
19.10.2014, 17:32 2
Ошибка действительно присутствует: правила для предикатов check_1, check2, check_3 идут вперемешку. А должны идти строго блоками: сначала один предикат целиком, потом другой.

Но проблема в том, что простой перегруппировкой правил тут положение не спасешь
Скажу честно - странная программа со странной логикой.
Можете словами пояснить, что именно Вы хотели сделать?
0
-1 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 38
19.10.2014, 18:06  [ТС] 3
мне нужно написать калькулятор на 4 действия(без скобок) и написать к ней меню.
0
Фрилансер
3681 / 2052 / 565
Регистрация: 31.05.2009
Сообщений: 6,684
19.10.2014, 18:39 4
Вы это сами писали?
Что должны делать предикаты check_1, check2, check_3 ?
Зачем несколько раз повторяется правило
Prolog
1
2
check_3(_,0):-
                write("Nepravulno vvedeni chusla").
0
-1 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 38
19.10.2014, 19:12  [ТС] 5
я взял этот кусок с другой программы .я так понимаю что если будет нажата клавиша ноль то выведет что не правильно введено число
0
Фрилансер
3681 / 2052 / 565
Регистрация: 31.05.2009
Сообщений: 6,684
19.10.2014, 20:31 6
Цитата Сообщение от Влад1824 Посмотреть сообщение
я взял этот кусок с другой программы
Оно и видно.. Намешали всякой фигни совершенно без понимания.. Проще заново переписать.

Вот работающий кусок для сложения.
Нажмите для просмотра кода
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
predicates
 
menu
loop
process(integer)
 
clauses 
    
menu :-
    clearwindow,
    write("-------------------"), nl,
    write("1.Dodavannya"), nl,
    write("2.Widnimannya"), nl,
    write("3.Mnojennya"), nl,
    write("4.Dilennya"), nl,
    write("5.Exit"), nl,
    write("> "),
    readint(Choise),
    process(Choise),
    !.
menu :-
    write("Nepravulno vvedeno chuslo"), nl,
    loop.
    
loop :-    
    write("Press ENTER"),
    readln(_),
    menu.
    
process(1) :-    
    clearwindow,
    write("Dodavannya:"),nl,nl,
    write("Vvedit chislo A: "), 
    readreal(A),
    write("Vvedit chislo B: "), 
    readreal(B),
    Y = A+B, write("A + B = ", Y), nl,
    loop.
    
process(5) :-
    clearwindow,
    write("Exiting.."),nl,nl.
    
goal
    menu.

Для остальных действий уж напишите сами правила process(2), process(3), process(4), взяв за образец process(1).
И сообщения можете перевести с английского
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2014, 20:31

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Выдает ошибку "использована неинициализированная локальная переменная "flag" " и с переменной "sum_check" та же проблема
//func.cpp #include<iostream> using namespace std; #include "func.h" //Функция, которая...

Карта сайта. При переходе "Вперед" выдает ошибку "Такой страницы нет"
Здравствуйте! Столкнулась с такой проблемой на сайте (сам сайт...

VS2013 выдаёт ошибку Ошибка 1 error C2079: "d" использует неопределенный struct "DATE"
Привет всем. Подскажите пожалуйста, почему VS2013 выдаёт ошибку Ошибка 1 error C2079: "d"...

Программа для перевода в транслит выдает ошибку на "}" "Ссылка на объект не указывает на экземпляр объекта."
Вот код: if (radioButton6.Checked == true) { ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.