Списки свойств атомов - Lisp

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

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

Для реализации записей использовать списки свойств атомов. Составить программу определения "качества" успеваемости, т.е. процент студентов, сдавших все экзамены на 5 и 4.

Решение задачи: «Списки свойств атомов»

textual
Листинг программы
;; создание студента
 
(defun crea-student (id fio val)
  (putprop id 'fio fio)
  (putprop id 'val val))
 
==> crea-student
 
 
(crea-student 'st-1 'Ivanov 4)        
 
==> st-1
 
(proplist 'st-1)
 
==> (fio Ivanov val 4)
 
;; создание списка студентов
 
(defun crea-list (lst)
  (let ((r nil))
   (dolist (i lst r)
     (let ((id (gensym 'id)))
       (crea-student id (car i) (cadr i))
       (push id r)))))
 
==> crea-list
 
(setq *students* (crea-list '((Ivanov 5) (Petrov 4) (Sidorov 3))))
 
==> (id6 id5 id4)
 
;; Создана глобальная переменная *students*
 
;; средний балл списка
 
(defun avg (lst)
  (let ((n (length lst))
        (s 0))
    (dolist (a lst (/ s n))
      (setq s (+ s (getProp a 'val))))))  
 
==> avg
 
(avg *students*)
 
==> 4

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


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

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

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