You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ru/2-js-basics/3-making-decisions/assignment.md

10 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 = [];

Пошаговый подход

  1. Настройте цикл, чтобы пройтись по каждой оценке в массиве allStudents
  2. Проверьте тип оценки (является ли она числом или строкой)
  3. Примените соответствующие правила системы оценивания:
    • Для чисел: проверьте, если оценка >= 3
    • Для строк: проверьте, является ли она одной из допустимых проходных буквенных оценок
  4. Добавьте проходные оценки в массив studentsWhoPass

Полезные техники кодирования

Используйте эти концепции JavaScript из урока:

  • Оператор typeof: typeof grade === 'number', чтобы проверить, является ли оценка числовой
  • Операторы сравнения: >=, чтобы сравнивать числовые оценки
  • Логические операторы: ||, чтобы проверять несколько условий для буквенных оценок
  • Операторы if...else: для обработки различных систем оценивания
  • Методы массива: .push(), чтобы добавлять проходные оценки в новый массив

Ожидаемый результат

Когда вы запустите свою программу, массив studentsWhoPass должен содержать: ['A', 'B-', 4, 5]

Почему эти оценки проходят:

  • 'A' и 'B-' являются допустимыми буквенными оценками (все буквенные оценки в этой системе являются проходными)
  • 4 и 5 — числовые оценки >= 3
  • 1 и 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

Дополнительные задачи

После выполнения основного задания попробуйте следующие расширения:

  1. Добавьте проверку: Проверьте наличие недопустимых оценок (например, отрицательных чисел или недействительных букв)
  2. Подсчитайте статистику: Вычислите, сколько студентов сдали и сколько не сдали
  3. Конвертация оценок: Преобразуйте все оценки в единую числовую систему (A=5, B=4, C=3 и т.д.)

Критерии оценки

Критерий Отлично (4) Хорошо (3) Удовлетворительно (2) Начальный уровень (1)
Функциональность Программа правильно определяет все проходные оценки из обеих систем Программа работает с небольшими проблемами или крайними случаями Программа частично работает, но содержит логические ошибки Программа имеет значительные ошибки или не запускается
Структура кода Чистый, хорошо организованный код с правильной логикой if...else Хорошая структура с подходящими условными операторами Приемлемая структура с некоторыми организационными проблемами Плохая структура, сложно понять логику
Использование концепций Эффективное использование операторов сравнения, логических операторов и условных операторов Хорошее использование концепций урока с небольшими пробелами Некоторое использование концепций урока, но отсутствуют ключевые элементы Ограниченное использование концепций урока
Решение задачи Демонстрирует четкое понимание задачи и элегантный подход к решению Хороший подход к решению задачи с надежной логикой Адекватное решение задачи с некоторой путаницей Непонятный подход, не демонстрирует понимания задачи

Руководство по сдаче

  1. Тщательно протестируйте ваш код с предоставленными примерами
  2. Добавьте комментарии, объясняющие вашу логику, особенно для условных операторов
  3. Убедитесь, что результат соответствует ожидаемым: ['A', 'B-', 4, 5]
  4. Учтите крайние случаи, такие как пустые массивы или неожиданные типы данных

💡 Полезный совет: Начните с простого! Сначала добейтесь работы базовой функциональности, затем добавляйте более сложные функции. Помните, цель — попрактиковаться в логике принятия решений с инструментами, изученными в этом уроке.


Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.