9.3 KiB
Доношење одлука: Обрада оцена ученика
Циљеви учења
У овом задатку ћете вежбати концепте доношења одлука из овог часа кроз израду програма који обрађује оцене ученика из различитих система оцењивања. Користићете if...else изразе, операторе поређења и логичке операторе како бисте утврдили који ученици пролазе своје курсеве.
Изазов
Радите у школи која се недавно спојила са другом установом. Сада треба да обрађујете оцене ученика из два потпуно различита система оцењивања и да утврдите који ученици пролазе. Ово је савршена прилика да вежбате условну логику!
Разумевање система оцењивања
Први систем оцењивања (Нумерички)
- Оцене се дају као бројеви од 1 до 5
- Положена оцена: 3 и више (3, 4 или 5)
- Неположена оцена: Испод 3 (1 или 2)
Други систем оцењивања (Оцене словима)
- Оцене се изражавају словима:
A,A-,B,B-,C,C- - Положене оцене:
A,A-,B,B-,C,C-(све наведене оцене су положене) - Напомена: Овај систем не укључује неположене оцене као што су
DилиF
Ваш задатак
Дат је следећи низ allStudents који представља све ученике и њихове оцене. Направите нови низ studentsWhoPass који садржи све ученике који су положили према њиховим одговарајућим системима оцењивања.
let allStudents = [
'A', // Letter grade - passing
'B-', // Letter grade - passing
1, // Numeric grade - failing
4, // Numeric grade - passing
5, // Numeric grade - passing
2 // Numeric grade - failing
];
let studentsWhoPass = [];
Приступ корак по корак
- Поставите петљу која пролази кроз сваку оцену у низу
allStudents - Проверите тип оцене (да ли је број или стринг?)
- Примените одговарајућа правила система оцењивања:
- За бројеве: проверите да ли је оцена >= 3
- За стрингове: проверите да ли је једна од важећих положених оцена словима
- Додајте положене оцене у низ
studentsWhoPass
Корисне технике кодирања
Користите ове JavaScript концепте из лекције:
- typeof оператор:
typeof grade === 'number'за проверу да ли је оцена нумеричка - Оператори поређења:
>=за поређење нумеричких оцена - Логички оператори:
||за проверу више услова за оцене словима - if...else изрази: за обраду различитих система оцењивања
- Методе за низове:
.push()за додавање положених оцена у нови низ
Очекивани резултат
Када покренете свој програм, studentsWhoPass треба да садржи: ['A', 'B-', 4, 5]
Зашто ове оцене пролазе:
'A'и'B-'су важеће оцене словима (све оцене словима у овом систему су положене)4и5су нумеричке оцене >= 31и2не пролазе јер су нумеричке оцене < 3
Тестирање вашег решења
Тестирајте свој код у различитим сценаријима:
// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Your solution should work with any combination of valid grades
Додатни изазови
Када завршите основни задатак, пробајте следеће проширења:
- Додајте валидацију: Проверите да ли постоје неважеће оцене (као што су негативни бројеви или неважећа слова)
- Израчунајте статистику: Израчунајте колико ученика је положило, а колико није
- Конверзија оцена: Претворите све оцене у један нумерички систем (A=5, B=4, C=3, итд.)
Рубрика
| Критеријум | Изузетно (4) | Добро (3) | У развоју (2) | Почетно (1) |
|---|---|---|---|---|
| Функционалност | Програм правилно идентификује све положене оцене из оба система | Програм ради са мањим проблемима или граничним случајевима | Програм делимично ради, али има логичке грешке | Програм има значајне грешке или не ради |
| Структура кода | Чист, добро организован код са правилном if...else логиком | Добра структура са одговарајућим условним изразима | Прихватљива структура са неким организационим проблемима | Лоша структура, тешко је пратити логику |
| Коришћење концепата | Ефективно коришћење оператора поређења, логичких оператора и условних израза | Добро коришћење концепата лекције са мањим недостацима | Делимично коришћење концепата лекције, али недостају кључни елементи | Ограничено коришћење концепата лекције |
| Решавање проблема | Показује јасно разумевање проблема и елегантан приступ решењу | Добар приступ решавању проблема са солидном логиком | Прихватљиво решавање проблема са неким конфузијама | Нејасан приступ, не показује разумевање |
Упутства за предају
- Тестирајте свој код темељно са датим примерима
- Додајте коментаре који објашњавају вашу логику, посебно за условне изразе
- Проверите да ли резултат одговара очекиваним резултатима:
['A', 'B-', 4, 5] - Размотрите граничне случајеве као што су празни низови или неочекивани типови података
💡 Савет: Почните једноставно! Прво направите да основна функционалност ради, а затим додајте сложеније функције. Запамтите, циљ је да вежбате логику доношења одлука са алатима које сте научили на овом часу.
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људског преводиоца. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.