Ввод с клавиатуры произвольного количества чисел - 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, и цикл продолжается рекурсивно для нового значения. Таким образом, список элементов, которые могут быть выполнены в данном коде, может быть оформлен следующим образом:
- Входные параметры From и To
- Условие выхода из цикла From > To
- Правило, которое не выполняется !
- Вызов функции table()
- Вычисление следующего значения Next = From + 1
- Рекурсивный вызов loop(Next, To) Пожалуйста, обратите внимание, что список не содержит названий и значений переменных, так как это может привести к бесконечному циклу при рекурсивной обработке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д