1
[Решено] Подсчет баллов по алгоритму
Автор Гость_Денис_*, 23 июн 2013 21:47
Сообщений в теме: 11
#1 Гость_Денис_*
Отправлено 23 Июнь 2013 - 21:47
Здравствуйет! Как подсчитать баллы в тесте следующего вида:
-Корневая группа
--Тема 1
---Задание 1
----Вопрос 1
----Вопрос 2
----Вопрос 3
----Вопрос 4
---Задание 2
---Задание 3
---Задание 4
Нужно подсчитать так:
Если человек отвечает на одно задание из темы, то получает 10 баллов, на два - 15 баллов, на три - 18 баллов, на все - 20 баллов. В каждом задании берется рандомно 1 из 4 вопросов.
-Корневая группа
--Тема 1
---Задание 1
----Вопрос 1
----Вопрос 2
----Вопрос 3
----Вопрос 4
---Задание 2
---Задание 3
---Задание 4
Нужно подсчитать так:
Если человек отвечает на одно задание из темы, то получает 10 баллов, на два - 15 баллов, на три - 18 баллов, на все - 20 баллов. В каждом задании берется рандомно 1 из 4 вопросов.
#2 Гость_Денис_*
Отправлено 24 Июнь 2013 - 10:47
тем 3-4 штуки
#3
Отправлено 24 Июнь 2013 - 12:35
В каждом задании он получает только один вопрос из четырех или он получит все 4 вопроса случайно?
#4
Отправлено 24 Июнь 2013 - 14:53
Денис (23 Июнь 2013 - 21:47) писал:
Здравствуйет! Как подсчитать баллы в тесте следующего вида:
-Корневая группа
--Тема 1
---Задание 1
----Вопрос 1
----Вопрос 2
----Вопрос 3
----Вопрос 4
---Задание 2
---Задание 3
---Задание 4
Нужно подсчитать так:
Если человек отвечает на одно задание из темы, то получает 10 баллов, на два - 15 баллов, на три - 18 баллов, на все - 20 баллов. В каждом задании берется рандомно 1 из 4 вопросов.
-Корневая группа
--Тема 1
---Задание 1
----Вопрос 1
----Вопрос 2
----Вопрос 3
----Вопрос 4
---Задание 2
---Задание 3
---Задание 4
Нужно подсчитать так:
Если человек отвечает на одно задание из темы, то получает 10 баллов, на два - 15 баллов, на три - 18 баллов, на все - 20 баллов. В каждом задании берется рандомно 1 из 4 вопросов.
Делается с помощью условного оператора:
https://indigotech.ru...83%D1%81%D0%BB/
Нужно делать что-то типа:
Балл(Тема_1) == 0 ? 0 : (Балл(Тема_1) == 1 ? 10 : (Балл(Тема_1) == 2 ? 15 : (Балл(Тема_1) == 3 ? 18 : 20)))
т.е. получается ветвление типа:
Если балл равен 0, то 0.
Иначе Если балл равен 1, то 10.
Иначе Если балл равен 2, то 15.
Иначе Если балл равен 3, то 18.
Иначе 20.
При этом за каждое Задание, должен быть равный максимум и равен 1.
Вы написали, что в каждом задании может выбираться от 1 до 4 вопросов. Тогда возможно потребуется более сложное условие, т.е. когда задание считается верным, когда все вопросы правильные или это не имеет значения. Т.е. не совсем понятно, что именно у Вас там. Обратите внимание на то, на сколько баллов у Вас там набирается вопросов и как правильно прописать условия (чтобы, например, не возник случай, когда получится столько баллов, сколько в условии не учитывалось).
Попробуйте, по результатам напишите. Если не получится, то будем более конкретно смотреть.
#5 Гость_Денис_*
Отправлено 24 Июнь 2013 - 16:46
Дело в том, что для первой темы все получается, не знаю как соединить все темы. Пишу следующим образом для Тема 1:
Балл(Корневая группа->Тема 1)==0 ? 0 : (
Балл(Корневая группа->Тема 1)==1 ? 10 : (
Балл(Корневая группа->Тема 1)==2 ? 15 : (
Балл(Корневая группа->Тема 1)==3 ? 18 :20)))
Как далее прописать, что бы такое же условие было для Тема с 1 по 4
Anry, допустим:
Тема 1
Здание 1- Вопрос 3
Задание 2 - Вопрос 4
Задание 3- Вопрос 1
и т.д.
Балл(Корневая группа->Тема 1)==0 ? 0 : (
Балл(Корневая группа->Тема 1)==1 ? 10 : (
Балл(Корневая группа->Тема 1)==2 ? 15 : (
Балл(Корневая группа->Тема 1)==3 ? 18 :20)))
Как далее прописать, что бы такое же условие было для Тема с 1 по 4
Anry, допустим:
Тема 1
Здание 1- Вопрос 3
Задание 2 - Вопрос 4
Задание 3- Вопрос 1
и т.д.
#6
Отправлено 24 Июнь 2013 - 17:08
Денис (24 Июнь 2013 - 16:46) писал:
Дело в том, что для первой темы все получается, не знаю как соединить все темы. Пишу следующим образом для Тема 1:
Балл(Корневая группа->Тема 1)==0 ? 0 : (
Балл(Корневая группа->Тема 1)==1 ? 10 : (
Балл(Корневая группа->Тема 1)==2 ? 15 : (
Балл(Корневая группа->Тема 1)==3 ? 18 :20)))
Как далее прописать, что бы такое же условие было для Тема с 1 по 4
Anry, допустим:
Тема 1
Здание 1- Вопрос 3
Задание 2 - Вопрос 4
Задание 3- Вопрос 1
и т.д.
Балл(Корневая группа->Тема 1)==0 ? 0 : (
Балл(Корневая группа->Тема 1)==1 ? 10 : (
Балл(Корневая группа->Тема 1)==2 ? 15 : (
Балл(Корневая группа->Тема 1)==3 ? 18 :20)))
Как далее прописать, что бы такое же условие было для Тема с 1 по 4
Anry, допустим:
Тема 1
Здание 1- Вопрос 3
Задание 2 - Вопрос 4
Задание 3- Вопрос 1
и т.д.
Может нужно суммировать? (если я все правильно понял)
Балл(Корневая группа->Тема 1)==0 ? 0 : (
Балл(Корневая группа->Тема 1)==1 ? 10 : (
Балл(Корневая группа->Тема 1)==2 ? 15 : (
Балл(Корневая группа->Тема 1)==3 ? 18 :20))) +
Балл(Корневая группа->Тема 2)==0 ? 0 : (
Балл(Корневая группа->Тема 2)==1 ? 10 : (
Балл(Корневая группа->Тема 2)==2 ? 15 : (
Балл(Корневая группа->Тема 2)==3 ? 18 :20))) +
...
Балл(Корневая группа->Тема N)==0 ? 0 : (
Балл(Корневая группа->Тема N)==1 ? 10 : (
Балл(Корневая группа->Тема N)==2 ? 15 : (
Балл(Корневая группа->Тема N)==3 ? 18 :20)))
Это если нужна интегрирующая оценка, а если каждая тема самостоятельная и нужно получать по каждой теме оценку отдельно, то нужно для каждой темы отдельную шкалу.
#7 Гость_Денис_*
Отправлено 25 Июнь 2013 - 00:32
не знаю в чем проблема, но почему-то с 1 по 3 Темы работают условия только для одной Темы и выдает 10 баллов, хотя пишет, что я ответил на 3 вопроса верно, т.е. по одному вопросу из тем, значит должно быть 30, а не 10. Хотя если отвечаю по одному вопросу из 1 и 2 Темы, то пишет 20, т.е. верно. Сейчас перепроверю еще раз, может все-таки где-то не так прописал, но я уже 5 раз переписываю результаты.
#8
Отправлено 25 Июнь 2013 - 01:00
Денис (25 Июнь 2013 - 00:32) писал:
не знаю в чем проблема, но почему-то с 1 по 3 Темы работают условия только для одной Темы и выдает 10 баллов, хотя пишет, что я ответил на 3 вопроса верно, т.е. по одному вопросу из тем, значит должно быть 30, а не 10. Хотя если отвечаю по одному вопросу из 1 и 2 Темы, то пишет 20, т.е. верно. Сейчас перепроверю еще раз, может все-таки где-то не так прописал, но я уже 5 раз переписываю результаты.
Чтобы найти ошибку проверьте протокол тестирования в программе администратора на вкладке Результаты, чтобы более лучше понять сколько баллов было за что набрано, как это подставилось в формулу и что в результате получилось.
Если не получится, то, пожалуйста, выложите шаблон теста с его структурой в виде файла экспорта itest, тексты вопросов и варианты ответов можете затереть, если это имеет секрет. А также более конкретно без двусмысленностей изложите, что требуется. Мы попробуем сделать это.
#9 Гость_Денис_*
Отправлено 25 Июнь 2013 - 10:11
http://dfiles.ru/files/kniisuekb В результатах теста написан алгоритм по которому в принципе должно все работать, но работает некорректно, при ответе верно на вопросы 1, 5, 9 пишет 10 баллов вместо 30, однако при ответе верно на 1, 5 вопросы дает 20 баллов.
#10
Отправлено 25 Июнь 2013 - 13:34
Денис (25 Июнь 2013 - 10:11) писал:
http://dfiles.ru/files/kniisuekb В результатах теста написан алгоритм по которому в принципе должно все работать, но работает некорректно, при ответе верно на вопросы 1, 5, 9 пишет 10 баллов вместо 30, однако при ответе верно на 1, 5 вопросы дает 20 баллов.
У меня, к сожалению, нет времени сейчас все проверить детально, было бы только к вечеру, но кажется, что я догадался в чем дело.
Попробуйте для каждой суммы поставить скобки:
(...) + (...) + (...)
По результату, пожалуйста, отпишитесь.
Также у Вас в тесте я не обнаружил случайных выборок. Когда будете настраивать это, то очень важно не допустить, чтобы мог сгенерироваться такой вариант теста, когда за тему пользователь потенциально никогда не сможет набрать 4 или сможет набрать больше 4. Нужно, чтобы за каждую тему всегда выбиралось вопросов на 4 балла, иначе нужно будет прописать другие условия.
p.s. если вы зарегистрируетесь, то сможете добавлять файлы к сообщениям.
#11 Гость_Денис_*
Отправлено 25 Июнь 2013 - 15:10
Ваши догадки оказались верны, спасибо, заработало, позже еще протестирую на различные варианты правильных ответов
#12
Отправлено 25 Июнь 2013 - 16:46
Денис (25 Июнь 2013 - 15:10) писал:
Ваши догадки оказались верны, спасибо, заработало, позже еще протестирую на различные варианты правильных ответов
Значит получается, что:
условие ? a : b + c
в случае не выполнения условия возвращает не b, а b + c.
Поэтому дополнительные скобки решают проблему:
( условие ? a : b ) + c
Когда протестируете, то отпишитесь, пожалуйста, чтобы тему можно было закрывать.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных