Как сделать повторение программы в c

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

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

Циклы, их виды

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

Каждое повторение действий в алгоритмах – итерация.

Выделяют 3 основных вида повторяющихся структур:

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

Описывать подобные процессы удобно схематично или при помощи команд.

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

Описание цикла с условием двумя способами:

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

Выполнить: Запросите у пользователя число ( N ). Создайте простой цикл while с N итерациями (повторениями), который отображает значения счетчика цикла.

Пример выполнения:


[Название проекта: Lesson_4Lab1 , название файла L4Lab1.cs ]

  • Запустите Visual Studio.
  • Создайте консольное приложение, назовите проект Lesson_4Lab1 .
  • В окне Solution Explorer (Обозреватель решений) найдите файл Program.cs и переименуйте его в L4Lab1.cs .
  • Установите курсор непосредственно после открытой скобки функции Main , щелкните enter, чтобы перейти на новую строку.
  • Попросите пользователя ввести число, используйте метод ReadLine() :

static void Main(string[] args)

int N = Int32.Parse(Console.ReadLine()); int counter = 1; while (counter -->

Выполнить: Создайте цикл Do..while с 5 итерациями (повторениями), который выводит значения счетчика цикла.

Пример выполнения:


[Название проекта: Lesson_4Lab2 , название файла L4Lab2.cs ]

  • Запустите Visual Studio.
  • Создайте консольное приложение, назовите проект Lesson_4Lab2 .
  • В окне Solution Explorer (Обозреватель решений) найдите файл Program.cs и переименуйте его в L4Lab2.cs .
  • Установите курсор непосредственно после открытой скобки функции Main , щелкните enter, чтобы перейти на новую строку.
  • Начнем со счетчика counter = 1 . Создайте цикл Do..While с 5 итерациями. Используйте переменную с именем counter в качестве счетчика цикла (для создания цикла можно воспользоваться быстрой вставкой кода do + Tab (дважды) ):

Выполнить: Выведите последовательность 3 5 7 9 . 21 (от 3 до 21 с шагом = 2). Сделайте это дважды: используя while и do..while цикл.

Указание 1: В одном проекте создайте два цикла одновременно: while и do..while . Счетчики цикла должны иметь разные идентификаторы ( counter1 , counter2 ).

Указание 2: Для вывода значений используйте метод:


Пример выполнения:


[Название проекта: Lesson_4Task1 , название файла L4Task1.cs ]

int counter1 = 3; int counter2 = 3; while (counter1 -->

Выполнить: Выведите последовательность 15 12 9 6 3 0 (от 15 до 0 с шагом = -3). Сделайте это дважды: используя цикл while и do..while .

Указание: В одном проекте создайте два цикла одновременно: while и do..while . Счетчики цикла должны иметь разные идентификаторы ( counter1 , counter2 ).


Пример выполнения:


[Название проекта: Lesson_4Task2 , название файла L4Task2.cs ]

int counter1 = 15; int counter2 = 15; while (counter1 >= 0) < Console.Write($""); counter1-=3; > do < Console.Write($""); counter2-=3; > while (counter2 >= 0); -->

Выполнить: Вычислите умножение 2-значных четных чисел в интервале [10;20] (10 * 12 * 14 * 16 * 18 * 20). Выполните задание с помощью цикла while .

Указание: Для вычисления умножения необходимо использовать переменную с идентификатором product . Начните со значения product = 1 .


Пример выполнения:


[Название проекта: Lesson_4Task3 , название файла L4Task3.cs ]

int product = 1; int counter = 10; while (counter -->

Выполнить: Вводятся 5 вещественных чисел. Вычислите сложение введенных чисел. Выполните задание с помощью цикла while .

Указание 1: For real numbers and for variable sum you have to use the variable of double type:


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

Пример выполнения:


[Название проекта: Lesson_4Task4 , название файла L4Task4.cs ]

double sum = 0; int counter = 0; double numb; Console.WriteLine("Please enter 5 numbers and press Enter"); while (counter -->

Выполнить: Вводится последовательность целых чисел. Признаком завершения последовательности является введенное число 0 (если введено 0, то ввод последовательности завершен). Требуется найти минимальное среди чисел последовательности. Для выполнения задания используйте цикл do..while . Не допускается использование стандартной функции min .

Пример выполнения:

[Название проекта: Lesson_4Lab3 , название файла L4Lab3.cs ]

  • Запустите Visual Studio.
  • Создайте консольное приложение, назовите проект Lesson_4Lab3 .
  • В окне Solution Explorer (Обозреватель решений) найдите файл Program.cs и переименуйте его в L4Lab3.cs .
  • Попросите пользователя ввести числа:

. Console.WriteLine("Введите последовательность чисел и закончите ввод нулем"); .

int numb; int min= int.MaxValue; Console.WriteLine("Please enter the seq of numbers and finish with 0"); do

Выполнить: Вводится последовательность целых чисел. Признаком завершения последовательности является введенное число 0 (если введено 0, то ввод чисел завершен). Выведите максимальное число последовательности и его порядковый номер в последовательности. Для выполнения программы используйте цикл Do..while . Не допускается использование стандартной функции max .


Пример выполнения:


[Название проекта: Lesson_4Task5 , название файла L4Task5.cs ]

int numb; int counter = 0; int pos = 0; int max= int.MinValue; Console.WriteLine("Please enter the seq of numbers and finish with 0"); do < numb = Int32.Parse(Console.ReadLine()); counter++; if (numb >max && numb!=0) < max = numb;pos = counter; >> while (numb != 0); Console.WriteLine($"the maximum number is , its position is "); -->

Создание приложений windows forms

To do: Создайте приложение Windows Forms Application , которое вычисляет сумму ряда x + x/2 + x/3 + x/4 + … для (| x | [Solution and Project name: Lesson_4Lab4 , form name L4Lab4.cs ]


Пример выполнения:

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

Цикл while

Цикл с предусловием while – проверяет условие в начале выполнения, и имеет следующий синтаксис:

Выполняется до тех пор, пока условие – истинно(равно true).

Пример: вывод в консоль цифр от 1 до 9:

Цикл do while

Цикл с постусловием do while – осуществляет проверку условия после выполнения одной итерации, то есть тело цикла, не зависимо от условий, выполниться хотя бы один раз.

Пример: вычисление суммы чисел от 1 до 10:

Цикл for

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

Имеет следующий синтаксис:

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

Рассмотрим пример вычисления произведения чисел от 1 до 10:

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

  1. инициализируется переменная – int i = 1;
  2. проверяется условие i

Безусловно, наиболее используемым циклом в языке C++ является цикл for.

Цикл for

Цикл for в языке С++ идеален, когда известно необходимое количество итераций. Выглядит он следующим образом:

for (объявление переменных; условие; инкремент/декремент счетчика)
тело цикла;

Или, преобразуя for в эквивалентный цикл while:

< // обратите внимание, цикл находится в блоке
объявление переменных;
while (условие)
<
тело цикла;
инкремент/декремент счетчика;
>
> // переменные, объявленные внутри цикла, выходят из области видимости здесь

Переменные, определенные внутри цикла for, имеют специальный тип области видимости: область видимости цикла. Такие переменные существуют только внутри цикла и недоступны за его пределами.

Выполнение цикла for

Цикл for в C++ выполняется в 3 шага:

Шаг №1: Объявление переменных. Как правило, здесь выполняется определение и инициализация счетчиков цикла, а точнее — одного счетчика цикла. Эта часть выполняется только один раз, когда цикл выполняется впервые.

Шаг №2: Условие. Если оно равно false, то цикл немедленно завершает свое выполнение. Если же условие равно true, то выполняется тело цикла.

Шаг №3: Инкремент/декремент счетчика цикла. Переменная увеличивается или уменьшается на единицу. После этого цикл возвращается к шагу №2.

Рассмотрим пример цикла for и разберемся детально, как он работает:

Сначала мы объявляем переменную count и присваиваем ей значение 0 . Далее проверяется условие count , а так как count равен 0 , то условие 0 имеет значение true. Следовательно, выполняется тело цикла, в котором мы выводим в консоль переменную count (т.е. значение 0 ).

Затем выполняется выражение ++count , т.е. инкремент переменной. Затем цикл снова возвращается к проверке условия. Условие 1 имеет значение true, поэтому тело цикла выполняется опять. Выводится 1 , а переменная count увеличивается уже до значения 2 . Условие 2 является истинным, поэтому выводится 2 , а count увеличивается до 3 и так далее.

В конце концов, count увеличивается до 10 , а условие 10 является ложным, и цикл завершается. Следовательно, результат выполнения программы:

0 1 2 3 4 5 6 7 8 9

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

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

Еще примеры циклов for

Давайте, используя цикл for, напишем функцию вычисления значений в степени n :

Функция возвращает значение base^exponent (число в степени n ). base — это число, которое нужно возвести в степень, а exponent — это степень, в которую нужно возвести base .

Если экспонент равен 0 , то цикл for выполняется 0 раз, и функция возвращает 1 .

Если экспонент равен 1 , то цикл for выполняется 1 раз, и функция возвращает 1 * base .

Если экспонент равен 2 , то цикл for выполняется 2 раза, и функция возвращает 1 * base * base .

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

8 7 6 5 4 3 2 1 0

Также с каждой новой итерацией мы можем увеличить или уменьшить значение счетчика больше, чем на единицу:

Ошибка неучтенной единицы

При написании циклов for помните, что цикл будет выполняться до тех пор, пока условие является истинным. Рекомендуется тестировать циклы, используя разные значения для проверки работоспособности цикла. Хорошей практикой является проверять циклы с помощью данных ввода (чисел, символов и прочего), которые заставляют цикл выполниться 0, 1 и 2 раза. Если цикл работает исправно, значит всё ОК.

Правило: Тестируйте свои циклы, используя входные данные, которые заставляют цикл выполниться 0, 1 и 2 раза.

Читайте также: