Sfera-perm.ru

Сфера Пермь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Блок 3: «Виды алгоритмов»

Тема 4:»Составление циклических алгоритмов.»

Определите в данных условиях цикл и заполните следующую таблицу:

Начальное значениеКонечное значениеШаг

1) 1, 2, 3, 4, . ,10.

2) -5, -4, -3, -2, . , 5.

3) 2, 4, 6, . , 20.

7) b-5, b-4, b-3, . b+5.

1) от x=7 до 10 шаг 1;

2) от b=1 до 13 шаг 4;

3) от c=30 до 10 шаг -5;

4) от n=a до a+10 шаг 2;

6) от t=-4 до 4 шаг 1;

7) от p=7 до -7 шаг -1;

9) от -100 до 100 шаг c;

Перепишите на алгоритмическом языке блок-схемы циклов из тренинга №3.

1) В лототроне по порядку лежат шары с номерами от 100 до 200. Он выбрасывает каждый седьмой. Составьте алгоритм для определения номеров выпавших шаров.

2) В гонках участвовало 17 машин ( номера их идут по порядку). Каждая вторая машина сошла с дистанции по той или иной причине. Составьте алгоритм определения их номеров.

3) Преобразуйте циклы с параметром в цикл-до и цикл- пока. Запишите их в виде блок- схем. Образец:

4) Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Сколько км пробежал спортсмен за каждый день недели?

5) На опытном лесном участке ежегодный прирост древесины — 10%. Какое количество ее будет через 6 лет, если в начале 1 года было посажено 20000 м 3 ?

6) В банк был положен вклад в размере N руб. Каждый месяц он увеличивался на 1%. Определите размер вклада через 5 лет.

2) Спортсмен в день пробегает х метров. Начав тренировки, он в течение недели увеличивал свой пробег предыдущего дня на 250 метров. Сколько пробегал спортсмен в каждый день тренировки?

3) Блок-схемы, приведенные в 1 упражнении 1 уровня записать на алгоритмическом языке. Преобразовать их в цикл-до и цикл- пока. Образец:

цикл с параметром цикл-до цикл- пока
для N от 3 до 5 шаг 2
нц
K:=N^2
вывод K
кц
N:=3
нц
K:=N^2
вывод K
N:=N+2
до N>5
кц
N:=3
пока N

4) Напечатать все квадраты двухзначных чисел, не превышающие 200.

5) Банк принял два вклада по 1000$. Один под 2% годовых, а другой под 3%. Через сколько лет второй вклад превысит первый на 100$?

6) Количество рыбы в реке, в которую сбрасывались загрязнения, ежегодно сокращалось на 20%. Определите, через сколько лет рыбы в реке почти не останется ( ее количество будет меньше 1)? Известно, что до начала загрязнения ее было N особей.

1) В первый день рабочий произвел х деталей. Во второй и в последующие дни он увеличивал норму предыдущего дня в 2 раза. Сколько деталей он делал каждый день данной недели?

Читайте так же:
Красивый счетчик посещений для сайта

2) В лаборатории были пробирки в форме цилиндров. Они отличались между собой по высоте ( h=2; 2,5; 3 . 25 см). За год пришла в негодность каждая пятая. Определите объемы разбитых пробирок, если радиус основания у всех пробирок был R. Формула для вычисления объема: V=3,14R 2 h .

3) Напечатать таблицу значений перевода температуры из градусов Цельсия (С) в градусы по шкале Фаренгейта (F) для значений от 15 до 30° С с шагом 1°. Формула для перевода: F=1,8C+32.

4) Около стены стоит палка длиной х см. Один ее конец находится на расстоянии y от стены. Каждую минуту палка скользила вниз по стене на 2% расстояния от пола. Определите через сколько минут она упала (Z 2 -y 2 ) 1/2

5) Поголовье скота в колхозе увеличивается с каждым годом. Прирост числа коров составляет 7%, а свиней 15%. Определите сколько всего голов скота при таких темпах сможет выращивать колхоз через 5 лет, если на начало этого периода было 100 коров и 100 свиней?

6) В упражнении 5 вычислить, через сколько лет количество свиней будет больше количества коров не менее чем на 100 ?

7)Придумайте к следующим блок-схемам условия задач.

Основные типы и пример циклических алгоритмов

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

Понятие алгоритма

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

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

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

Виды циклических алгоритмов

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

Цикл с предусловием

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

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

Элементы алгоритма:

  1. Задаем начальное значение базовой переменной j, равное -5.
  2. Проверяем условие цикла. Условие положительное, и тело цикла выполняется первый раз.
  3. Далее прибавляем к переменной j единицу, снова проверяем условие цикла.
  4. Цикл продолжает выполняться, пока значение j меньше нуля или равно ему, в противном случае выходим из цикла по ветке FALSE
Читайте так же:
Счетчик не засчитывает переход если

Цикл с постусловием

Проверка условия выполняется после первой обработки тела цикла и контролирует выход из него.

Разберем расчет суммы от 1 до числа n как пример циклических алгоритмов, в которых используются постусловие:

  1. Вводим конечное число расчета суммы n и задаем нулевые начальные значения итоговой суммы sum и счетчика цикла i.
  2. Цикл выполняется до первой проверки условия.
  3. Проверяем условие цикла, т. е. значение счетчика i меньше или равен n.
  4. Если результат условия положительный, выполняем цикл еще раз, иначе заканчиваем цикл и выводим сумму на дисплей или печать.

Безусловный цикл

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

Такой алгоритм содержит три обязательных элемента:

  1. Стартовое значение, которое называют параметром цикла, т. к. именно эта переменная изменяется после каждого выполнения цикла и определяет момент его завершения.
  2. Значение, при котором цикл завершается.
  3. Шаг цикла.

На каждом шаге программа проверяет, не превосходит ли стартовое значение конечное. И если да, то цикл завершается. В противном случае к стартовому значению прибавляем величину шага и цикл повторяется. Особо следует отметить, что любой безусловный цикл можно заменить условным с пред- или постусловием.

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

Расчет факториала

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

  • Исходные данные: data – целое число, для которого определяется факториал.
  • Системные переменные: параметр цикла i, принимающий значения от 1 до data c шагом 1.
  • Результат: переменная factorial – факториал числа data, являющийся произведением целых чисел от 1 до data.

Рассмотрим алгоритм по шагам:

  1. Алгоритм получил число data, для которого необходимо вычислить факториал.
  2. Переменной factorial, в которой будет храниться итоговый результат, присвоено значение единицы.
  3. Организовываем цикл с параметром i и стартовым значением 1. Конечным значением будет являться исходное число data. Как только значение счетчика i будет больше, цикл завершается.
  4. Выполняется цикл вычисления факториала – перемножаются текущие значения factorial и счетчика i.
  5. К значению счетчика добавляем единицу, проверям условие цикла и, если результат положительный, завершаем его.
  6. После завершения последней итерации цикла значение факториала data! остается в factorial и выводится на дисплей или печать.
Читайте так же:
Рэс как устанавливают счетчик

Циклический алгоритм. Определение. Блок-схема. Примеры

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

— циклы со счетчиком, в которых тело цикла вы­полняется определенное количество раз (рис. 5);

— циклы с условием, в которых тело цикла выпол­няется до тех пор, пока выполняется условие.

21

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

Однако часто бывает необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторе­ний зависит от выполнения некоторого условия.

Условие выхода из цикла можно поставить в нача­ле, перед телом цикла (рис. 6, а), или в конце, после тела цикла (рис. 6, б).

Цикл со счетчиком. Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклической инструкцией (опе­ратором цикла со счетчиком) строка, начинающаяся с ключевого слова For, являет­ся заголовком цикла.

Рис. 19 Цикл со счетчиком

В начале выполнения цикла значение переменной Счетчик устанавливается равным НачЗнач. При каж­дом «проходе» цикла переменная Счетчик увеличива­ется на величину шага. Если она достигает величины Koн3нач, то цикл завершается и выполняются следую­щие за ним операторы.

Циклы с условием. Часто бывает так, что необходи­мо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях ко­личество повторений зависит от некоторого условия. Этот цикл реализуется с помощью инструкции While.

Рис. 20 Цикл с предусловием

Условие выхода из цикла можно поставить в нача­ле, перед телом цикла (рис. 20) или в конце, после тела цикла (рис. 21).

Проверка условия выхода из цикла проводится с по­мощью ключевых слов While или Until. Эти слова

Рис 21 Цикл с послеусловием

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

Ключевое слово Until обеспечивает выполнение цикла до тех пор, пока не выполняется условие, т. е. пока условие имеет значение ложь. В этом случае усло­вие становится условием завершения цикла. Как толь­ко условие примет значение истина, выполнение цик­ла закончится.

Основные понятия информатики: информация, информатика, алгоритм, программа.

Информация –в переводе с латинского означает «разъяснение, изложение, набор сведений».

Информатика– наука, изучающая способы передачи, хранения, преобразования и использования информации.

Алгоритм позволяет формализовать выполнение задачи. Предположим, что пользователю посчитать сумму двух чисел.

Программа – план действий, подлежащих выполнению некоторым исполнителем, в качестве которого может выступать компьютер.

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

Читайте так же:
Нужно ли менять счетчик через 4 года

1) ввести с клавиатуры два числа;

2) посчитать сумму;

3)вывести результат на экран;

Графическое представление алгоритма. Чтобы сде­лать алгоритм более наглядным, часто применяют блок-схемы. На блок-схеме (рис. 9) хорошо видна структура алгоритма, по которой исполнителю (чело­веку) удобно отслеживать процесс его выполнения.

Урок 4 — Циклы в С++

Мы уже можем заставить наш компьютер посчитать что-то полезное, однако некоторые алгоритмы являются циклическими — в этом уроке мы научимся программировать и такие…

В языке С++ есть 3 вида циклов, каждый из которых содержит условие и тело цикла, которое выполняется пока сохраняется истинность условия. Однократное выполнение тела цикла называется итерацией. Все виды циклов схематично показаны в таблице:

Тип циклаСхема
Со счетчиком
С предусловием
С постусловием

План урока

  1. Цикл со счетчиком (for)
  2. Цикл с предусловием (while)
  3. Цикл с постусловием (do while)
  4. Вложенные циклы. Операторы break и continue
  5. Рекомендации по использованию циклов

1 Цикл со счетчиком — for

Цикл for применяется если тело цикла необходимо выполнить определенное число раз. Цикл выполняется в следующем порядке:

  1. инициализация счетчика;
  2. проверка условия — если результат развен false — цикл завершается;
  3. тело цикла;
  4. изменение счетчика;
  5. проверка условия — если результат развен false — цикл завершается;
  6. тело цикла;
  7. изменение счетчика;
  8. … (и так далее пока при проверке условия не будет получен false ).

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

Допустим, нам необходимо посчитать сумму чисел от 1 до 50:

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

2 Цикл с предусловием (while)

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

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

Эта программа выводит двоичные разряды «задом-наперед», но в будущем мы научимся как это исправить.

3 Цикл с постусловием (do while)

Если тело цикла должно обязательно выполнится хотя бы один раз — то применяется цонструкция do while . В частности, такая конструкция нередко применяется для обеспечения корректности ввода — заставляя пользователя вводить данные пока они не окажутся корректными. Модифицируем программу из предыдущего урока — пусть пользователь обязательно введет правильный номер дня недели:

Читайте так же:
Счетчик посещаемости для сайта как установить

Обязательно запустите эту программу и попробуйте вводить разные данные.

4 Вложенные циклы. Операторы break и continue

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

В данном случае, каждый вложенный цикл генерирует очередную цифру билета. В результате 4 цикла сгенерируют все варианты билетов. Последний вложенный цикл проверяет «счастливость» (то есть равенство сумм цифр первой и второй половин номера).

Оператор break немедленно завершает выполнение цикла и переходит к первой инструкции, записанной после цикла. Оператор continue — немедленно переходит к новой итерации цикла. В качестве примера, напишем программу, выполняющую выбранное пользователем в меню действие:

Это самая большая программа в этом уроке, запустите ее и рассмотрите исходный код внимательно. Программа выводит меню до тех пор, пока пользователь сам не захочет выйти — мы не знаем когда именно это случится, поэтому в качестве условия в цикле записано true . Выход из этого цикла произойдет когда пользователь введет ноль (сработает оператор break ). Если пользователь ввел некорректный номер пункта меню — выведем ему сообщение об ошибке и повторим ввод еще раз (перейдем в начало цикла операротом continue ). Операторы break , вложенные в блок switch приводят к выходу из этого блока, но не цикла.

Операторы break и continue действуют на цикл, в который они непосредственно вложены.

5 Рекомендации по использованию циклов

К этому моменту, вам наверняка пришла мысль, что вместо одного типа цикла легко можно использовать другой. Например, в следующей таблице показано как каждым видом цикла можно вычислить сумму чисел от 1 до n:

циклом for
циклом while
циклом do. while

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

  1. используйте наиболее подходящую форму цикла для решения своей задачи. Если у вас есть явно выделенный счетчик или тело цикла надо повторить заданное число раз — используйте for . Если перед проверкой условия нужно выполнить тело цикла — do. while (такая ситуация редко, но встречается). В остальных случаях — используйте while .
  2. старайтесь как можно реже применять вечные циклы, а также операторы continue и break . Эти конструкции резко увеличивают время, необходимое для понимания вашего кода — он становится сложнее. Перед их использованием подумайте, можно ли решить вашу задачу «более элегантным образом». В этом учебнике я ничего не писал про оператор goto , однако он есть и осложняет код еще сильнее, позволяя перейти в любую точку вашей программы — знать про его существование нужно, но применять не стоит.
голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector