3. Функциональные модели и блок-схемы решения задачи

Функциональные модели и блок-схемы решения задачи представлены на рисунках 1 – 4.


Рисунок 1 – Функциональная модель решения задачи для функции CREATE_LST: X – размерность списка, LST – создаваемый список

Рисунок 2 – Функциональная модель решения задачи для функции SUM_COUNTER: VALUE – ответ, COUNTER – счетчик, суммирующий ответы


Рисунок 3 – Блок-схема решения задачи для функции CALC_RESULT COUNTER – счетчик, суммирующий ответы, I – рабочая переменная, INPUT_STREAM – входной поток, MAX_COUNT – максимальное количество очков, MIN_COUNT – минимальное количество очков, PRINT_RES – функция, печатающая результат тестирования


Рисунок 4 – Функциональная модель решения задачи для функции PRINT_RES: NUM_PEOPLE – номер тестируемого человека, COUNTER – счетчик, суммирующий ответы, OUPUT_STREAM – поток вывода, RESULT – результат тестирования

4. Программная реализация решения задачи

;ФУНКЦИЯ СОЗДАЕТ НУЛЕВОЙ СПИСОК НА X ЭЛЕМЕНТОВ

(DEFUN CREATE_LST (X LST)

(COND

((EQL X 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)))

)

)

;СОЗДАЕМ НУЛЕВОЙ СПИСОК СЧЕТЧИКОВ РАЗМЕР КОТОРОГО РАВЕН КОЛИЧЕСТВУ ЧЕЛОВЕК

(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))

(DECLARE (SPECIAL RES))

(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)

;ЗАКРЫВАЕМ ФАЙЛ RESULT.TXT

(TERPRI OUTPUT_STREAM)

(CLOSE OUTPUT_STREAM)

;END


5. Пример выполнения программы

Рисунок 5 – Входные данные


Рисунок 6 – Входные данные

Рисунок 7 – Выходные данные


Пример 2.

Рисунок 8 – Входные данные


Рисунок 9 – Входные данные

Рисунок 10 – Выходные данные


ЗАКЛЮЧЕНИЕ

Компьютерная обработка предполагает использование одних и тех же команд при выполнении идентичных операций обработки данных, что практически исключает появление случайных ошибок, обыкновенно присущих ручной обработке.

Разработанная в данной курсовой работе программа для обработки результатов психологических тестов делает наиболее простой работу пользователя в данной области и сокращает время на выполнение соответствующих операций.

В результате выполнения курсовой работы составлена функциональная модель для решения поставленной задачи. Проведён анализ полученных результатов, и сделаны необходимые выводы.

Созданная функциональная модель и ее Лисп-реализация могут служить органической частью решения более сложных задач.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ и литературы

1.         Бронштейн, И.Н. Справочник по математике для инженеров и учащихся втузов [Текст] / И.Н.Бронштейн, К.А.Семендяев. – М.: Наука, 2007. – 708 с.

2.         Выготский, Л.С. О психологических системах [Текст] / Л.С.Выгодский – М.: Питер, 2001. С. 467.

3.         Гайда, В.К. Психологическое тестирование: учебное пособие. [Текст] / В.К. Гайда, В.П. Захаров – M.:Мир, 1999. С. 625.

4.         Пиаже, Ж. Экспериментальная психология. [Электронный ресурс] / Ж. Пиаже – М.: Прогресс, 2003. С. 318.

5.         Симанков, В.С. Основы функционального программирования [Текст] / В.С.Симанков, Т.Т.Зангиев, И.В.Зайцев. – Краснодар: КубГТУ, 2002. – 160 с.

6.         Степанов, П.А. Функциональное программирование на языке Lisp. [Электронный ресурс] / П.А.Степанов, А.В. Бржезовский. – М.: ГУАП, 2003. С. 79.

7.         Холодная, М.А. Существует ли интеллект как психическая реальность? [Текст] / М.А. Холодная – М.: Педагогика, 200. С. 216.

8.         Хювенен Э. Мир Лиспа [Текст] / Э.Хювенен, Й.Сеппянен. – М.:Мир, 1990. – 460 с.


Информация о работе «Обработка результатов психологических тестов (ЛИСП-реализация)»
Раздел: Информатика, программирование
Количество знаков с пробелами: 15570
Количество таблиц: 0
Количество изображений: 10

Похожие работы

Скачать
231244
5
6

... По теореме 9.3 в силу результатов шагов 3 и 8. (Шаг 10). Имеет место свойство (9.4) по теореме 9.5 в силу результатов шагов 1 и 9. Литература к лекции 9. 9.1. С.А. Абрамов. Элементы программирования. - М.: Наука, 1982. С. 85-94. 9.2. М. Зелковец, А. Шоу, Дж. Гэннон. Принципы разработки программного обеспечения. - М.: Мир, 1982. С. 98-105. Лекция 10. ТЕСТИРОВАНИЕ И ОТЛАДКА ПРОГРАММНОГО ...

Скачать
78776
2
5

... в экспертной системе с необходимостью должны быть сложными либо в смысле сложности каждого правила, либо в смысле их обилия. Экспертные системы, как правило, работают с предметными областями реального мира, а не с тем, что специалисты в области искусственного интеллекта называют игрушечными предметными областями. В предметной области реального мира тот, кто решает задачу, применяет фактическую ...

Скачать
87126
13
0

... сообщение об ошибке, которое выводится на русском языке. Место ошибки в программе указывается после перехода в текстовый экран и нажатием клавиши <Enter>. 2.2. Запись основных алгоритмических конструкций в среде Лого Миры и их использование для решения вычислительных задач Понятие алгоритма Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно ...

0 комментариев


Наверх