virgiliys
В принципе я сам дошёл до того что надо использовать два счётчика и смог сделать так чтобы робот красил нужные клетки, но он у меня постоянно врезался в стену.
virgiliys
Решение и блок схема понятны, непонятно с какой стороны надо начинать думать чтоб до этого дойти
Как составить алгоритм:
1. Написать словесное описание алгоритма.
2. По словесному описанию из первого пункта нарисовать точную блок-схему. Отлаживать её, пока она не станет оптимальной. Если она получилась сразу запутанной, то надо вернуться на первый пункт и переделать его; затем снова перейти ко второму пункту и делать всё заново.
3. По оптимальной и незапутанной блок-схеме из второго пункта нужно написать псевдокод. Отлаживать его, пока он не станет оптимальным.
4. По оптимальному псевдокоду из третьего пункта написать код на языке программирования. Язык при этом можно подбирать любой.
Вот проходя все эти пункты один за другим (сначала медленно на листочке бумаги, пока учишься, а потом уже быстро в голове), ты и научишься соображать.
Этот алгоритм ещё простой и его можно понять и представить в голове весь. Но есть алгоритмы, которые очень запутаны (типа шифрование в браузере через сертификаты) и ты их просто не представишь в голове из-за задействования множества деталей в одно и то же время (они просто не помещаются в голове одновременно). Вот в таких случаях и приходят на помощь эти стандартные пункты составления алгоритма от идеи до реализации.
Есть ещё такой секрет. Иногда ты не знаешь, как сделать алгоритм какой-то, так как он очень сложный. Тогда ты задаёшь себе вопрос “я знаю, как это сделать? сделать то, что нужно сделать в этой задаче”. Если ты понимаешь, как это сделать, то ты
анализируешь то, как это делаешь ты сам. То есть ты анализируешь своё мышление и
выявляешь правила, которыми ты пользуешься, чтобы решить эту задачу. После этого ты эти правила включаешь уже в алгоритм, разрабатываемый для компьютера. А секрет заключается в том, что мозг человека тоже использует алгоритмы. Мозг человека - это такой очень быстрый и продвинутый компьютер. И ты не можешь просто взять и найти на улице человека и откуда-то из космоса понять, что этот человек стоит в той части улицы. Это всё происходит по алгоритмам, которые закладывались после рождения и дошли до автоматизмов. Поэтому они часто незаметны и тебе кажется, что ты сам понял, как решать задачу, хотя на самом деле это просто мозг очень быстро отработал по алгоритмам. Вот эти алгоритмы и надо доставать из этой незаметной области мышления, задавая себе вопрос “как я это понял?” каждый раз, когда ты встречаешь какую-то деталь в задаче и справляешься с ней.
Ну, на примере этой задачи ты просто задай себе вопрос “а я могу эти клетки закрасить таким образом, как указано, и увидеть, где там стена в конце и не залезть на неё?”. Ты получаешь ответ “да” и дальше ты анализируешь:
сначала “а как я понял, что я не должен закрашивать первую клетку?”
потом “а как я понял, что я могу закрасить вторую клетку?”
потом “а как я понял, что третью клетку тоже надо закрасить?”
потом “а как я понял, что четверётую клетку не надо закрашивать?”
и так далее.
Главное при этом учитывать, что ты не можешь ничего понимать из космоса. Всё понимается по каким-то правилам, вполне определённым. Просто мозг не всегда осознанно думает о чём-то. Многие вещи просто подсознательно выполняются и ты их просто не замечаешь, хотя они есть. Это так же как и при чтении: когда ты читаешь слово с буквой A, ты не думаешь о том, что в этом слове есть буква А. Когда-то давно, в первом классе школы, ты думал об этом, но сейчас этого нет, оно происходит без участия сознания. Но ты всегда можешь проанализировать “а как я понял, что в этом слове буква А есть?”. И так ты увидишь, что сначала ты прочитал её очертания; потом распознал этот набор чёрточек; потом вспомнил, что они вместе означают; потом вспомнил, как эта буква звучит.
tags: algorithm steps