Вычислить среднее арифметическое положительных чисел - Lisp

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

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

Здравствуйте! Есть простая задачка, ток я в Lisp "0". Подскажите как ее можно решить. Вот сама задачка: вычислить среднее арифметическое положительных чисел, которые являются элементами заданного списка. Есть еще несколько вопросов: 1) как ввести список вручную, т.е. не задавая его где-то в коде. 2) как по этому списку перемещаться и перебирать значения. 3) как вывести его на экран. Заранее благодарен!

Решение задачи: «Вычислить среднее арифметическое положительных чисел»

textual
Листинг программы
;; racket-lang.org
(define (foo lst)
  (let ((lst (filter positive? lst)))
    (/ (apply + lst)
       (length lst))))
 
(foo '(1 2 3 -1 -2 -3))
;2

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

  1. Создается функция с именем foo.
  2. В функции foo, определяется локальная переменная lst, которая получает значение аргумента функции.
  3. С помощью функции filter, из списка lst удаляются все отрицательные числа.
  4. В локальной переменной lst, остается только список положительных чисел.
  5. С помощью функции apply, список положительных чисел передается в функцию +.
  6. Результат сложения всех положительных чисел из списка lst, сохраняется в переменной result.
  7. С помощью функции length, определяется длина списка lst.
  8. Результат деления суммы положительных чисел на их количество, сохраняется в переменной result.
  9. Функция foo, вызывается с аргументом '(1 2 3 -1 -2 -3).
  10. Результатом выполнения функции foo, будет число 2.

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


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

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

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