Ввод с клавиатуры произвольного количества чисел - Prolog

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

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

Привет всем. Нужна помощь с одной проблемкой. Сама проблемка звучит так : - Написать программу вычисления среднего арифметического для произвольного количества вводимых с клавиатуры чисел Вопрос у меня в чем: - Как запилить ввод производного количества чисел с клавиатуры ? Как я понимаю сперва: 1. Требуется ввести цифру которая будет подразумевать количество возможных для ввода чисел 2. После этого ехать по циклу пока не станет количество введенных элементов равно исходному условию 3. Сделать подсчет и вывести. Не понимаю как это сделать в прологе. Может кто объяснить мне это ?
Ладно, с задачкой что выше я попробую разобраться, но вот с той, надо которой я сижу уже 5 часов я совсем закопался, помогите пожалуйста с ней. Я совсем не могу разобраться, в прологе буквально 1-2 дня сижу. А со временем беда, я сделал начало как понял, т.е. domains и predicates я постарался описать. Могу скинуть. Но и его я менял раз 20. Ибо стараюсь по пример делать. Вот собсна сама задача: Написать программу, содержащую сведения о театральных спектаклях и театрах, в которых проходят эти постановки. Задать к базе различные вопросы по поводу постановок конкретного театра Помогите люди пожалуйста !

Решение задачи: «Ввод с клавиатуры произвольного количества чисел»

textual
Листинг программы
loop(From, To) :-  
    From > To,       % условие выхода из цикла
    !.               % следующее правило не выполняем
loop(From, To) :-
    table(From),     % выполняем тело цикла
    Next = From + 1, % переходим к следующему значению
    loop(Next, To).  % и обрабатываем его рекурсивно

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

Код представляет собой реализацию цикла в языке программирования Prolog. Цикл выполняется последовательно для каждого числа от From до To (включительно). Если From больше To, цикл прекращается. В теле цикла выполняется вызов функции table(), которая обрабатывает текущее значение From. После этого значение From увеличивается на 1, и цикл продолжается рекурсивно для нового значения. Таким образом, список элементов, которые могут быть выполнены в данном коде, может быть оформлен следующим образом:

  1. Входные параметры From и To
  2. Условие выхода из цикла From > To
  3. Правило, которое не выполняется !
  4. Вызов функции table()
  5. Вычисление следующего значения Next = From + 1
  6. Рекурсивный вызов loop(Next, To) Пожалуйста, обратите внимание, что список не содержит названий и значений переменных, так как это может привести к бесконечному циклу при рекурсивной обработке.

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


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

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

13   голосов , оценка 3.846 из 5
Похожие ответы