21 апреля 2017

Кодвардс. Программирование. Урок №10

Здравствуйте, начинаем
Урок 10. Как найти оптимальное решение (продолжение)
Зачем использовать циклы в программах и как это экономит силы.
Цели занятия:

  1. Закрепить понятие «оптимизация».
  2. Научиться определять оптимальный путь решения задачи.
  3. Научиться применять принципы оптимизации к выполненным заданиям, улучшая их. 
  4. Научиться определять, в какой части программы оптимально применять цикл, а в какой можно обойтись простым блоком команд.

Термины: повтор, цикл, компьютер, робот, оптимизация, оптимальный путь. 
Команды: move, rotate, left, right, load, put
Объект: crane 
Оператор цикла: loop…end

На прошлом уроке мы обсуждали, что такое слово оптимизация. Давайте попробуем сыграть в игру «Наполни коробку». Вы можете проделать это дома практически. Возьмите коробку или кастрюлю, или любую ёмкость. Теперь возьмите яблоки, орехи и сахар. Можно взять и что-то другое подобное по размеру. Нужно как можно больше предметов уложить в коробку. В какой последовательности нужно класть предметы в коробку, чтобы уместилось как можно больше? Попробуте поэксперементировать.
Оптимальная последовательность наполнения от большего объекта к меньшему, т.к. орехи будут заполнять пустоты между яблоками, а сахар пустоты между орехами. 
Нарушение этого порядка позволит положить в коробку меньше предметов.
Так и в программировании. Оптимальное построение алгоритма очень важно, т.к. помогает более эффективно решать роботам поставленные задачи.
Вы разобрались с оптимальным решением. А теперь давайте посмотрим на картинку и попробуем определить, как двигаться роботу и какую программу можно написать, чтобы он перевез все фильтры.

Я думаю, что вы догадались, здесь нужно применить оператор цикла: loop…end. Потому что кран будет несколько раз выполнять одно и то же действие.
А как бы вы поступили здесь?
Почему в этой ситуации мы не можем сразу применить цикл?
Всё верно. Кран в данной ситуации не может сразу приступить к повторяющимся командам. Он должен сначала подъехать к контрольной метке, к чекпойнту. Это значит, что оптимизируя свои программы, вы не должны всегда стремиться сделать их цикличными, а должны стараться в нужном месте внедрить цикл ради экономии времени записи и чтения. Вы можете сначала выполнять какие-то линейные программы, потом включить циклическую, или наоборот, после цикла начать выполнять линейные задачи.
А теперь давайте попробуем в мире Кодвардс разобраться, где нужно применять цикл, а где нет. По машинам! Нас ждёт важная миссия!
Нам предстоит полностью восстановить систему опреснения на насосной станции. На прошлом уроке мы успели не всё. Сегодня задачка посложнее. Кроме того, что нужно поставить новые фильтры, нужно будет утилизировать старые.
Вам надо пройти уровни 54-59 и дополнительный17 уровень.
Спасатели, вперёд!!!!

4 комментария:

  1. Надежда Владимировна, здравствуйте!
    Я не могу пройти задание 54. Я не могу, понять куда нужно отвозить фильтры.
    Спасибо! Лиза Голубева.

    ОтветитьУдалить
    Ответы
    1. Здравствуй, Лиза. Код проверила, у меня программа тоже выдаёт ошибку в 8 пункте, хотя по сути все команды правильные и эту часть кода вы не писали, она уже была прописана. Раньше никто не жаловался, это странно, возможно ли чтобы такая ошибка была только на некоторых аккаунтах, не знаю. Написала программистам, ждём ответа. Пока работай дальше.

      Удалить
    2. Спасибо за ответ, Надежда Владимировна!
      Будем ждать ответа ))

      Удалить
    3. Как выяснилось, у тех, кто этот уровень прошёл раньше без проблем, сегодня тоже даёт ошибку. Видимо, какой-то сбой произошёл. Как исправят, я сообщу.

      Удалить

Буду признательна, если Вы поделитесь своими мыслями.
ПОДПИСЬ К КОММЕНТАРИЮ.
- В окошке комментария напишите то, что хотели.
- Нажмите на стрелку в окошке "Подпись комментария".
- Выберите Имя/URL
- Наберите своё имя, строчку URL можете оставить пустой.
- Нажмите "Продолжить".
- Нажмите "Публикация".
ВСТАВИТЬ КАРТИНКУ В КОММЕНТАРИЙ:
[im#]ссылка на изображение[/im] - картинка по ширине комментария
[im]ссылка на изображение[/im]- картинка в исходном размере