Программа на Clisp
Формулировка задачи:
Здравствуйте, подскажите пожалуйста как написать данный вариант программы. Преподаватель вместе с нами учится этому языку и не может ничем помочь, задания он берет с openedu. Пишем мы на clisp. Вот самое задание:
а вот что я начал писать:
строку входящую я писал так как в примере т.е. (((1.8 5 #\B "may") ("the" 2.25 1.3 4) (17 0 "force" 55)) (("be" #C(0 1) 5.02 99) ("with" 1.1 (#\Y #\N) 0.87) ("you!" #C(2.2 3.3) 42 4.2)))
В своём коде я пытался создать в переменную arr массив, потом считать его туда, ну и в конце просто вывести. На что мне интерпретатор пишет: "The function COMMON-LISP-USER::ARR is undefined." Я даже понять не могу.
Спасибо всем заранее, что сюда заглянули. На вас последняя надежда.
Прочитать трехмерный массив из стандартного потока ввода. Массив может содержать элементы различных типов – целые, вещественные, комплексные числа, строки, символы, списки, другие массивы. Необходимо найти сумму целых чисел, не делящихся нацело на 5. Если целых чисел в массиве нет, результат – 0.
Пример:
Дан трехмерный массив
#3A(((1.8 5 #\B "may") ("the" 2.25 1.3 4) (17 0 "force" 55)) (("be" #C(0 1) 5.02 99) ("with" 1.1 (#\Y #\N) 0.87) ("you!" #C(2.2 3.3) 42 4.2)))
Прочитать его из стандартного потока ввода можно с помощью следующей инструкции:
(defparameter arr (read))
Это массив размерности 2x3x4 (вспомните, как узнать размерность массива во время выполнения программы?). В нем содержатся различные элементы, в том числе следующие целые числа:
5 4 17 0 55 99 42
Среди этих чисел есть те, которые не делятся нацело на 5:
4 17 99 42
Их сумма равна 162, этот результат и нужно вывести в стандартный поток вывода.
(defvar arr (make-array '(2 3 4) :initial-element 0)) (defparameter arr (read)) (print (arr))
Решение задачи: «Программа на Clisp»
textual
Листинг программы
(defun foo (array) ...)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д