БД сложение - Prolog

Узнай цену своей работы

Формулировка задачи:

Всем привет, давно еще спрашивал про списки и БД. понял что надо findall. Суть в том что бы взять из базы оценки и потом их сложить. Добавление и удаление вроде правильно. При сборке выдает ошибки. подскажите где накосячил? Заранее спасибо)

Решение задачи: «БД сложение»

textual
Листинг программы
m('1'):- 
    findall(S, student(_,_,_, S), L),
    sum(L,S),
    !,
    write(S).    
    readchar(_), 
    menu.     
m('1'):-write("ERROR!"),readchar(_),menu.

Объяснение кода листинга программы

В этом коде представлена реализация функции m, которая отвечает за сложение оценок студентов.

  1. m('1'):- - начало реализации функции m, которая вызывается при выборе пункта меню '1'
  2. findall(S, student(_,_,_, S), L) - этот фрагмент кода собирает все оценки студентов в список L из базы данных. Здесь S - это строка, представляющая собой оценку студента, а student - это факт в базе данных, который содержит оценку студента.
  3. sum(L,S) - этот фрагмент кода суммирует все оценки в списке L и сохраняет результат в переменной S.
  4. ! - оператор cut, который прекращает выполнение текущего оператора, если он не является целевым для запроса.
  5. write(S) - этот фрагмент кода выводит сумму оценок на экран.
  6. readchar(_) - этот фрагмент кода читает символ с клавиатуры (используется для перехода к следующему пункту меню).
  7. menu - этот фрагмент кода выводит на экран меню программы.
  8. m('1'):-write(ERROR!),readchar(_),menu. - если при выполнении функции m произошла ошибка (например, не удалось найти оценку студента), то вместо вычисления суммы и вывода результата на экран будет выведено сообщение об ошибке, а затем программа вернется в меню.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5