Задача взята с сайта e-olimp
Задача. Установить уровень учебных достижений ученика (начальный, средний, достаточный, высокий) соответственно к заданной оценки (от 1 до 12).
Тесты
В тестах нужно отобразить следующее:
- Оценки от 1 до 3 — начальный уровень;
- от 4 до 6 — средний;
- от 7 до 9 — достаточный;
- от 10 до 12 — высокий.
Оценка \ Уровень | Intial
(начальний) |
Average
(средний) |
Sufficient
(достаточний) |
High
(высокий) |
1, 2, 3 | + | |||
4, 5, 6 | + | |||
7, 8, 9 | + | |||
10, 11, 12 | + |
Решение
Оценки могут быть строго от 1 до 12 (по условию). Примем оценку за число [latex]a[/latex]. Оценка это число больше или равно 1 и меньше либо равно 12. Мы разбиваем сегмент [1, 12] на 4 сегмента — [1, 3], [4, 6], [7, 9], и [10, 12]. В каждом сегменте будет свое условие — [latex]a\leq3[/latex], [latex]a\leq6[/latex], [latex]a\leq9[/latex], и [latex]a\leq12[/latex]. Мы берем условие [latex]a\leq3[/latex], и, если это правда — пишем Intial. Если ложь проверяем [latex]a\leq6[/latex], если это правда — результат Average. Если ложь, то мы проверяем [latex]a\leq9[/latex]. В случае правды — результат Sufficient. Но если это все, начиная от [latex]a\leq3[/latex] заканчивая [latex]a\leq9[/latex] ложь, тогда в решении будет слово High.
Код
1 2 3 4 5 6 7 8 9 |
#include <iostream> using namespace std; int main() { int a; cin >> a; cout << (a<=3? "Initial" : (a<=6? "Average" : (a<=9? "Sufficient" : "High"))) << endl; return 0; } |
Код на IDEONE можно увидеть здесь.
Проверить правильность задачи можно здесь.
Я ценю творческий подход и эти замечательные картинки звёздного неба вместо формул, но в таком виде работу не зачту.
— Посмотрите здесь если не запомнилось на занятиях.
— Текст пояснения не соответствует коду Вашей программы.
— Над текстом нужно поработать. Например, «Следовательно мы разбиваем эти числа на…» вызывает массу вопросов и возражений. Из того, что оценка лежит в пределах от 1 до 12 не следует, что нужно что-то разбивать. О каких «этих» числах Вы пишите — там всего одно число? Я догадываюсь, что вы собираетесь разбить сегмент [1;12] на несколько интервалов, но так и нужно писать. Учитесь точно формулировать свою мысль. Это важно в нашей с вами профессии.
Спасибо, я исправила (надеюсь так лучше)
Конечно, лучше. Молодец.
С интервалами не идеально, но много лучше.
А вот «Мы используем оператор if» — неправда.
И минимум четыре ключевых слова прямо напрашиваются в поле tag. Догадались какие?
— Вы пишите «4 интервала – [1, 3], [4, 6], [7, 9], и [10, 12]». Но это не интервалы. Посмотрите, например, здесь.
— Не совсем понимаю, что Вы описываете в этих фразах? «берем следующее значение в скобки», «снова раскрываем скобки». Так описывается процесс каких-то математических преобразований. У Вас просто код программы и алгоритм решения. Какие скобки Вы раскрываете?
Исправила.
Отлично. Принято.