Курсовая работа: Обработка результатов психологических тестов (ЛИСП-реализация)
(SETQ LST_COUNTER (CREATE_LST PEOPLE NIL))
(DO
((I 0))
((>= I NUM))
;СЧИТЫВАЕМСТРОКУ LST
(SETQ LST (READ INPUT_STREAM))
;ПОЛУЧАЕМ ОТВЕТЫ ЛЮДЕЙ ИЗ СТРОКИ LST
(SETQ ANSWER (CADR LST))
;СУММИРУЕМ СЧЕТЧИК РЕЗУЛЬТАТОВ ТЕСТИРОВАНИЯ ДЛЯ КАЖДОГО ЧЕЛОВЕКА
(SETQ LST_COUNTER (MAPCAR 'SUM_COUNTER ANSWER LST_COUNTER))
(SETQ I (+ I 1))
)
;ЗАКРЫВАЕМФАЙЛ TEST.TXT
(CLOSE INPUT_STREAM)
;СЧЕТЧИК ДЛЯ ВЫВОДА КОЛИЧЕСТВА ЧЕЛОВЕК
(SETQ NUM_PEOPLE 1)
;ПЕЧАТЬРЕЗУЛЬТАТОВ
(DEFUN PRINT_RES (RESULT COUNTER)
;ВЫВВОДКОЛИЧЕСТВАНАБРАННЫХБАЛЛОВ
(PRINT (LIST NUM_PEOPLE 'PEOPLE '= 'COUNTER COUNTER) OUTPUT_STREAM)
;ВЫВВОД РЕЗУЛЬТАТА ТЕСТИРОВАНИЯ
(PRINT RESULT OUTPUT_STREAM)
;УВЕЛИЧИВАЕМ СЧЕТЧИК ДЛЯ ВЫВОДА КОЛИЧЕСТВА ЧЕЛОВЕК
(SETQ NUM_PEOPLE (+ NUM_PEOPLE 1))
)
;ОТКРЫВАЕМ ФАЙЛ CALC_RESULT.TXT ДЛЯ ЧТЕНИЯ
(DEFUN CALC_RESULT (COUNTER)
;ОБЪЯВЛЯЕМ ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ
(DECLARE (SPECIAL INPUT_STREAM))