[ЗВУК] Продолжаем изучение алгоритмических конструкций и переходим к циклам. Мы с вами знаем уже, что циклов в языке Паскаль есть три разновидности. Первый цикл — от... до, или так называемый цикл со счетчиком. Его блок-схема приведена ниже. Давайте на нее посмотрим. Указывается переменная цикла, затем ее начальное и конечное значение, и дальше в квадратных скобках показан шаг. Квадратные скобки обозначают, что шаг может как присутствовать, так и отсутствовать, то есть шаг может не указываться. Затем происходят действия, и они будут повторяться. На псевдокоде этот цикл выглядит так: цикл от переменная цикла: присвоить <начальное значение> до <конечное значение>. И если есть шаг, то тогда ключевое слово «шаг» и <приращение>, то есть шаг, с которым будет изменяться значение переменной цикла. Затем внутри цикла находятся действия, и завершается все это ключевым словом кц — конец цикла. Обозначения, которые мы здесь используем, приведены ниже в самом конце слайда. Давайте посмотрим, как работает этот цикл. У нас есть переменная цикла, которая перебирает все значения от начального до конечного включительно, и шаг, с которым изменяется наша переменная, указывается отдельно. Давайте посмотрим на схему, как это может выглядеть. Если мы рассмотрим положительное приращение, то наша переменная сначала принимает начальное значение, затем происходит проверка того, что конечное значение не достигнуто, потом происходят действия, и значение этой переменной будет увеличиваться. И процесс этот будет продолжаться до тех пор, пока мы не придем к конечному значению. Для него действия будут тоже выполнены, а затем переменная цикла увеличится еще раз, выйдет за указанный диапазон, и на этом цикл наш завершится. Это если приращение у нас было положительным. Если приращение у нас отрицательное, то будет происходить все то же самое, но значение переменной цикла будет не увеличиваться, а уменьшаться. Таким образом, если мы с вами рассматриваем положительное приращение, положительный шаг, то наше начальное значение должно быть обязательно меньше или равно конечному. При отрицательном шаге всё наоборот. Теперь продолжаем изучение циклов и рассмотрим еще две разновидности циклов, где у нас с вами нет специальной переменной цикла, а известно только, при каком условии наш цикл будет продолжаться или прекращаться. Первый из этих циклов — это цикл-пока, он же цикл с предусловием. В виде блок-схемы мы можем изобразить его работу следующим образом: сначала рассматривается условие. При истинном условии будут выполняться некоторые действия, и затем происходит возвращение на проверку условия. Снова проверяется условие, если оно по-прежнему истинное, то еще раз будут выполняться те же самые действия. И опять проверка до тех пор, пока условие не станет ложным. Если мы с вами посмотрим на псевдокод, то эта конструкция выглядит так: цикл-пока, затем <условие> потом <действия>, и заканчивается все это ключевым словом конец цикла. Выполнение нашего цикла будет продолжаться, пока условие остается истинным, и как только оно станет ложным, так сразу наш цикл завершится. У этого цикла имеются две особенности. Во-первых, действия, которые находятся в этом цикле, могут не выполниться ни разу в том случае, если наше условие будет изначально ложным. И во-вторых, наш цикл может оказаться бесконечным в том случае, если условие постоянно является истинным. Это явление, когда цикл оказывается бесконечным, иногда называют зацикливанием. То есть наша задача, записывая такой цикл, позаботиться о том, чтобы условие в конце концов обязательно стало ложным, чтобы цикл непременно завершился. Теперь посмотрим на цикл с постусловием. Сначала выполняются действия, а затем происходит проверка условия. После этого при ложном условии снова выполняются действия, а при истинном условии выполнение цикла завершается. Если мы с вами рассмотрим псевдокод, соответствующий этому циклу, то мы видим, что у нас с вами сначала идет ключевое слово цикл, затем расположены <действия> с отступом. Затем после слова до показано <условие>, и завершается все это ключевым словом конец цикла. Здесь выполнение цикла продолжается, пока наше условие остается ложным, и как только оно станет истинным, так сразу процесс завершится. Возникает вопрос: а есть ли у этого цикла такие же особенности, как были у предыдущего? Да, есть. Во-первых, мы с вами видим, что действия в этом цикле обязательно выполняются хотя бы один раз, потому что всё начинается именно с действий. Затем мы с вами также понимаем, что наш цикл может также оказаться бесконечным в том случае, если наше условие цикла всегда будет ложным. То есть наша задача — позаботиться о том, чтобы наш цикл обязательно завершился. И мы с вами можем, если подумаем, обнаружить совершенно неожиданную вещь, что из этих циклов с предусловием и с постусловием в принципе можно было оставить только один, потому что эти циклы являются взаимозаменяемыми. Давайте посмотрим, как можно заменить один цикл на другой, и наоборот. Начнем мы с вами с того, что рассмотрим цикл-пока. Цикл-пока <условие>, дальше <действия> и дальше конец цикла. Заменим этот цикл с предусловием на цикл с постусловием. Это будет выглядеть так: если наше условие истинно, то начинается наш цикл с постусловием, то есть мы пишем этот цикл, затем показываем действие, потом пишем до и берем условие, противоположное исходному. То есть таким образом, если у нас условие истинно, то мы в этот цикл входим точно так же, как это выглядит в цикле-пока. И затем мы продолжаем действия, и признаком того, что этот цикл завершится, будет то, что условие станет ложным. Теперь попробуем наоборот. Рассмотрим цикл с постусловием. Мы понимаем, что в этом цикле действия обязательно будут выполняться хотя бы один раз. То есть первое действие мы с вами должны вынести отдельно из нашего цикла-пока. Затем мы записываем цикл-пока, но опять заменяем условие на противоположное. То есть будет цикл-пока не <условие>, и затем будут у нас записаны те же самые действия и потом ключевое слово конец цикла. То есть мы с вами можем легко выбирать из этих циклов один, потому что просто заменить цикл-пока на цикл-до, и наоборот. [ЗВУК] [ЗВУК] [ЗВУК]