JustCaptain kod-buduschego

Тема 1.4. Циклы и перебор вариантов: материал, задачи LMS, практика, необязательные задачи #10

Слито JustCaptain слил(а) topic-1.4-loops → main · e44b3dc
Запрос слит. Файлы и разница
  • Отзывов пока нет
JustCaptain · открыто

Что сделано#

Добавлена тема 1.4 «Циклы и перебор вариантов» по образцу тем 1.2 и 1.3 — та же структура папки и тот же стиль (шпаргалка + три файла задач, фенсы '''cpp, врезки > [!NOTE] / > [!WARNING]).

Новая папка C++/Тема 1.4. Циклы и перебор вариантов/:

Файл Что внутри
Необходимый материал.md 11 разделов: что такое цикл; for, while, do-while; таблица «какой цикл выбрать»; вложенные циклы и полный перебор; 8 шаблонов задач (сумма, подсчёт, максимум/минимум, поиск первого, количество максимумов, второй максимум, серия); последовательность до нуля; формула вместо цикла; типичные ошибки; шаблон программы
Задачи/Обязательные задачи (LMS).md 2 задачи из LMS с эталонными решениями: «Подготовка Юры», «Палиндром»
Задачи/Практика.md 9 задач, разбираемых на трёх занятиях: сумма положительных чисел, первая высокая башня, чередование, лучший результат, после максимума + раздел ОГЭ/ЕГЭ (сумма кратных 3, количество отличников, максимум до нуля, количество максимумов до нуля)
Задачи/Необязательные задачи.md 5 задач на дополнительную тренировку: сумма цифр числа, второй максимум, ёлочки (оптимизация формулой), сумма до нуля, таблица умножения (вложенные циклы)

Источники — документы из папки docs: «Тема 1.4 Теория», «Практика 1.4» (сценарий блока), «Практика 1.4.1.3 / 1.4.2.3 / 1.4.3.3» (сценарии трёх уроков), «Практика 1.4 Задачи LMS» (эталонные решения). Условия, примеры и идеи решений взяты из них; формулировки приведены к виду, принятому в темах 1.2 и 1.3.

Чем проверено#

Все решения, которые лежат в основе задач (эталонные из LMS, разобранные на практике и ОГЭ/ЕГЭ, а также решения придуманных необязательных задач), скомпилированы g++ -std=c++17 -O2 и запущены на примерах из условий — 28 проверок, все прошли:

  • Подготовка Юры: 10 3 → 3, 5 5 → 1, 3 5 → 1
  • Палиндром: 123 → 131, 9 → 11, 99 → 101
  • Сумма положительных: 6 / 4 -3 8 0 -2 5 → 17
  • Первая высокая башня: 6 30 / 12 18 27 35 31 28 → 4, 3 100 / 10 20 30 → 0
  • Чередование: 2 7 8 5 4 → YES, 2 4 5 7 → NO
  • Лучший результат: 98 87 98 91 75 98 → 3
  • После максимума: 5 9 2 4 8 1 → 15
  • Сумма кратных 3: 10 → 18; количество отличников: → 4
  • Максимум до нуля: 17 25 11 42 39 0 → 42; количество максимумов: → 2
  • Сумма цифр: 1234 → 10, 7 → 7, 1000 → 1
  • Второй максимум: 3 9 4 9 7 → 7, -5 -1 -9 -3 → -3
  • Ёлочки: 1 → 5, 2 → 11, 2·10⁹ → 4000000006000000001 (проверка, что long long хватает)
  • Сумма до нуля: 4 7 2 0 → 13, 0 → 0
  • Таблица умножения: 3 → 1 2 3 / 2 4 6 / 3 6 9

Скрипт проверки и исходники лежат вне репозитория, в папке проекта scratch/1.4/ (run_tests.sh), чтобы не засорять курс.

Что не проверено#

  • В самих файлах темы решений нет (как и в темах 1.2 и 1.3) — проверялись решения, на которых основаны задачи, а не текст markdown.
  • Задачи в LMS не сверялись с реальным списком задач на платформе: взяты те две, что описаны в документе «Практика 1.4 Задачи LMS».
  • Ограничения по времени и памяти для задач из LMS в документах не указаны, поэтому в задачах на перебор (например, «Палиндром») отмечено, что полное решение требует строк — тема 1.6.
  • Markdown отрендерен не был: проверена только структура (парность фенсов, заголовки, таблицы).
JustCaptain слил(а) коммит e44b3dc ·