Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритмическая конструкция «Цикл»Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Циклической (или циклом) называют алгоритмическую конструкцию, в которой некая, идущая подряд группа действий (шагов) алгоритма может выполняться несколько раз, в зависимости от входных данных или условия задачи. Группа повторяющихся действий на каждом шагу цикла называется телом цикла. Любая циклическая конструкция содержит в себе элементы ветвящейся алгоритмической конструкции. Рассмотрим три типа циклических алгоритмов: цикл с параметром (который называют арифметическим циклом), цикл с предусловием и цикл с постусловием (их называют итерационными). Арифметический цикл В арифметическом цикле число его шагов (повторений) однозначно определяется правилом изменения параметра, которое задается с помощью начального (N) и конечного (К) значений параметра и шагом (h) его изменения. Т.е., на первом шаге цикла значение параметра равно N, на втором - N + h, на третьем - N + 2h и т.д. На последнем шаге цикла значение параметра не больше К, но такое, что дальнейшее его изменение приведет к значению, большему, чем К. Пример 6.4. Вывести 10 раз слово «Привет!». Параметр цикла обозначим /, он будет отвечать за количество выведенных слов. При / = 1 будет выведено первое слово, при / = 2 будет выведено второе слова и т.д. Так как требуется вывести 10 слов, то последнее значение параметра / = 10. В заданном примере требуется 10 раз повторить одно и то же действие: вывести слово «При- 301вет!». Составим алгоритм, используя арифметический цикл, в котором правило изменения параметра / = 1,10,1. Т.е. начальное значение параметра /= 1; конечное значение/= 10; шаг изменения И = 1. На рис. 6.7 представлена блок-схема алгоритма решения данной задачи.
Привет! J ( Конец J Рис. 6.7. Блок-схема к примеру 6.4 Цикл с предусловием Количество шагов цикла заранее не определено и зависит от входных данных задачи. В данной циклической структуре сначала проверяется значение условного выражения (условие) перед выполнением очередного шага цикла. Если значение условного выражения истинно, исполняется тело цикла. После чего управление вновь передается проверке условия и т.д. Эти действия повторяются до тех пор, пока условное выражение не примет значение ЛОЖЬ. При первом же несоблюдении условия цикл завершается.
Рис. 6.8. Блок-схема цикла с предусловием Блок-схема данной конструкции представлена на рис. 6.8'двумя способами: с помощью условного блока а и с помощью блока границы цикла б. Особенностью цикла с предусловием является то, что если изначально условное выражение ложно, то тело цикла не выполнится ни разу. Пример 6.5. Одним из наиболее распространенных алгоритмов, встречающихся в литературе по информатике, является алгоритм Евклида -алгоритм нахождения наибольшего общего делителя двух натуральных чисел тип (рис.6.9).
Рис. 6.9. Блок-схема алгоритма Евклида 303Опишем его на псевдокоде: 1. Ввод натуральных чисел тип. 2. Пока т t- n делать. 2.1. Если т>п, то т=т — п, иначе п— п — т. 2.2. Переход к шагу 2. 3. Вывод т (найденный наибольший общий делитель). 4. Конец. Цикл с постусловием Как и в цикле с предусловием, в циклической конструкции с постусловием заранее не определено число повторений тела цикла, оно зависит от входных данных задачи. В отличие от цикла с предусловием, тело цикла с постусловием всегда будет выполнено хотя бы один раз, после чего проверяется условие. В этой конструкции тело цикла будет выполняться до тех пор, пока значение условного выражения ложно. Как только оно становится истинным, выполнение команды прекращается. Блок-схема данной конструкции представлена на рис. 6.10 двумя способами: с помощью условного блока а и с помощью блока управления б.
Тело цикла I Условие а Рис. 6.10. Блок-схема цикла с постусловием Пример 6.6. Составим алгоритм игры «Угадай число». Первый игрок вводит задуманное число от 1 до 50. Второй (угадывающий) вводит другое число и получает один из ответов: «Ваше число меньше», «Ваше число больше» или «Вы угадали». Игра продолжается до тех пор, пока второй игрок не угадает задуманное число. Составляя алгоритм игры, обозначим х - число, задуманное первым игроком, у — число, вводимое на очередном шаге вторым игроком. Блок-схема алгоритма приведена на рис. 6.11. С Начало J I / Ввод х /
Рис. 6.11. Блок-схема игры «Угадай число» (пример 6.6) 305Рассмотрим стандартные циклические алгоритмы, такие как вычисление суммы и подсчет количества элементов, удовлетворяющих некоторому признаку. Суммирование. Пример 6.7. Для заданного натурального числа N вычислить сумму 2 3 N Подсчет суммы осуществляется следующим образом. Сначала счи- ' таем, что сумма S есть первое слагаемое (S = 1). Далее к первому сла- 1 гаемому прибавляем второе, получаем новую сумму 5 = 1 + —. Но на предыдущем шаге S = 1, поэтому можно записать S = S + —. к сумме двух первых слагаемых прибавляем третье 5 = 1 + — + -. Но на 1 1 предыдущем шагу 5 = 1 + —, поэтому можно записать S = S + - и т.д. 2 3 Получили следующую последовательность шагов: 1) S = 1. 2) 3) 2" 3' Запишем /-и шаг, опираясь на два предыдущих: i Выясним правило изменения номера шага /. В описанной последовательности / = 1, 2, 3 и т.д. В сумме N слагаемых, поэтому последним значением / будет N. Отсюда нашли правило изменения / = 1, N, 1. Сверяя инструкции каждого шага, находим, что выражение на первом шаге отличается от других (однотипных). Чтобы оно стало таким как все, в сумму надо добавить S, т.е. записать: S = S + 1 (учи- 1 тываем, что 1 = 7)- Отсюда для S возникает необходимость задания начального значения, но такого, чтобы S + 1 = 1 (таким должно быть выражение для / = 1), этим числом является нуль, при сложении с нулем сумма не меняется. Так как известно число шагов цикла, то для построения алгоритма используем цикл с параметром /. Алгоритм на псевдокоде: 1. Ввод N.. 2. S = 0. " 3. Для / = 1, N, 1 повторить: 3.1. S = 4. Вывод S. 5. Конец. Блок-схема алгоритма приведена на рис. 6.12. Сформулируем правило суммирования: • начальное значение суммы S = 0; • в теле некоторой циклической конструкции выполнить команду: S = S + <слагаемое>. Упражнения для самостоятельной работы: Для заданного натурального числа N вычислите суммы N-сла-гаемых: 12 3 1. - + - + - +...; 2 3 4 12 3 2. - + - + - +...; 2 4 6 3073. sin 1 sin 2 sin3 + 1 + 2 1+2+3 +... ( Начало J S = 0
s = s + - ( Конец j Рис. 6.12. Алгоритм вычисления суммы Подсчет количества элементов. Произведем счет: 1, 2, 3, 4, 5 и т.д., этот процесс является циклическим, так как каждый раз мы совершаем одно и то же действие: предыдущее натуральное число увеличиваем на единицу. Обозначив через К - счетчик искомых элементов, легко получить правило счетчика: К = К + 1 (на очередном шаге цикла). Но при первом подсчете должны получить значение К, равное единице, а до начала счета счетчик должен быть пуст, следовательно, начальное значение счетчика равно нулю. Правило счетчика: • начальное значение счетчика К = 0; • в теле некоторой циклической конструкции выполнить команду: К = К + 1. Пример 6.8 Задано 20 чисел. Сколько среди них чисел, больших 10? Псевдокод: 1. К = 0 {Счетчик чисел, больших 10}. 2. Повторить 20 раз (для / = 1, 20, 1). 2.1. Ввод числа х. 2.2. Если х > 10, то К = К+ 1. 3. Вывод К. 4. Конец. Блок-схема алгоритма приведена на рис. 6.13. Замечание: в фигурных скобках {....} принято помещать комментарии к алгоритму.
Рис. 6.13. Алгоритм примера 6.8 309В каждом из рассмотренных выше примеров использовалась одна циклическая конструкция. В реальных задачах может встретиться любое число циклов. Обозначив цикл квадратной скобкой, схематично представим варианты взаимного расположения циклов (рис. 6.14). а - последовательные б — вложенные в - запрещенные Рис. 6.14. Расположение циклов Алгоритм любой задачи может быть представлен как комбинация представленных выше элементарных алгоритмических структур, поэтому данные конструкции: линейную, ветвящуюся и циклическую, называют базовыми. Рекурсивный алгоритм Рекурсивным называется алгоритм, организованный таким образом, что в процессе выполнения команд на каком-либо шаге он прямо или косвенно обращается сам к себе.
|
|||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-08-15; просмотров: 2708; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |