0: Всем привет на связи Артём Фролов, ваш преподаватель информатики, и в этом уроке мы полностью разберём 15 задание на кумир. Все задания брал из своего сборника. Называется сборник Фролова находится в telegram канале, но а мы без лишних слов сразу же начинаем.
1: Для выполнения задания тебе понадобится кумир. Его можно скачать с сайта нииси. Просто забиваешь в поиске скачать кумир и, пожалуйста, все готово, все манипуляции с роботом будем проводить через вкладку робот, например, можем создать новую обстановку произвольного.
2: Мера здесь её как-то отредактировать, например поставить стены вот так, да, и также закрашивать клетки. Также можно перемещать робота, зажав на нём левую кнопку мышки. Ну а мы с тобой давай повторим вот эту вот обстановку плюс - 1 в 1
3: Её не повторяем, потому что нас уверяют, что длины стен неизвестны. Это значит, что тут может быть проход не в 1 клетку, а в 10, например, да, тут, например, может быть, длины стен могут отличать.
4: Они могут быть не 5 клеток, а 10. Тоже самое. Да и ты не знаешь, как себя поведёт программа. Поэтому я советую все-таки произвольную обстановку сделать, похожую на эту. И давай с тобой так и сделаем. Делаем.
5: Стенку с проходом.
6: Ну, давай сделаем вот так и увеличим немножко наш, наше поле, прямоугольник. Все, мне кажется, столько хватит. И тут дальше мы продолжаем с вами стенку немножко вниз. Мне кажется, такого доста.
7: Будет. Я немножечко, наверное, сюда вот перееду, чтобы все было видно, и нажимаем робота вот сюда робот редактировать, чтобы сбросить редактирование, чтоб ничего больше случайно не задеть. Далее смотри, с левой стороны мы будем с тобой писать код.
8: Самом начале напишем использовать робот. Эта ключевая фраза помогает нам обозначить кумир и вот сказать, кого конкретно мы будем использовать потому что на самом деле здесь очень много исполнителей и робот, и чертёжник крутон вертун. Поэтому мы говорим
9: За кого конкретно будем играть? Это робот с большой буквы. Если вдруг написали неправильно, то можно перейти в вставка и использовать робот тоже самое далее алго это объявление алгоритма. Можно написать ему название, но это не обязательно на чико.
10: Здесь пишем все наши команды, начнём мы с тобой с самого базового цикла. Вся программа будет построена на циклах только потому, что нам неизвестна длина наших стен, и для того, чтобы записать цикл, мы будем использовать конструкцию нц и кц нц.
11: Это сокращение от слов начало цикла кц переводится как конец цикла 1 проверка, которую мы сделаем, что над нами будет находиться стена, вдоль которой мы будем идти, напишем пока начало цикла, пока что происходит.
12: Пока сверху нас сверху находится стена, то мы будем закрашивать клетку, потому что она уже подходит, она уже находится под стеной и будем идти вправо.
13: Сразу на ходу с тобой будем проходить команды, да, их тут всего чуть чуть закрасить влево, вправо, вверх вниз и проверки. Вот и все. Также вместо слова стена можно использовать несвободная. Это синонимы. И слово стена используется, ну, во всех вообще.
14: Сейчас современных кумир. И, кстати, в критериях экзамена, между прочим, прописано, что стена и несвободная это синонимы, поэтому без разницы, что использовать. Эксперты не будут вглядываться, что у вас тут стена. О, надо 0 баллов поставить такого.
15: Критерия не существует. Если вас учителя уверяют по другому, пусть пишут фипи, разговаривают. Ну, видимо, не знают. Ну что ж, давайте следующую проверку напишем. 1 написали, проверяем. Робот прошёл, для этого нажимаем на треугольник.
16: Сверху. Теперь давайте пройдём через этот проход сверху мы точно можем проверить, что сверху свободно. Поэтому давай так и напишем нц, пока сверху нас свободно мы можем пройти. Это значит, что там сверху проход и мы идём вправо. Кц.
17: Не забываем закрыть цикл, запускаем программу на треугольник и видим, что все проходит далее мы можем проверять либо что сверху стена, либо что справа свободно. Смотри, давай попробуем проверять, что сверху стена, тогда робот проверит. Так сверху стена.
18: Вправо, сверху стена, вправо, сверху стена вправо и попадёт в дтп. Могу показать пример. Опасный трюк. Итак, нц, пока сверху стена, иди просто вправо. Ну, естественно, он врежется. Видишь?
19: Кровища, все такое красное, все. Поэтому мы так не пишем. Лучше использовать, конечно, здесь проверку, что справа будет свободно. То есть пока я могу идти вправо, а надо мной точно стена, я точно закрашиваю и Иду, собственно, вправо. Давай.
20: Тестировать работает. Теперь давай пройдём вдоль правой стены вниз. Для этого напишем такую команду. Нц. Пока справа стена, либо давай попробуем, пока справа не свободна для разнообразия. Будем закрашивать и идти вниз.
21: Напомню, несвободная и стена это синонимы, поэтому все равно все прошли вниз, ну и теперь проверяем, что справа.
22: Свободно.
23: Тогда мы будем просто спускаться вниз и самая провер. Последняя проверка. Тоже самое вставим, что вставляли с вами до этого. Программу. Я запускаю, как вы видите, на каждом этапе, чтобы уж точно не ошибиться. Ну а теперь проверим нашего робота на других обстановках. Обстановку, если что.
24: Сохранять для ogg не нужно, поэтому мы создаём новую, и пусть это будет какая-нибудь единичная обстановка, такая супер маленькая, запускаем и видим, что все работает, теперь мы сохраняем саму программу, для этого мы нажимаем программа сохранить.
25: Так, и сохраняем на рабочем столе с названием 15 нижнее подчёркивание и наш номер Ким, этот номер варианта, он у вас будет написан на бланке ответов номер 1, либо в программе сверху нажимаем сохранить готово. Файлик сохранился, обстановку.
26: Сохранять не нужно это эксперты никогда в жизни не просят также можно сохранить вот эту информацию в файлики txt просто переходите в блокнот закидываете сюда весь алгоритм и сохраняете как txt тоже самое проверит все нормально в задании.
27: Это прописано. Переходим к следующей задаче. Задание. 2 было на огэ в прошлом году. Давай к нему перейдём. Робот, новая обстановка. Это мы с тобой все убираем.
28: Так, использовать робот. Думаю, напишите, да, сами, поэтому не буду это сейчас переписывать. Делаем узкий коридор 1 на 1 клетку, 1 на 1 клетку. Узкий коридор. Тут лишние клетки поставил. Думаю, не страшно. И робот наш.
29: Стартует снизу. Вся суть этого задания в том, что мы не просто проходим через этот коридор и закрашиваем все. А робот в коем то веке, в прошлом году должен был вернуться в исходную позицию. Видите, вернуться в исходную позицию. Обычно в этом задании на
30: Написано, что все равно, где становится робот, но здесь написано, что он должен возвращаться на картинке. Это тоже видно. Давайте так и сделаем. Итак, роботы здесь у нас находятся. Давай выйдем из режима редактирования и напишем этот нетрудный алгоритм по
31: Сверху свободно. Пока я могу идти вверх, я буду закрашивать клетку и идти вверх. В данном случае без разницы. Можно поменять местами и ну просто учесть последнюю клетку, там мы вручную просто пишем, закрасить, ну и возвращаем.
32: Вниз нц, пока снизу будет свободна, мы просто идём вниз.
33: Лишние клетки лучше не закрашивать. Вернее, лишние клетки нельзя закрашивать. Я имею ввиду, что одни и те же клетки лучше не закрашивать, потому что были эксперты в том году. Вот я лично знаю такие случаи, которые снижали за это баллы, хотя это не является снижением бал.
34: То есть, просто некомпетентные эксперты, к сожалению, такого по стране, ну, довольно много встречалось. Ну, правда, я общаюсь с другими экспертами, ну, как бы, понимаю, что и как, и я вам скажу, так что бывали такие случаи, к сожалению, проблемы, что
35: Кто-то засчитывал, поэтому лучше одни и те же клетки не закрашивать. Хотя это не является ошибкой на апелляции подаёте, вам то все оценят, все хорошо будет, все выполнили задание, да, даже тестировать. Хотя давайте протестируем на единичной обстановке. Вот так, бэм, бэм, бэм, сделаем и
36: И запускаем. Да, все хорошо, не врезается. Задание 3 наконец то пришло время разобраться с лестницей. Самый сложный тип 15 задания. Значит, у нас дана лестница 1 на 1 клетку. Робот находится около спуска к этой лестнице.
37: На 1 платформе он должен закрасить все клетки, начиная с 1 ступеньки лестницы, не на платформе, а вот на 1 ступеньке лестницы, как бы описывая форму этой лестницы, давайте её создадим. Нажимаю робот, новая обстановка, это я все убираю.
38: И немножечко, может быть, побольше увеличим обстановку. Давай сделаем количество столбцов. Ну, к примеру, 14. Ну, теперь делаем такую лестницу, значит она идёт вот так и потом начинает снижаться.
39: Кстати, к вопросу, что вот мне некоторые вопросы задают, говорят, Артём, а что если эксперт возьмёт и стенку вот так сделает вплотную к внешним границам? Все это же, это же надо проверки добавлять, ребят, все нормально, никто из экспертов не
40: Будет вот так вот вплотную вам ставить лестницу к стене. Естественно, в задании для этого прописана фраза на бесконечном поле. Это означает, что поле в теории бесконечное и эксперты точно будут отступать несколько клеток. Поэтому не волнуйтесь, никто
41: Вашу лестницу впритык к стене ставить, естественно, внешней не будет. У вас есть только 1 лестница в контексте задания. Итак, выходим из режима редактирования и пишем алгоритм. Здесь нужно будет просто додуматься до алгоритма. Давай я сделаю скриншот этой области.
42: Для этого нажимаю win shift ес и обсудим с тобой алгоритм значит смотри, он начинает закрашивать уже вот тут, то есть он каким-то образом понимает, что дальше есть спуск, что дальше есть ступенька, как он это понимает ну давайте с вами сравним вот эту позицию на ступеньке.
43: И, допустим, вот эту последнюю позицию на ступеньке, чем они отличаются, вот эти позиции на ступеньке. И вот эта вот тут, обрати внимание, он может спуститься вниз, тут он тоже может спуститься вниз, а тут что ему мешает спуститься вниз, на новую ступеньку?
44: Да, вот, допустим, я продолжу, что ему мешает спуститься стена с правой стороны, а значит, это и будет нашим условием. То есть, например, остановится он вот тут, на лесенке, да, то есть увидит, что вправо идти нельзя. Если вправо спуститься можно, значит, спуск есть, если
45: Право, Прохода нет, значит, мы останавливаемся вот тут. Давай так и напишем. Итак, цикл ц, пока.
46: Ну, во первых, давай спустимся на 1 ступеньку, потому что сейчас он пока ничего не делает, делаем вправо и вниз, вправо и вниз. Далее начинаем цикл нц пока справа.
47: Свободно. Ну вдруг уже сейчас надо останавливаться. Откуда мы знаем? Тогда мы будем закрашивать клетку, идти вправо. В целом здесь тоже закрашивать клетку. Итак, закрасить вправо, закрасить вниз.
48: Ну, в целом можно было бы ещё раз закрасить, написать, но я не буду одни и те же клетки закрашивать. Запускаем программу, видим, что все прекрасно работает. То есть, если бы я добавил ещё клеток, он бы дальше Шёл. Так что делаем дальше? Дальше нужно догадаться до алгоритма.
49: Здесь он будет немножко другой. Смотри, нам нужно закрасить вот эти вот клетки.
50: А вот эти клетки, что я предлагаю сделать? Смотри, обрати внимание, вот тут он закрашивает по 2 клетки в бок, то есть вот эти 2 клетки, вот тут 2 клетки, вот тут 2 клетки, а вот тут он закрашивает только 1. Поэтому эту клетку я предлагаю закрасить отдельно. Дайте её вот просто саму
51: По себе закрасим. Такая довольно выделяющаяся клетка в самом низу. Ну а дальше поднимемся на 1 ступеньку для подъёма. Итак, делаю вверх.
52: Вправо.
53: И тут начинаются наши новые проверки. Наш новый цикл давайте выполним, посмотрим он сейчас находится вот тут и тут мы начнём наши новые проверки. То есть он будет проверять, если дальше есть Подъём. То есть вот чем, например, вот эта ситуация конечная отличается вот от этой
54: Ступеньки. Ну, например, отличается тем, что вот тут дальше есть Подъём, и он это видит. Он видит, что стена идёт вверх, значит, лестница точно поднимается вверх, а тут подъёма дальше нет. И значит, он тут останавливается. То есть проверка будет нц пока
55: Справа несвободно, пока справа стена синонимы, я напишу несвободно. В этот раз многие учителя любят, когда я пишу несвободно. Дальше пишем закрасить влево, закрасить это.
56: Я просто, ну, так представляю, как я закрашиваю ступеньку, значит, вот эту закрасил, потом влево закрасил, возвращаюсь вправо, вверх и вправо, чтобы встать на новую ступеньку. Все не забываем написать кц, конец цикла и запус.
57: Пускаем нашу программу.
58: Е, все работает. Смотрите, все как швейцарские часы работает. Отлично. Значит, давай ещё попробуем на маленькой обстановке это все дело протестить. То есть, допустим, у меня лесенка прям, ну совсем маленькая вот такая вот, и посмотрим как
59: Себя поведёт, запускаем программу. Естественно, все тоже работает. Как мы видим, на начальных платформах он ничего не закрашивает, нижнюю клеточку закрасил все на единичной обстановке. Работает балл в кармане. Вернее 2 балла. За это задание мы получаем 2 балла.
60: Ну и последнее задание это задание 4, ещё 1 на циклы лестницы. Значит, у нас есть 3 клетки. Подъём, значит, 1 и 3. И нужно закрыть все эти клетки, где он становится опять то же, без разницы. Так?
61: Закрасить над ступеньками, не учитывая угловые клетки просто над лестницей новая обстановка. Создаём и делаем её размером 3 на 1. Давайте отступим даже от стеночки.
62: Вот такой примерно Подъём сделаем и сделаем небольшой спуск. Так пока что у меня получилось как на картинке. Я специально, чтобы сделать не как на картинке, сделаю немножечко побольше. Вот тут ещё 1 ступеньку добавлю и наш робот будет находиться вот здесь в этот раз он поднима
63: Наверх робот редактировать обстановку это я убираю и смотрим, что от нас просят.
64: Так, робот находится в левой клетке нижней ступеньки лестницы в левой клетке. То есть вот левая клетка, да, нижней ступеньки лестницы. То есть он 100% будет с краю. Просто иногда указано, что он находится в произвольном месте.
65: 1 ступеньки. Тогда бы мы просто с помощью цикла вышли бы за границу этой ступеньки и нашли бы её край. Итак, давай напишем наш алгоритм. Для начала мы будем идти до подъёма, наверное, да. То есть мы, наверное, проверим, есть ли там дальше лестница.
66: Я вот думаю, как бы лучше сделать, наверное, да, наверное, мы с тобой так и сделаем. Хотя, хотя можем сразу закрашивать, да, мы же знаем, что мы на ступеньке находимся с краю. То есть мы так и напишем, значит, закрасить, закрасить.
67: Блин, лучше, конечно, хорошая практика, когда мы сразу циклы вводим, давайте циклы введём. Итак, мы 2 раза напишем вправо, вправо. То есть я специально сейчас, ну да, можно было в 1 случай написать вручную, закрасить 1 ступеньку вручную. Но все-таки я сейчас так подумала, чт,
68: Хорошая практика все-таки писать изначально циклами, поэтому мы 2 раза подходим к стене, проверяем, что там есть Подъём, то есть говорим нц, пока справа стена, пока там есть Подъём, тогда мы будем закрашивать, идти влево.
69: Снова закрашивать, идти влево, закрасить и возвращаться на следующую ступеньку. То есть мы каждый раз вот будем становиться вот на такую позицию. Вот тут, вот тут, вот тут и проверять, что дальше есть Подъём, так закрасить.
70: Влево закрасить, вправо, вправо, вверх, вправо, вправо вправо.
71: Вроде как вот так. То есть наш цикл обязательно должен возвращать нашего робота на следующую ступеньку, на такую же позицию. То есть вот он у нас закрасил влево, закрасил влево закрасил, потом вправо, вправо, мы с тобой сделали вверх, вправо.
72: Вправо, ещё раз вправо не хватает. Сделаем ещё раз вправо запускаем цикл. Сейчас должно все работать. Да, все супер, все отлично. Ну и теперь нам нужно закрасить верхнюю часть лестницы. Мы 100% знаем, что мы находимся на ней, поэтому
73: Это даже можно закрасить вручную. Я думаю, что проблем здесь не будет. Итак, закрасить влево, закрасить влево, закрасить влево, вправо, вправо. Вот так с тобой напишем. Мы точно знаем, что мы находимся на вершине, поэтому можем так сделать. Отлично. Теперь ещё раз сделаем вправо.
74: Права вниз. И в этот раз я предлагаю сделать немножечко другой цикл. Он будет проверять, что дальше. Если дальше есть спуск, то есть он его будет с левой стороны проверять. Если дальше есть спуск вниз, стена слева, тогда будет закрашивать клетки, но можно было
75: Сделайте другую проверку. Например, можно проверять, что снизу не свободно. И если снизу есть спуск, ну, то есть снизу у нас есть стена, то тоже можно закрашивать. В данном случае без разницы, как напишите, так и нормально. Значит, я напишу, что слева стена.
76: Пока слева стена, ну там, где спуск находится, я буду закрашивать, идти вправо, закрашивать. Тут довольно такой нудный процесс закрасить вправо закрасить, вправо закрасить.
77: Потом я должен спуститься на следующую ступеньку, то есть вправо и вниз кц.
78: Запускаем. Вот такой большой алгоритм у нас получился, но, как ты видишь, все у нас работает. Напомню, что эксперты будут тестировать вашу обстановку на ваш алгоритм на 3 разных обстановках своих. Они придумывают свои обстановки, например,
79: Вот такую запускаем, смотрим. Все работает. Да, все работает отлично. Вот вплотную никто.