Gazmarket59.ru

Газ Маркет 59
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Циклический алгоритм со счетчиком примеры

Разветвляющийся или ветвящийся алгоритм – это алгоритм, в котором последовательность выполнения операций зависит от определенных условий.
Если в алгоритме присутствует «действие 1» и «действие 2» (то есть ветвь 1 и ветвь 2), то это разветвляющийся алгоритм с полной альтернативой (рис.2). Если же вместо «действия 2» предусмотрен переход к выполнению операции «n», которая находится в общей (основной) ветви, то такая форма записи называется неполной альтернативой (рис.3). Во втором случае (то есть в случае неполной альтернативы) в одной из ветвей алгоритма предусмотрены некоторые действия (операции), а во второй ветви нет никаких действий.

Рисунок 2 — Блок-схема разветвляющегося алгоритма с полной альтернативой.

Цикл «Для…»

Оператор цикла Для предназначен для циклического повторения операторов, в конструкции Цикл – КонецЦикла. Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла.

  • Переменная является счетчиком и при каждом повторении цикла автоматически увеличивается на 1. Иначе говоря, это счетчик цикла.
  • Знач1 число, которое задает начальное значение счетчику цикла.
  • Знач2 число, которое задает максимальное значение счетчику цикла. Если значение счетчика цикла становится больше чем Знач2 цикл прекращается.

Пример 1 — Простой обход циклом с счетчиком

На данном примере счетчик цикла Сч при каждом входе в цикл увеличится на единицу, и пока не достигнет значению 11, цикл будет продолжаться.

Пример 2 — Обход с увеличением

Но, при решении конкретных задач, автоматическое увеличение значения счетчика цикла на единицу не всегда уместно. Так что же делать, ведь это же автоматическая функция?! Но всегда есть выход.

Рассмотрим конкретный пример в котором попробуем счетчику цикла задать шаг ровной к 5-и:

Пример 3 — С выходом из цикла «Прервать» (проверка на вечный цикл)

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Приведем пример, где Сч, Счетчик, Сдвиг, Шаг, КоличествоСообщений являются переменными. Во избежание вхождения программы в вечный цикл, проводиться проверка и при необходимости цикл прерывается:

*Данный пример мы привели во внешней обработке.

Циклические алгоритмические структуры

При формировании условных циклических алгоритмов необходимо учитывать следующие моменты:

  1. Для того, чтобы выполнение цикла не было бесконечным, команды, входящие в тело цикла, в любом случае должны оказывать влияние на выполнение условия цикла.
  2. Проверяемое условие обязано включать в свой состав корректные выражения и величины, которые определяются ещё до первоначального исполнения команд, входящих в тело цикла.

Помимо этого, есть ещё так называемый циклический алгоритм, обладающий безусловной структурой. Его применяют, когда количество необходимых выполнений команд тела цикла известно заранее.

Рисунок 1. Циклический алгоритм, обладающий безусловной структурой. Автор24 — интернет-биржа студенческих работ

Готовые работы на аналогичную тему

Исполнение циклического алгоритма с безусловной структурой необходимо начать с задания переменной i исходного значения in. Далее следует выполнить проверку на превышение переменной i конечного значения iK. Если это превышение имеет место, то осуществляется завершение цикла и передача управления идущей за телом цикла команде. Иначе начинается выполнение команд тела цикла, и к значению переменной i прибавляется величина шага di. Затем опять проверяется величина переменной i и весь процесс повторяется. Естественно, что вместо безусловного циклического алгоритма можно использовать один из условных. Следует заметить, что переменная i считается циклическим параметром, поскольку она является переменной, изменяемой внутри цикла по некоторому правилу и оказывает непосредственное влияние на его завершение.

Читайте так же:
Компания водомонтаж установка счетчиков

Приведём конкретный пример применения циклической алгоритмической структуры. Требуется определить максимальный общий делитель (МОД) пары натуральных чисел А и В. Входными данными являются: А и В. Выходными данными будут: А и МОД. Чтобы решить поставленную задачу можно использовать алгоритм Евклида, который заключается в последовательном уменьшении большего из чисел на величину меньшего. Эту процедуру следует выполнять до того момента, когда обе величины не сравняются. Эти действия показаны в таблице:

Рисунок 2. Поиск МОД для чисел А = 25 и В = 15. Автор24 — интернет-биржа студенческих работ

Блок-схема алгоритма решения этой задачи изображена на рисунке ниже.

Рисунок 3. Алгоритм поиска максимального общего делителя. Автор24 — интернет-биржа студенческих работ

Чтобы решить поставленную задачу в алгоритме применяется цикл с предварительным условием, а именно, команды тела цикла будут выполняться повторно до момента, когда А сравняется с В.

Рассмотрим следующий пример. Выполняется последовательный ввод чисел, признаком окончания последовательности является цифра нуль. Требуется выяснить, есть ли в этой числовой последовательности хотя бы пара одинаковых соседних чисел. В качестве входных данных будем рассматривать:

  • X0 является текущим членом последовательности.
  • X1 является последующим членом последовательности.

В качестве выходных данных будем рассматривать сигнал о присутствии в числовой последовательности пары одинаковых соседних компонентов. Ещё для работы алгоритма потребуется вспомогательная переменная F1, которая получит значение «истинно», когда будут обнаружены два одинаковых стоящих рядом компонента, и в противном случае она будет иметь значение «ложно». Блок-схема алгоритма решения данной задачи изображена на рисунке ниже.

Рисунок 4. Блок-схема. Автор24 — интернет-биржа студенческих работ

Использование в данном случае цикла с постусловием обусловлено тем обстоятельством, что требуется сначала выполнить сравнение пары компонентов последовательности, а далее уже принимать решение о завершении цикла.

В рассмотренных выше примерах заданы такие условия, что количество повторений команд тела цикла заранее неизвестно. Циклы этого типа являются циклами с неопределённым количеством повторов, а в общем случае может быть неизвестно о наличии конца цикла в принципе. Если в цикле можно определить заранее число повторений команд тела цикла по начальной информации, то такой цикл называется циклом с определимым количеством повторов. Приведём пример применения такого типа цикла. Необходимо сформировать таблицу значений функции y = esin(x)cos(x) на участке [0;p] при шаге 0.1. В качестве входных данных примем:

  1. Исходная величина аргумента равна нулю.
  2. Значение аргумента в конце равно р.
  3. Величина шага возрастания аргумента равна 0.1.

В качестве выходных данных примем:

  1. Весь диапазон значений аргумента Х.
  2. Все значения функции Y.

В начальных условиях задачи число повторений цикла не задаётся в явной форме, то есть задачу можно решить с применением цикла с предварительным условием. Алгоритм решения приведён на рисунке ниже:

Рисунок 5. Блок-схема. Автор24 — интернет-биржа студенческих работ

Но если взглянуть на проблему с обратной стороны, то заранее понятно изменение параметра цикла Х и известны его граничные значения. То есть имеется возможность вычислить число повторений цикла n, и затем использовать безусловный циклический оператор. Алгоритм решения задачи для этого варианта приведён на рисунке 6:

Рисунок 6. Блок-схема. Автор24 — интернет-биржа студенческих работ

For, или цикл с параметром

For — это цикл, в котором тело выполняется заданное количество раз.

Читайте так же:
Срок окончания мпи счетчика

Существует две формы записи этого цикла:

Первая форма

После каждой итерации значение будет увеличиваться на 1.

— это начальное значение счетчика. Это может быть переменная или число.
: как только значение станет больше , выполнение цикла прекратится.

Если требуется написать несколько операторов в теле цикла, используем begin и end.

И , и , и — переменные целого типа.

Чаще всего в качестве счетчика используется переменная i.

Вторая форма

После каждой итерации значение будет уменьшатся на 1.

— это начальное значение счетчика.
: как только значение станет меньше , выполнение цикла прекратится.

Два важных примечания:

  1. Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
  2. Изменять значение счетчика внутри тела нельзя! Вот что выводит компилятор:

Согласитесь, данный код проще и лаконичнее, чем все предыдущие. И цикл for — не совсем обычный цикл, в нем нет логического условия. Поэтому цикл с параметром в программировании называют синтаксическим сахаром. Синтаксический сахар — это дополнения синтаксиса языка программирования, которые не добавляют новых возможностей, а делают использование языка более удобным для человека.

Давайте решим пару задач.

For1. Даны целые числа K и N (N > 0). Вывести N раз число K.

Организовываем простой цикл от 1 до требуемого числа.

For2. Даны два целых числа A и B (A

For9. Даны два целых числа A и B (A

Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.

For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.

Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Каждый раз вычитаем B из А, пока А — В >= 0.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 — число является степенью тройки; если N <> 1, тогда число — не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.

На сегодня все! Не забывайте почаще заходить на наш сайт и кликать по кнопочкам, которые расположены перед комментариями.

План урока

  • Формализация, моделирование, алгоритмизация и программирование
  • Демонстрирует владение навыками алгоритмизации и простого
    программирования.
  • Разъясняет на примерах виды алгоритмов.

Тема: Циклические алгоритмы

Рабочие листы, компьютер, проектор

Мотивация (5 минут)

Учитель показывает учащимся анимационный фильм (скачать данное видео к уроку), демонстрирующий работу подъемного крана, и обращается к классу:

  • Как описать алгоритм действия подъемного крана?
  • Какие действия алгоритма повторяются?
  • От чего зависит количество повторений?

Для интеграции с другими учебными предметами учитель может использовать следующие вопросы:

Где вы в жизни встречались с повторяющимися явлениями или событиями? (Круговорот воды в природе, смена времен года).

Выслушиваются мнения учащихся.

Вопрос для исследования:

Как записать алгоритм, в котором действия многократно повторяются? Как представить такой алгоритм с помощью блок-схемы?

Исследование проблемы (10 мин)

Для проведения исследования учитель делит учащихся на 4 группы способом пересчета от 1 до 4. Учащиеся с одинаковыми номерами собираются в одну группу.

Читайте так же:
Нпф динфо счетчик стд

Каждой группе даются задания.

Рабочие листы

(скачать)

I группа

II группа

III группа

IV группа

Обмен информацией и обсуждение (10 мин)

Представитель каждой группы демонстрирует работу на листах или на интерактивной доске. (Скачать флипчарт для доски) Проводится обмен информацией. Учитель во время выступлений может задавать вопросы наводящие вопросы. Целесообразно ли при составлении алгоритмов с повторяющимся числом шагов записывать все эти шаги много раз? Какое слово мы используем, чтобы показать, что шаги алгоритма повторяются несколько раз? А какое слово мы используем, если количество повторений неизвестно?

Обобщение и выводы (7 мин)

Учитель возвращается к вопросу для исследования и обобщает ответы учащихся.

Алгоритм, последовательность шагов которого повторяется многократно называется циклическим и для его записи вводится специальная алгоритмическая структура-цикл. Для того чтобы показать цикл в алгоритмах, используют команду «ПОВТОРИ n РАЗ». Для того чтобы выделить команды, относящиеся к циклу «ПОВТОРИ …», их записывают со сдвигом вправо.

Если в рассмотренном в начале урока алгоритме будет 100 кубиков, то запись алгоритма будет выглядеть так:

Начало

  1. Повтори 100 раз
  2. Поднять кубик
  3. Перенести к машине
  4. Опустить на машину
  5. Вернуться
  6. Остановиться

Конец

Часто количество повторений зависит от условия, тогда после слова повтори можно записать условие цикла.

Циклические алгоритмы тоже можно представить при помощи блок-схем.

Творческое применение (8 мин)

Внеси изменения в блок-схему алгоритма, сделав его циклическим.

Ответ:

Оценивание (5 мин)

  • Критерии оценивания
  • Обоснование мнения
  • Выполнение алгоритма
Критерии
1разъясняет циклический алгоритм словесно
2разъясняет циклический алгоритмс помощью блок-схемы
3выполняет циклический алгоритм
4определяет вид алгоритма
Ф.И.1234
1
2
3

Рефлексия

Учитель предлагает учащимся продолжить фразы:

  • я познакомился с …
  • было непросто …
  • я добился …
  • у меня получилось …
  • хотелось бы …
  • мне запомнилось …
  • я попробую …

Домашнее задание. Составьте и запишите любой циклический алгоритм.

Базовые алгоритмические конструкции

В теории программирования доказано, что для записи любого, сколь угодно сложного алгоритма достаточно трех базовых структур:

  • следование (линейный алгоритм);
  • ветвление (разветвляющийся алгоритм);
  • цикл-пока (циклический алгоритм).

Линейные алгоритмы

Линейный алгоритм образуется из последовательности действий, следующих одно за другим. Например, для определения площади прямоугольника необходимо сначала задать длину первой стороны, затем задать длину второй стороны, а уже затем по формуле вычислить его площадь.

Пример

ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Этап 1. Математическое описание решения задачи.

Математическим решением задачи является известная формула:

,

где с-длина гипотенузы, a, b – длины катетов.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Этап 3. Разработка алгоритма решения задачи.

На данной схеме цифрами указаны номера элементов алгоритма, которые соответствуют номерам пунктов словесного описания алгоритма.

Разветвляющиеся алгоритмы

Алгоритм ветвления содержит условие, в зависимости от которого выполняется та или иная последовательность действий.

Пример

ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

  • первая: это элементы 1, 2, 3, 4, 8.
  • вторая: это элементы 1, 2, 3, 5, 6, 8
  • третья: это элементы 1, 2, 3, 5, 7, 8.
Читайте так же:
Код ошибки для счетчиков альфа

Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

Циклические алгоритмы

Циклический алгоритм определяет повторение некоторой части действий (операций), пока не будет нарушено условие, выполнение которого проверяется в начале цикла. Совокупность операций, выполняемых многократно, называется телом цикла.

Алгоритмы, отдельные действия в которых многократно повторяются, называются циклическими алгоритмами, Совокупность действий, связанную с повторениями, называют циклом.

При разработке алгоритма циклической структуры выделяют следующие понятия:

  • параметр цикла – величина, с изменением значения которой связано многократное выполнение цикла;
  • начальное и конечное значения параметров цикла;
  • шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.

Цикл организован по определенным правилам. Циклический алгоритм состоит из подготовки цикла, тела цикла и условия продолжения цикла.

В подготовку цикла входят действия, связанные с заданием исходных значений для параметров цикла:

  • начальные значения цикла;
  • конечные значения цикла;
  • шаг цикла.

В тело цикла входят:

  • многократно повторяющиеся действия для вычисления искомых величин;
  • подготовка следующего значения параметра цикла;
  • подготовка других значений, необходимых для повторного выполнения действий в теле цикла.

В условии продолжения цикла определяется допустимость выполнения повторяющихся действий. Если параметр цикла равен или превысил конечное значение цикла, то выполнение цикла должно быть прекращено.

Пример

ЗАДАЧА. Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

Этап 1. Математическое описание решения задачи.

Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

Этап 2. Определение входных и выходных данных.

Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

Выходные данные – значение суммы членов последовательности натуральных чисел.

Параметр цикла величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

  • начальное значение параметра цикла равно 1,
  • конечное значение параметра цикла равно n,
  • шаг цикла равен 1.

Для корректного суммирования необходимо предварительно задать начальное значение суммы, равное 0.

Тело цикла. В теле цикла будет выполняться накопление значения суммы чисел, а также вычисляться следующее значение параметра цикла по формулам:

Условие продолжения цикла: цикл должен повторяться до тех пор, пока не будет добавлен последний член последовательности натуральных чисел, т.е. пока параметр цикла будет меньше или равен конечному значению параметра цикла.

Этап 3. Разработка алгоритма решения задачи.

Введем обозначения: S – сумма последовательности, i – значение натурального числа.

Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

Читайте так же:
Счетчик норма срок поверки

Занимательные задачи по алгоритмизации

Как убить Кощея?

Наверное, все помнят из детства сказку, в которой рассказывается о местонахождении смерти Кощея Бессмертного: «Смерть моя – на конце иглы, которая в яйце, яйцо – в утке, утка – в зайце, заяц в сундуке сидит, сундук на крепкий замок закрыт и закопан под самым большим дубом на острове Буяне, посреди моря-океяна …»

Предположим, вместо Ивана-царевича бороться с Кощеем был брошен Иван-дурак. Давайте поможем Василисе Премудрой составить такой алгоритм, чтобы даже Иван-дурак смог убить Кощея.

  1. Конечно же, сначала необходимо разыскать остров Буян (на такие вещи, будем считать, Иван-дурак способен).
  2. Поскольку сундук закопан под самым большим дубом, то сначала необходимо найти самый большой дуб на острове.
  3. Затем нужно выкопать сам сундук.
  4. Прежде чем доставать зайца, необходимо сломать крепкий замок.
  5. Теперь уже можно достать зайца.
  6. Из зайца нужно достать утку.
  7. Из утки достать яйцо.
  8. Разбить яйцо и достать иголку.
  9. Иголку поломать.

Это тоже линейный алгоритм, хотя и более длинный, чем алгоритм запуска программы Paint.

Его блок-схема выглядит так:

На распутье…

И снова обратимся к сказочным персонажам в поисках примеров различных алгоритмов. Когда речь идёт об алгоритмах с ветвлениями, то, конечно, нельзя не вспомнить о богатыре, стоящем на распутье возле камня.

На камне написано:

«Направо пойдёшь – коня потеряешь, себя спасёшь; налево пойдёшь – себя потеряешь, коня спасёшь; прямо пойдёшь – и себя и коня потеряешь».

Попробуем составить алгоритм действий, который составил автор надписи на камне для путников?

  1. Если мы пойдём направо, то потеряем коня. Если же мы не пойдём направо, то у нас остаётся два варианта (мы считаем, что назад возвращаться путник не будет): пойти прямо и налево.
  2. В случае, если мы пойдём налево, то потеряем себя, а коня спасём.
  3. Если же мы пойдём прямо, то потеряем и себя, и коня.

Блок-схема этого алгоритма выглядит так:

Репка

Русские народные сказки не оставили нас и без циклического алгоритма. И, как ни странно, спрятался он в одной из самых незамысловатых сказок – «Репке».

Вспомним сюжет сказки: дед тянет-потянет – вытянуть не может. Затем на помощь к деду по очереди подходят новые персонажи – и так до тех пор, пока не приходит мышка.

Попытаемся составить алгоритм действий всех персонажей сказки для того, чтобы они всё-таки смогли вытянуть Репку.

  1. Изначально к Репке подошёл дед и попытался вытянуть.
  2. Поскольку вытянуть Репку не получилось, то понадобилась помощь следующего персонажа.
  3. И так происходит до тех пор, пока не появилась мышка (или, другими словами, до тех пор, пока Репку не вытащили).

В виде блок-схемы этот алгоритм выглядит следующим образом:

Список рекомендованной литературы

  1. Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2012
  2. Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2010.
  3. Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. – М.: БИНОМ. Лаборатория знаний, 2010.

Рекомендованное домашнее задание

  1. §3.3, 3.4 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса);
  2. Постарайся самостоятельно составить линейный алгоритм из 5-6 фигур;
  3. Составь блок-схему циклического алгоритма выполнения домашнего задания;
голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector