Курсовая работа: Обработка результатов психологических тестов (ЛИСП-реализация)
(DECLARE (SPECIAL MAX_COUNT))
(DECLARE (SPECIAL MIN_COUNT))
(SETQ INPUT_STREAM (OPEN " D:\CALC_RESULT.TXT" :DIRECTION :INPUT))
(DO
((I 0))
((>= I 3))
;СЧИТЫВАЕМ ВАРИАНТ РЕЗУЛЬТАТА
(SETQ RES (READ INPUT_STREAM))
;СЧИТЫВАЕМ МАКСИМУМ И МИНИМУМ
(SETQ MAX_COUNT (CAR (CAR RES)))
(SETQ MIN_COUNT (CADR (CAR RES)))
;ЕСЛИ КОЛИЧЕСТВО НАБРАННЫХ БАЛЛОВ СОВПАДАЕТ С ТРЕБУЕМЫМИ
;ВЫВОДИМ РЕЗЛЬТАТ ТЕСТИРОВАНИЯ И ВЫХОДИМ ИЗ ЦИКЛА
(IF (AND (<= COUNTER MAX_COUNT) (>= COUNTER MIN_COUNT))
(PROGN
(PRINT_RES (CADR RES) COUNTER)
(SETQ I 3)
)
)
(SETQ I (+ I 1))
)
;ЗАКРЫВАЕМФАЙЛ
(CLOSE INPUT_STREAM)
)
;ОТКРЫВАЕМ ФАЙЛ RESULT.TXT ДЛЯ ЗАПИСИ
(SETQ OUTPUT_STREAM (OPEN " D:\RESULT.TXT" :DIRECTION :OUTPUT))
;ВЫВВОДНАЗВАНИЯТЕСТА
(PRINT (LIST 'TEST NAME_TEST) OUTPUT_STREAM)
(MAPCAR 'CALC_RESULT LST_COUNTER)