Ответ в теме: Количество положительных и отрицательных чисел в файле Visual Prolog

      Комментарии к записи Ответ в теме: Количество положительных и отрицательных чисел в файле Visual Prolog отключены
#2936

Я написал постом выше как решается ваша задача. Просто скопируйте предикаты по моим ссылкам в свою программу — все будет работать.
Что вы исправили в своем коде? — имена переменных K, T, Z и предиката p лично мне ни о чем не говорят (даже не знаю чем их заменить), посмотрите как оформлен код в моих примерах и делайте также. Не сливайте код в одну строку.

Напишите к своему коду пояснения, т.е. опишите как на ваш взгляд он должен работать. Я не понимаю, Prolog тоже не понимает и выдает ошибки:

  1. в функции file_read аргументы K и T не используются. Они там реально не используются и по именам я даже не могу предположить что вы хотели изобразить;
  2. Undeclared predicate, misspelling or not supported on chosen platform clozefile

    Догадываюсь, что вы хотели использовать closefile, но не понимаю, почему вы просто не запустите программу и не посмотрите ошибки, которые выдаст компилятор;

  3. после исправления предыдущей ошибки вы получите сообщения про то, что функтор f1 не определен, я специально для вас написал вчера статью про работу с файлами в Visual Prolog, прочитайте ее — там написано как объявить идентификаторы файлов;
  4. когда вы исправите ошибку с идентификаторами — получите сообщение

    Free variable in expression

    на этой строке: K1 > T1. В вашем коде вызывается функция p и ей передаются две переменные, значения которым не присвоены (K и T). Функция сразу пытается сравнивать эти переменные, но анонимные (без значения) переменные запрещено сравнивать — поэтому вываливается ошибка. Я бы рад был вам помочь, но я даже не догадываюсь что вы хотите тут сделать — логики вообще не видно.

Если вам нужна помощь — нужно:

  1. описать как на ваш взгляд должна работать программа (алгоритм) и привести нормально оформленный код. Алгоритм можете выложить хоть в виде блок-схемы;
  2. прочитать статьи по ссылкам — видно, что вы сейчас не понимаете как работают программы на Prolog и как нужно работать с файлами;
  3. объяснить чем не подходит решение, которое я привел в предыдущем посте, т.к. мы пытаемся решить задачу, которая уже решена.