Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3

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

19.12.2011, 22:52. Показов 765. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2011, 22:52
Ответы с готовыми решениями:

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

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

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

5
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
19.12.2011, 22:55
тег кода вставте
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
19.12.2011, 23:10
Как любят все на преподов валить. Это Вам сказали делать на версии 7.3, или Вас сказали просто про Визуал, а Вы выбрали самую последнюю версию? Думаю, что второе. Тогда делать надо на 5.2. Если же все-таки обязательно на 7.3, то поизучайте программы на нем, там синтаксис сильно отличается. Будет не sum(number,sum), а как-то так (сама в этом плохо разбираюсь)
sum : (number, sum) determ(i,o).
Да и кроме этого, еще почти все не правильно, вообщем смотрите примеры на 7.*
0
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
20.12.2011, 13:19  [ТС]
На препода я валю - знаю, что делаю. Я задавала ему вопросы, конкретные, по ошибкам, а он сказал, что не рабирается в этом, поэтому он врядли знал про отличие синтаксиса в версии 5 и 7. Программа не работала на 5, он посоветовал скачать версию 7.
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
20.12.2011, 20:42
Так на 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
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
21.12.2011, 19:42  [ТС]
Большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2011, 19:42
Помогаю со студенческими работами здесь

При описании функции по выделению N-го слова выдаётся ошибка "Unknown identifier"
При описании функции по выделению N-го слова выдаётся ошибка "Unknown identifier" там, где слово LowerCase. В чём может быть дело?

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

Найти ошибку в описании функции
Функция 11.2cos(2x-1)+|(sin1.5x)|/1.7 program functia; uses crt; Var x:real;{} Fx:real;{} begin write('Введите x:');...

Не понятное предложение в описании функции
. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682663%28v=vs.85%29.aspx. Для смены текущей кодой страницы консоли...

Ошибка в описании структуры
Я новичок. Не могу разобраться как нормально описать структуру(( компилятор пишет ошибку. на first.a=1; #include <stdio.h> int...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru