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

Содержание:

  1. Различить литерал, переменную и константу

    • литерал как непосредственная запись значения;
    • переменная как изменяемая часть состояния;
    • const как именованное значение, фиксированное при компиляции;
    • невозможность повторного присваивания константе.
  2. Объявлять константы допустимых типов

    • явное указание типа;
    • обязательный инициализатор;
    • числовые, логические, символьные и строковые константы;
    • согласование типа константы и литерала;
    • именование учебных констант в PascalCase.
  3. Понимать константное выражение

    • операции только над значениями, известными при компиляции;
    • составление выражения из литералов и других констант;
    • отличие результата вычисления времени выполнения;
    • диагностика при попытке использовать недопустимый инициализатор.
  4. Устранять магические числа

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

    • значение, неизменное по условию задачи;
    • значение, которое просто пока не изменяется;
    • параметр сценария, задаваемый перед запуском;
    • результат вычисления, который нельзя объявить const;
    • случаи, когда обычная локальная переменная точнее отражает модель.
  6. Учитывать область действия константы

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