Здравствуйте! Сегодня мы с вами поговорим о структурном программировании. Что такое структурное программирование? Это методология облегчающая создание больших программ. Проблема эта возникла не вчера, не 10 лет назад. Большие программы появились еще в середине 20-го века и тогда была создана эта методология. В середине 70-х годов, даже раньше, в конце 60-ых, ее создали Эдсгер Дейкстра, Тони Хоар и Никлаус Вирт, создатели языка Паскаль. Что же, собственно, представляет из себя структурное программирование? Давайте, начнем с других вещей. На чем концентрируется начинающий водитель? На чем он концентрируется? Фары включил или нет? Сел за машину. Или, где педаль сцепления, сейчас надо нажимать или нет? Как сейчас не врезаться, что вообще делать? Разрешен ли обгон, не превышаю ли я сейчас скорость? В общем, он занимается техническими моментами в течение всей поездки и даже в момент, когда поездка заканчивается у него: а можно ли тут останавливаться? Понимаете? То есть вот эти технические моменты программирования, которые неизбежно возникают, они захватывают его полностью все внимание и, конечно же, он врежется, приедет не туда, проскочит поворот. Все известные проблемы у всех, кто учится водить, вот они все всплывают. У начинающих программистов та же самая проблема. Они сконцентрированы на синтаксисе языка. Так вот методология это то, что позволяет приподняться над, собственно, синтаксисом. О чем думает опытный водитель? Я продолжу эту аналогию. В первую очередь он думает: "А какая цель поездки? Надо ехать или нет?". Есть такое представление, идеальное изобретение, которого нет, а функция его выполняется, может быть не надо писать эту программу или какой-то кусок программы вообще. Да? Нужно правильно сформулировать цель. Дальше. А нужно ли куда-то заехать по пути, промежуточные пункты, и как это сделать оптимально? Понимаете, да? Можно сделать это очень по разному. От последовательности прохождения пунктов зависит ваша скорость и результат поездки. Ну и, в принципе, как оптимально спланировать маршрут. Причем, может быть, не с точки зрения скорости. Есть начинающий водитель, который вошел в раж, он умеет, он молодец, но есть проблема более высокого уровня, проблема безопасности и комфорта движения, они намного, и надёжность, то есть даже вот эти вещи безопасность движения, комфорт движения и надежность достижения цели. Потому что мы ее точно достигнем. Вот эти вещи крайне важны и именно они обеспечиваются парадигмами программирования. И структурное программирование это первая методология в порядке очередности изложения, которую вы узнаете, которая в этом помогает. Давайте, посмотрим на содержание. Принципы структурного программирования. Откажитесь от использования goto. Стройте программу из вложенных конструкций. Это последовательная операции, это ветвления, альтернатива или безальтернатива, и циклы. И оформляйте повторяющиеся фрагменты программы в виде функций или еще их называли, процедуры, подпрограммы. В Python — это функции. Но вы не можете использовать goto, потому что его нет. Вы вынуждены строить программу из вложенных конструкций, циклов, ветвлений и последовательности действий. И вы умеете писать функции, знаете, что это такое и повторяющиеся участки кода, конечно, будете оформлять в виде функций, которые потом будете вызывать. Вам может показаться, Тимофей Федорович может вообще рассказывает о чем-то из прошлого века, мы живем в 21-м веке, зачем нам вот эти вещи? Оказывается, в структурном программировании самое главное это последний пункт разработки программы ведется пошагово методом сверху вниз. И вот этот метод не устарел и он является некоторой базой, вхождением в объектно-ориентированное проектирование, не программирование, а проектирование, то есть все равно а как разрабатывать? Сверху вниз. Что это значит, вы узнаете чуть-чуть позже.