Циклические преобразования целых чисел — это использование циклических алгоритмов для преобразования целых чисел.
Циклические алгоритмы
Под циклом понимается повторное выполнение одинаковых операций необходимое количество раз.
Набор операций, повторяющихся в циклическом алгоритме, считается телом цикла. Известны различные алгоритмы организации циклов. Наиболее распространёнными являются циклы с предварительной проверкой условия (циклы с предусловием), и циклы с проверкой условия после выполнения тела цикла (циклы с постусловием), которые именуются условными циклическими алгоритмами. Алгоритм цикла с предусловием представлен на рисунке один:
Рисунок 1. Алгоритм цикла с предусловием. Автор24 — интернет-биржа студенческих работ
Алгоритм цикла с постусловием представлен на рисунке два:
Рисунок 2. Алгоритм цикла с постусловием. Автор24 — интернет-биржа студенческих работ
Эти циклы, по сути, являются взаимозаменяемыми, но имеют следующие отличия:
- Цикл, с предварительной проверкой условия, предполагает проверку условия до выполнения команд тела цикла, а цикл, имеющий постусловие, предполагает эту проверку выполнять после тела цикла.
- Цикл, имеющий постусловие, предполагает обязательное выполнение команд тела цикла минимум один раз, цикл, имеющий предусловие, может не выполнять команды тела цикла вообще.
- В цикле, имеющем предусловие, выполняется проверка условия продолжения цикла, в цикле, имеющем постусловие, выполняется проверка условия выхода из цикла.
При использовании в программах на языке С++ циклических преобразований, необходимо учитывать следующие моменты:
- Для того, чтобы выполнение цикла не оказалось бесконечным, команды, содержащиеся в теле цикла, обязаны предопределять условие выхода из цикла.
- Условия выхода из цикла должно являться корректным выражением и содержать значения, определённые ещё до начала исполнения команд тела цикла.
Помимо указанных выше типов циклов, есть ещё цикл, не имеющий никаких условий (безусловный цикл), который применяется в случаях, когда заранее определено количество необходимых повторений тела цикла. Алгоритм безусловного цикла представлен на рисунке три:
Рисунок 3. Алгоритм безусловного цикла. Автор24 — интернет-биржа студенческих работ
В начале исполнения безусловного цикла переменная i получает стартовое значение in. Далее выполняется сравнение переменной i с конечным значением iK. Если переменная i превышает iK, то выполнение цикла завершается, и управление переходит к очередному, расположенному за телом цикла, оператору. Иначе снова выполняются команды тела цикла, величина переменной i возрастает на шаг di, и алгоритм повторяется.
Циклические преобразования целых чисел в языке С++
Когда известно точно необходимое число циклических итераций (повторений), то в программном языке С++ можно применить цикл типа for. Синтаксис цикла записывается следующим образом:
for (операция перед началом цикла;
условие продолжения цикла;
действия в конце каждой итерации цикла) {
инструкция цикла;
инструкция цикла 2;
инструкция цикла N;
}
Под итерацией понимается выполнение одного прохода данного цикла. Частным случаем является следующий вариант данного цикла:
for (счетчик = значение; счетчик
Счётчиком цикла является переменная, которая хранит число повторов этого цикла. Синтаксис цикла для этого случая описывается следующим образом:
- Выполняется присваивание исходного значения счётчику цикла, далее полагается поставить точку с запятой.
- Далее выполняется задание конечного значения счётчику цикла. По достижении счётчиком заданного предела, выполнение цикла завершается. Синтаксис предполагает и здесь точку с запятой.
- Выполняется задание шага цикла. Шагом цикла является величина, на которую возрастает или становится меньше значение счётчика цикла после выполнения каждого прохода.
Рассмотрим конкретный пример. Необходимо написать программу на языке С++, которая выполнит суммирование всех чисел начиная от единицы и до тысячи. Текст такой программы приведён ниже:
#include
using namespace std;
int main()
{
int i; // счетчик цикла
int sum = 0; // суммирование чисел от единицы до тысячи.
setlocale(0, "");
for (i = 1; i
Если выполнить компиляцию этого программного текста и исполнить полученные коды, то итоговым результатом будет число 500500, которое и является суммой всех целых чисел, начиная от единицы, и заканчивая тысячей. Подсчёт этой суммы в ручном режиме отнял бы достаточно большое количество усилий и времени, а применение циклических программных процедур всё это свело к минимуму.
Следует отметить, задание конечного значения счётчика выполняется при помощи нестрогого неравенства, то есть меньше или равно (
Если неизвестно количество итераций в цикле, то нужно использовать цикл while или do...while. Синтаксис цикла while в языке программирования С++ определяется такими правилами:
while (Условие) {
Тело цикла;
}
Циклы этого типа выполняются до тех пор, пока условие, которое указано внутри круглых скобок, будет истинным. Рассмотрим пример решения этой же задачи, но с использованием цикла while. То есть, ниже приводится текст программы, которая выполняет суммирование всех целых чисел от единицы до тысячи:
# nclude
using namespace std;
int main()
{
setlocale(0, "");
int i = 0; // инициализация счетчика цикла.
int sum = 0; // инициализация счетчика суммы.
while (i
Если компилировать и исполнить эту программу, то итог будет тот же самый, что и в программе выше.