🏠 Главная
/
Теория
/
Тема 15. Создание алгоритмов (Робот или Python)
Тема 15. Создание алгоритмов (Робот или Python)
На ОГЭ это задание на выбор: написать алгоритм для исполнителя "Робот" (15.1) или программу на Python (15.2). Можно выбрать то, что умеете лучше. --- ## Часть 15.1: Исполнитель "Робот" (Кумир/КуМир) ### Что такое Робот Робот перемещается по клеточному полю, может закрашивать клетки и проверять, есть ли стена рядом. ### Основные команды: | Команда | Действие | |---------|---------| | `вверх` | Переместиться вверх | | `вниз` | Переместиться вниз | | `влево` | Переместиться влево | | `вправо` | Переместиться вправо | | `закрасить` | Закрасить текущую клетку | ### Проверки (используются в условиях): | Проверка | Что означает | |---------|-------------| | `сверху свободно` | Нет стены сверху | | `снизу свободно` | Нет стены снизу | | `слева свободно` | Нет стены слева | | `справа свободно` | Нет стены справа | | `сверху стена` | Есть стена сверху | --- ### Структуры управления в КуМир: **Цикл с условием (пока):** ``` нц пока справа свободно вправо закрасить кц ``` **Условный оператор:** ``` если сверху свободно то вверх иначе вправо все ``` **Цикл с количеством повторений:** ``` нц 5 раз вправо кц ``` --- ### Секреты успешного решения: > **Совет:** Пишите алгоритм так, чтобы он работал для поля **любого** размера. Не считайте конкретное число клеток — используйте цикл "пока". > **Совет:** Перед написанием кода нарисуйте на бумаге путь робота стрелками. Это поможет спланировать алгоритм. ### Пример: закрасить весь нижний ряд ``` нц пока справа свободно закрасить вправо кц закрасить ``` ### Пример: закрасить L-образную фигуру ``` нц пока справа свободно вправо кц нц пока снизу свободно вниз закрасить кц ``` --- ## Часть 15.2: Программирование на Python ### Типичная задача: Обработать последовательность чисел (ввод до нуля или до N чисел), подсчитать количество или сумму чисел по условию. --- ### Шаблон 1: Ввод до нуля ```python count = 0 # счётчик подходящих чисел total = 0 # сумма подходящих чисел while True: n = int(input()) if n == 0: # признак конца ввода break if n > 0: # ваше условие count += 1 total += n print(count) print(total) ``` ### Шаблон 2: Ввод N чисел ```python n = int(input()) # количество чисел count = 0 for i in range(n): x = int(input()) if x % 2 == 0: # ваше условие count += 1 print(count) ``` ### Шаблон 3: Поиск максимума с условием ```python max_val = None while True: n = int(input()) if n == 0: break if n % 3 == 0: # подходит по условию if max_val is None or n > max_val: max_val = n if max_val is not None: print(max_val) else: print("Таких чисел нет") ``` --- ### Полезные операции Python: | Операция | Описание | Пример | |----------|---------|--------| | `n % 2 == 0` | n чётное | | | `n % 2 != 0` | n нечётное | | | `n % k == 0` | n кратно k | `n % 5 == 0` | | `n // k` | Целочисленное деление | `7 // 2 = 3` | | `n % k` | Остаток от деления | `7 % 2 = 1` | | `abs(n)` | Модуль числа | `abs(-5) = 5` | | `n ** 2` | Возведение в степень | `3 ** 2 = 9` | --- ### Условия с числами: ```python # Кратность нескольким числам одновременно if n % 3 == 0 and n % 5 == 0: print(n) # кратно 15 # Принадлежит диапазону if 10 <= n <= 99: print("двузначное") # Первая цифра = 1 if str(n)[0] == '1': print("начинается с 1") ``` --- ### Что выбрать — Робот или Python? | Критерий | Робот (15.1) | Python (15.2) | |----------|-------------|---------------| | Нужно знать | Команды КуМир | Синтаксис Python | | Сложность | Визуальная логика | Программирование | | Время | Среднее | Быстро для знающих | | Ошибки | Можно проверить в КуМир | Нужно проверять вручную | > **Совет:** Если знаете Python и умеете писать циклы — выбирайте 15.2, это быстрее. Если нет уверенности — выбирайте 15.1 (Робота легче представить наглядно). --- ### Типичные ошибки в 15.2: - **Читать n как строку.** Всегда `int(input())` для чисел. - **Счётчик не сбрасывается.** Если несколько тест-кейсов — не забывайте обнулять переменные. - **Ошибка в условии break.** `if n == 0: break` должен стоять до обработки. - **Деление на ноль.** Если делите, проверьте что делитель ≠ 0.
Назад к списку
☰
OGE
Pro