Курсовая работа: Обработка результатов психологических тестов (ЛИСП-реализация)
4. Программная реализация решения задачи
;ФУНКЦИЯ СОЗДАЕТ НУЛЕВОЙ СПИСОК НА X ЭЛЕМЕНТОВ
(DEFUNCREATE_LST (XLST)
(COND
((EQLX 0) LST)
(T (CREATE_LST (- X 1) (CONS 0 LST)))
)
)
;ОТКРЫВАЕМФАЙЛДЛЯЧТЕНИЯ
(SETQ INPUT_STREAM (OPEN " D:\TEST.TXT" :DIRECTION :INPUT))
;СЧИТЫВАЕМ НАЗВАНИЕ ТЕСТА
(SETQ TEMP (READ INPUT_STREAM))
(SETQ NAME_TEST (CAR TEMP))
;КОЛИЧЕСТВО ВОПРОСОВ ТЕСТА 2 ЭЛЕМЕНТ В СПИСКЕ
(SETQ NUM (CADR TEMP))
;КОЛИЧЕСТВО ТЕСТИРУЕМЫХ
(SETQ PEOPLE (CADDR TEMP))
;ПОДСЧИТЫВАЕМ ОТВЕТЫ
(SETQ COUNTER 0)
(DEFUN SUM_COUNTER (VALUE COUNTER)
;ЗА ОТВЕТ "ДА" (1) - 10 БАЛЛОВ
;ЗА ОТВЕТ "НЕ ЗНАЮ" (-1) - 5 БАЛЛОВ
;ЗАОТВЕТ "НЕТ" (0) - 0 БАЛЛОВ
(COND
((= VALUE 1) (SETF COUNTER (+ COUNTER 10)))
((= VALUE -1) (SETF COUNTER (+ COUNTER 5)))
((= VALUE 0) (SETF COUNTER (+ COUNTER 0)))
)
)