Форум сайта python.su
py.user.next
а по 30 задаче нет какой-нибудь подсказки? Я уже находил ваше решение выше, но вообще ничего не понял. Нельзя ли как-то подробнее объяснить? И, если это возможно, подскажите какую-нибудь литературу для более подробного изучения программирования в целом, а не только Python
Отредактировано Konstantin32 (Окт. 30, 2019 21:08:48)
Офлайн
Konstantin32Здесь делал.
а по 30 задаче нет какой-нибудь подсказки?
Konstantin32Ну, этот курс у Тимофея из МФТИ как раз и есть для новичков. Я просто к тому, что если тебе дать какую-нибудь книгу по программированию, где объясняется, как можно много чего делать по-умному, ты её просто не поймёшь. Программирование - это сложная многоступенчатая фигня, где на сложных уровнях нужно знать уже весь материал простых уровней. Это как в математике: если умножать числа не умеешь, то и решать уравнения не сможешь, так как там постоянно нужно умножать; при этом умножение чисел тоже не за один день осваивается; это планомерная систематическая работа. А что касается программирования, тут тоже нужна подготовительная работа типа прохождения сначала какого-нибудь простенького курса или даже нескольких простеньких курсов, потом прохождение курса посложнее или нескольких таких курсов посложнее, а потом уже можно добраться до прохождения сложного курса, в результате прохождения которого ты и получишь первые ощутимые результаты.
И, если это возможно, подскажите какую-нибудь литературу для более подробного изучения программирования в целом, а не только Python
Отредактировано py.user.next (Окт. 31, 2019 03:28:57)
Офлайн
Доброго времени суток! Вопрос по 27 задаче. Выше почитал решение и рекомендацию по поводу блок схемы. В принципе я сам дошёл до того что надо использовать два счётчика и смог сделать так чтобы робот красил нужные клетки, но он у меня постоянно врезался в стену.
Решение и блок схема понятны, непонятно с какой стороны надо начинать думать чтоб до этого дойти
Офлайн
virgiliys
В принципе я сам дошёл до того что надо использовать два счётчика и смог сделать так чтобы робот красил нужные клетки, но он у меня постоянно врезался в стену.
virgiliysКак составить алгоритм:
Решение и блок схема понятны, непонятно с какой стороны надо начинать думать чтоб до этого дойти
Отредактировано py.user.next (Ноя. 11, 2019 00:27:20)
Офлайн
py.user.next
Спасибо за развёрнутый ответ! Хм.. слышал что многие программисты довольно часто работают в обычной тетради. Кажется теперь начинаю понимать почему.
Офлайн
Моё решение 30 задачи. Вроде всё работает, но хотелось бы понять что тут не оптимально и в каких местах можно проще/лучше/рациональнее
len = 1 while(wall_is_beneath() == 0): move_down() len += 1 while(len > 1): for i in range(len - 2): move_up() fill_cell() move_up() for i in range(len - 2): move_right() fill_cell() move_right() for i in range(len - 2): move_down() fill_cell() move_down() for i in range(len - 2): move_left() fill_cell() move_up() len -= 2 while (wall_is_beneath() == 0): move_down() while (wall_is_on_the_left() == 0): move_left()
Отредактировано virgiliys (Ноя. 11, 2019 21:21:38)
Офлайн
virgiliysК тому заданию подпрограммы уже пройдены в этом курсе, поэтому их можно использовать.
Почитал решение уже после того как выложил, вижу что очень похоже, только без использование подпрограммы
virgiliysНу, вот как раз неоптимально то, что программа твоя заполняет поле только одним образом и весь код на это завязан. Стоит чуть-чуть поменять условие закрашивания и твоя программа сломается и будет неприменима. И тебе придётся для нового условия писать новую программу целиком. А потом условие ещё раз поменяется и всё опять повторится. Так ты потратишь кучу времени. (В реальном мире ты вообще это сделать не сможешь, потому что там программы огромные и пишутся месяцами. Ты просто не сможешь физически многомесячную программу написать заново.)
что тут не оптимально и в каких местах можно проще/лучше/рациональнее
Отредактировано py.user.next (Ноя. 12, 2019 00:53:46)
Офлайн
py.user.next
Понял, лучше писать код для общего случая, если это возможно. Ещё раз спасибо.
Вопрос не по теме и немного глупый. У меня на данный момент очень мало времени есть на учёбу(работа + семья), на работе как понимаешь читать книги я не могу, но хоть целый день могу ходить в наушниках, что и делаю собственно. Вот. Может есть что посоветовать? Желание учиться есть и большое(где оно раньше было лучше не спрашивать) Я кроме как прокачать немного английский ничего дельного не придумал и не нашёл.
Отредактировано virgiliys (Ноя. 13, 2019 00:11:40)
Офлайн
virgiliysНадо каждую функцию (подпрограмму) в коде писать для общего случая, чтобы её буквально можно было взять из одного кода и перенести в другой без всяких изменений. Для этого есть даже специальная теория про ослабление предусловий и усиление постусловий. Например, если тебе нужно написать подпрограмму, которая считает карандаши, то ты пишешь подпрограмму, которая считает вообще любые объекты (ослабление предусловия) и используешь её, чтобы посчитать карандаши. Кажется “зачем это делать и переутруждать себя?”. Но потом, через год, у тебя возникнет задача посчитать собак, и вместо того, чтобы писать подпрограмму для подсчёта собак, ты сразу возьмёшь эту написанную подпрограмму для подсчёта вообще любых объектов и сразу её используешь, и она посчитает собак, хотя, когда она только писалась, ты и не подозревал, что ею будут считать не карандаши и не сегодня, а собак и через год вообще в другой программе. Так ты пишешь каждую подпрограмму, в результате чего у тебя постоянно появляются полезные подпрограммы, которые можно напрямую брать из разных программ, чтобы собрать из них новую программу. Так ты можешь программу, которую бы писал с нуля целый месяц, собрать из готовых подпрограмм за один день.
Понял, лучше писать код для общего случая, если это возможно.
virgiliysЧтобы программировать, надо программировать. Послушать книжку и получить просветление не прокатит. Так же как и не прокатит пойти и пройти полуторагодовые курсы в Бауманке или на Скилбоксах каких-нибудь. Так что в таких условиях сможешь лишь научиться “ключи подавать”.
на работе как понимаешь читать книги я не могу, но хоть целый день могу ходить в наушниках, что и делаю собственно.
Офлайн
py.user.next
Печально. Значит будем учиться “подавать ключи”. На чтение и практику у меня максимум 2-3 часа в день,
сейчас вот читаю “Грокаем алгоритмы”, а из практики задания по роботу закончил.
Отредактировано virgiliys (Ноя. 13, 2019 21:02:16)
Офлайн