Teres-1t.ru

Инженерные решения
11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

  • Алгоритмы, в которых есть циклы с предварительным условием.
  • Алгоритмы, в которых есть циклы с после условием (постусловием).

Такие алгоритмы считаются условными циклическими алгоритмами. Очевидно, что оба типа циклов являются взаимозаменяемыми, но при этом имеют следующие отличия:

  1. В алгоритме цикла с предварительным условием, проверка условия осуществляется до выполнения команд тела цикла, а в цикле с постусловием эта проверка делается после команд тела цикла.
  2. В алгоритме цикла с постусловием команды тела цикла один раз должны быть выполнены в любом случае, а в цикле с предварительным условием команды тела цикла могут вообще не выполняться.
  3. В алгоритме цикла с предварительным условием выполняется проверка условия, по которому цикл может быть продолжен, а в алгоритме цикла с постусловием выполняется проверка условия завершения цикла.

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

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

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

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

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

alt

Пример

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

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

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

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

Формула,

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

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

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

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

  1. Начало алгоритма.
  2. Ввод значений длин катетов a и b.
  3. Вычисление длины гипотенузы с по формуле Формула
  4. Вывод значения длины гипотенузы.
  5. Конец алгоритма

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

Блок-схема

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

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

Алгоритм ветвления

Пример

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

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

Из курса математики известно, если x > y, то наибольшее число x, если x < y, то наибольшее число y, если x = y, то число x равно числу y.

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

Входными данными являются значения чисел x и y. Выходным данными являются:

  • наибольшее число
  • любое из чисел, если числа равны

Для решения задачи нам необходимо знать значения x и y.

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

  1. Начало алгоритма.
  2. Ввод значений x и y.
  3. Сравниваем x и y. Если x = y, то переход к шагу 4, иначе к шагу 5.
  4. Вывод информации: числа x и y равны. Переход к шагу 8.
  5. Сравниваем x и y. Если x > y, то переход к шагу 6, иначе к шагу 7.
  6. Вывод информации: число x больше y. Переход к шагу 8.
  7. Вывод информации: число y больше x. Переход к шагу 8.
  8. Конец алгоритма.
Читайте так же:
Как списать счетчик по воде

блок-схема

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

В рассматриваемом алгоритме (рис.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. Подготовка цикла: S:=0; i=1; n= 100;
  3. Проверка условия. Если i <=n , то перейти к шагу 4, иначе к шагу 6.
  4. Накопление суммы: S:=S+i;
  5. Вычисление следующего значения параметра цикла: i:=i+1;
  6. Вывод информации: сумма натуральных чисел – S.
  7. Конец алгоритма.

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

Программирование алгоритмов циклической структуры.

Цель работы:изучить операторы цикла и приобрести практическиенавыки в программировании алгоритмов циклической структуры.

1. Изучить операторы цикла языка Бейсик и особенности их при-

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

3. Произвести на ЭВМ расчеты по разработанным программам для исходных данных, приведенных в табл. 4.1, и сравнить результаты расчетов.

4. Получить распечатки программ и результатов расчета.

5. Оформить отчет по лабораторной работе.

Указания по выполнению работы

Алгоритм циклической структуры включает в себя одну из основных структур — цикл, который бывает двух типов: цикл До и цикл Пока (рис.4.1). В цикле До тело цикла выполняется до проверки некоторого условия “да” — ус-ловие истинно, “нет ” — условие ложно. Телом цикла называется последова-тельность действий, выполняемых в цикле многократно. В цикле Пока про-верка условия производится до выполнения тела цикла.

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

Организация циклов в программах может осуществляться с помощью условного оператора (рис.4.1), рассмотренного в лабораторной работе № 3. или специальных операторов цикла.

Оператор цикла F0R-NEXT.

Оператор F0R-NEXT позволяет организовать выполнение блока опе-раторов определенное количество раз. Оператор F0R-NEXT имеет сле-дующую форму:

FOR счетчик = начало TO конец [STEP шаг] [операторы цикла]

[EXIT FOR] [операторы цикла] NEXT счетчик,

где счетчик – числовая переменная, используемая как счетчик цикла; начало – начальное значение счетчика; конец – конечное значение счетчика; шаг – шаг изменения значения счетчика по умолчанию равен 1; операторы цикла – набор операторов предназначенных для повторения.

1. Операторы тела цикла

2. Есливыполняется перейти к п.1

1. Есливыполняется перейти к п.4

2. Операторы тела цикла

Рис.4.1. Виды циклов и их программирование с использованием ус-ловного оператора IF:

а — структура цикла До; б — структура цикла Пока.

Цикл F0R-NEXT выполняется до тех пор, пока текущее значение счет-чика не превышает его конечного его конечного значения. При завершении текущего цикла к значению счетчика прибавляется значение шага. Если конец

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

Читайте так же:
Заправка картриджей samsung сброс счетчика

В качестве примера на рис.4.2 приведены алгоритм и программа вы-числения факториала Р = n! с оператором FOR-NEXT.

REM Программа вычисления n! REM с применением оператора цикла PRINT “Введите значение n=”; INPUT N

FOR I=1 TO N P=P*I

PRINT “Значение ”; N;”!=”;P END

Рис.4.2. Пример программирования циклического алгоритма:

а — схема алгоритма; б — его программная реализация с

применением операторов цикла

Решение приведенной задачи сводится к организации цикла, при каж-дом прохождении которого значение произведения Р умножается на очеред-ной сомножитель i. До входа в цикл необходимо задать Р=1. Для организации цикла в программах используется переменная I. При превышении этой пере-менной значения N происходит выход из цикла и вывод результатов расчета на дисплей.

Варианты заданий к лабораторной работе № 4

Составить программу табулирования функции y наИсходные данные
п.п.отрезке [a,b] с шагом habh
1.y = x /( x2+1)4,06,00,2
2.y = x /( x3+1)3,05,00,25
3.y =x / x31,010,01,0
4.y = x ln x22,53,50,1
5.y =ln( x +1) /( x2+1)2,06,00,5
6.y = e x /( x2+2)1,22,10,1
7.y =2sin2 x /(1+ x3)3,140,31
8.y =cos x /(1+ x3)1,573,140,16
9.y =5sin x /(1+ x2)4,35,50,2
y =(1?cos2 x ) /(0,5 x +1)1,52,50,1
Составить программу вычисления k членов последовательности
Формула общего членаkФормула общего членаk
п.пп.п
11.ak= k 2 /( k 3 +2)12.ak= ( k 2 +10) / 2k
13.a k=k /( k +1)14.a k= k /( k 2 +2)
15.ak= (2 k +1) / k 216.ak= k k ?1 /( k +5)
Составить программу вычисления суммы k членов последовательности
Формула общего членаkФормула общего членаk
п.пп.п
17.a k=k /( k +3)18.ak= ( k +1) / k 2
19.ak= k 2 /( k 2 +5)20.ak= k 2 /( k 3 +1)
21.ak= k 2 / 2k22.ak= (5k +3) / ek

Составить программу вычисления произведения k членов последовательности

Формула общего членаkФормула общего членаk
п.пп.п
23.ak= k 3 /( k +1)24.ak =(2 k +1)/ 5k 2
25.ak= (2 k +1) / k 326.ak =(2 k +1)/ k 3
27.ak= k /(2 k +1)28.ak =5k /( ek +1)
29.a k= k /( k 3 ?1)30.ak = e k /(3k 2+1)

Лабораторная работа №5

Статьи к прочтению:

Найти общий член числового ряда — bezbotvy

Похожие статьи:

Цели работы:Познакомить читателя со встроенными возможностями пакета MathCAD для линейного программирования, а также для разветвляющегося вычислительного…

Контрольные вопросы: 1. Что такое алгоритм разветвляющей структуры? 2. Какие виды разветвления вы знаете? 3. Когда используется оператор безусловного…

Вложенные циклы

Рассмотрим пример, где циклы вложены друг в друга. Выведем таблицу умножения.

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

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

В данном случае мы используем во вложенном цикле счётчик первого цикла.

email

Всё ещё не понятно? – пиши вопросы на ящик

Читайте так же:
Как записаться не через счетчик

§ 4.6. Программирование циклических алгоритмов

Цикл с заданным условием продолжения работы (цикл-ПОКА) программируется в языке Паскаль с помощью оператора while. Общий вид оператора:

while <условие> do <оператор>

<условие> — логическое выражение; пока оно истинно, выполняется тело цикла;

<оператор> — простой или составной оператор, с помощью которого записано тело цикла.

Запишем на языке Паскаль рассмотренный в п. 3.4.3 (пример 14) алгоритм получения частного q и остатка r от деления целого числа х на целое число у без использования операции деления.


4.6.2. Программирование циклов с заданным условием окончания работы

Цикл с заданным условием окончания работы (цикл-ДО) программируется в языке Паскаль с помощью оператора repeat. Общий вид оператора:

repeat <оператор1; оператор2; . ; > until <условие>

<оператор1>; <оператор2>; . — операторы, образующие тело цикла;

<условие> — логическое выражение; если оно ложно, то выполняется тело цикла.

Запишем на языке Паскаль рассмотренный в п. 3.4.3 (пример 17) алгоритм решения задачи о графике тренировок спортсмена.

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

Цикл с заданным числом повторений (цикл-ДЛЯ) программируется в языке Паскаль с помощью оператора for. Его общий вид:

for <параметр>:=<начальное_значение> to <конечное_значение> do <оператор>

<параметр> — переменная целого типа;

<начальное_значение> и — выражения того же типа, что и параметр, вычисляемые перед началом цикла;

<оператор> — простой или составной оператор — тело цикла.

При выполнении этого оператора после каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условием выхода из цикла является превышение параметром конечного значения.

Запишем на языке Паскаль рассмотренный в п. 3.4.3 (пример 19) алгоритм вычисления степени с натуральным показателем п для любого вещественного числа а.

4.6.4. Различные варианты программирования циклического алгоритма

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

Пример. Напишем программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт количества введённых положительных и отрицательных чисел.

Так как здесь в явном виде задано условие окончания работы, то воспользуемся оператором repeat.

Имеющееся условие окончания работы можно достаточно просто преобразовать в условие продолжения работы — работа продолжается, пока n ≠ 0. И мы можем воспользоваться оператором while:

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

Самое главное

В языке Паскаль имеются три вида операторов цикла: while (цикл-ПОКА), repeat (цикл-ДО), for (цикл с параметром). Если число повторений тела цикла известно, то лучше воспользоваться оператором for; в остальных случаях используются операторы while и repeat.

Вопросы и задания

  1. Дана последовательность операторов:

Найдите ошибки. Допишите необходимые операторы и выполните программу на компьютере.

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

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

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

Читайте так же:
Расчет у кого нет счетчика

Составление алгоритмов - Практическая работа - 6 КЛАСС

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

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

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

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

Составление алгоритмов - Практическая работа - 6 КЛАСС

На распутье…

Составление алгоритмов - Практическая работа - 6 КЛАСС

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

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

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

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

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

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

Составление алгоритмов - Практическая работа - 6 КЛАСС

Репка

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

Составление алгоритмов - Практическая работа - 6 КЛАСС

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

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

Список использованных источников

1. Урок на тему: «Циклические и вспомогательные алгоритмы», Кардашева В. И., г. Москва.

2. Урок на тему: «Циклические алгоритмы», Пустоваченко Н.Н., Директор ГМЦИТ г. Мурманск

3. Игнатьев М. Б. «Информационные технологии в микро-, нано- и оптоэлектронике».- ГУАП: СПб, 2008 г.

Отредактировано и выслано преподавателем Киевского национального университета им. Тараса Шевченко Соловьевым М. С.

Над уроком работали

Поставить вопрос о современном образовании, выразить идею или решить назревшую проблему Вы можете на Образовательном форуме, где на международном уровне собирается образовательный совет свежей мысли и действия. Создав блог, Вы не только повысите свой статус, как компетентного преподавателя, но и сделаете весомый вклад в развитие школы будущего. Гильдия Лидеров Образования открывает двери для специалистов высшего ранга и приглашает к сотрудничеству в направлении создания лучших в мире школ.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector