С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
SokoliK474
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
1

Ошибка в описании функции

19.12.2011, 22:52. Просмотров 537. Ответов 5
Метки нет (Все метки)

Здравствуйте!
По учебе возникла необходимость решить простенькую задачку, но проблема в том, что решить нужно ее на языке Prolog, синтаксис которого мне абсолютно неизвестен. Задание: реализовать программу вычисления суммы ряда 1 + 2 + 3 + ... + 9 + 10. У меня есть код, выданный преподавателем:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
domains
              number,sum=integer
predicates  
               sum(number,sum)
goal
               write(“Сумма ряда :  “),
               sum(1,sum),  write(sum).
clauses
                sum(11,0).
                sum(Number, Sum) :--
                  New_number=Number+1,
                  sum(New_number,Partial_sum),
                  Sum=Number+Partial_sum.
Пользуюсь версией Visual Prolog 7.3. Вставляю код в программу следующим образом:

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
implement main
    open core
domains
              number=integer.
              sum=integer.
predicates  
               sum(number,sum)
constants
    className = "main".
    classVersion = "".
clauses
    classInfo(className, classVersion).
clauses
    run():-
        console::init(),
                        sum(11,0).
                sum(Number, Sum) :--
                  New_number=Number+1,
                  sum(New_number,Partial_sum),
                  Sum=Number+Partial_sum.
end implement main
goal
    mainExe::run(main::run),
    write ("Сумма ряда :  "),
               sum(1,sum),  write(sum).
Выдает Syntax Error в строке sum(number,sum). Я так понимаю, что я неправильно описываю функцию, однако такое описание было в программе, выданной похоже не особо осведомленным преподавателем. Помогите разобраться с этим прооостеньким примерчиком и не думайте, пожалуйста, что я ну очень тупая, я просто абсолютно не знакома с этим языком программирования)))) Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 22:52
Ответы с готовыми решениями:

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?
Как сделать так чтобы переменная в описании одной функции была доступна в ...

Ошибка в описании функции
#include <iostream.h> #include <conio.h> main() { int i,j,k,*a,n,k2,m;...

Ошибка при описании функции
Добрый вечер) Я только только начал изучать этот прекрасный язык...

При описании функции по выделению N-го слова выдаётся ошибка "Unknown identifier"
При описании функции по выделению N-го слова выдаётся ошибка "Unknown...

Найти ошибку в описании функции
Функция 11.2cos(2x-1)+|(sin1.5x)|/1.7 program functia; uses crt; Var ...

5
freest
Українець
422 / 316 / 16
Регистрация: 26.09.2009
Сообщений: 844
19.12.2011, 22:55 2
тег кода вставте
0
Грымзик
2482 / 1458 / 35
Регистрация: 14.09.2009
Сообщений: 2,742
19.12.2011, 23:10 3
Как любят все на преподов валить. Это Вам сказали делать на версии 7.3, или Вас сказали просто про Визуал, а Вы выбрали самую последнюю версию? Думаю, что второе. Тогда делать надо на 5.2. Если же все-таки обязательно на 7.3, то поизучайте программы на нем, там синтаксис сильно отличается. Будет не sum(number,sum), а как-то так (сама в этом плохо разбираюсь)
sum : (number, sum) determ(i,o).
Да и кроме этого, еще почти все не правильно, вообщем смотрите примеры на 7.*
0
SokoliK474
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
20.12.2011, 13:19  [ТС] 4
На препода я валю - знаю, что делаю. Я задавала ему вопросы, конкретные, по ошибкам, а он сказал, что не рабирается в этом, поэтому он врядли знал про отличие синтаксиса в версии 5 и 7. Программа не работала на 5, он посоветовал скачать версию 7.
0
Грымзик
2482 / 1458 / 35
Регистрация: 14.09.2009
Сообщений: 2,742
20.12.2011, 20:42 5
Так на 5.2 будет работать
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
domains
              number,sum=integer
predicates      
      nondeterm sum(number,sum)
goal
               write("ÑóììГ* ðÿäГ* :  "),
               sum(1,Sum),  write(Sum).
clauses
                sum(11,0):-!.
                sum(Number, Sum) :-
                  New_number=Number+1,
                  sum(New_number,Partial_sum),
                  Sum=Number+Partial_sum.
1
SokoliK474
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
21.12.2011, 19:42  [ТС] 6
Большое спасибо!
0
21.12.2011, 19:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2011, 19:42

Не понятное предложение в описании функции
....

Найти ошибку в описании функции
Добрый день, я столкнулась с проблемой описания функции, ни разу не работала с...

Ошибка в описании - коды
Мне нужно срочно, напишите пожалуйста правильно, здесь у меня ошибка скорее...


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

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

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