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

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

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

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

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

textual
Листинг программы
  1. ;; создание студента
  2.  
  3. (defun crea-student (id fio val)
  4.   (putprop id 'fio fio)
  5.   (putprop id 'val val))
  6.  
  7. ==> crea-student
  8.  
  9.  
  10. (crea-student 'st-1 'Ivanov 4)        
  11.  
  12. ==> st-1
  13.  
  14. (proplist 'st-1)
  15.  
  16. ==> (fio Ivanov val 4)
  17.  
  18. ;; создание списка студентов
  19.  
  20. (defun crea-list (lst)
  21.   (let ((r nil))
  22.    (dolist (i lst r)
  23.      (let ((id (gensym 'id)))
  24.        (crea-student id (car i) (cadr i))
  25.        (push id r)))))
  26.  
  27. ==> crea-list
  28.  
  29. (setq *students* (crea-list '((Ivanov 5) (Petrov 4) (Sidorov 3))))
  30.  
  31. ==> (id6 id5 id4)
  32.  
  33. ;; Создана глобальная переменная *students*
  34.  
  35. ;; средний балл списка
  36.  
  37. (defun avg (lst)
  38.   (let ((n (length lst))
  39.         (s 0))
  40.     (dolist (a lst (/ s n))
  41.       (setq s (+ s (getProp a 'val))))))  
  42.  
  43. ==> avg
  44.  
  45. (avg *students*)
  46.  
  47. ==> 4

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


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

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

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы