Циклические алгоритмы
Цикл – набор команд, который выполняется многократно.
Тело цикла – последовательность выполняемых команд.
Параметр цикла – переменная управляющая выполнением цикла. Параметр изменяет свое значение при каждом прохождении тела цикла.
Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе.
1. Цикл с предусловием.
Блок схема:
Сначала проверяется условие, если оно истинно, то выполняется тело цикла, затем условие проверяется снова и так до тех пор, пока условие не станет ложным.
while(условие)
{
Блок команд
}
Пример. Напечатать квадраты чисел от 1 до 10. Здесь переменная i является параметром цикла, она участвует в условии и она же изменяется при каждом прохождении тела цикла.
int i=1;
While (i<=10)
{
Console.WriteLine( i*i);
i = i +1;
}
Еще пример. Найдем сумму чисел от i до k.
int k=5;
int i=1;
int sum=0;
while(i <=k) {
sum = sum + i;
i++;
}
2. Цикл с постусловием
Сначала выполняется тело цикла, затем проверяется условие, если условие истинно, то тело цикла выполняется еще раз. И так до тех пор, пока условие не станет ложным.
do
{
тело цикла
}
while (условие);
Пример. Напечатать квадраты чисел от 1 до 10.
int i=1;
do
{ Console.WriteLine( i*i);
i = i +1;
}
while (i<=10)
Поскольку условие проверяется после выполнения тела цикла, то тело цикла с постусловием всегда будет выполнено хотя бы один раз, независимо от истинности условия.
3. Цикл с заданным числом повторений (параметрический цикл)
for (Параметр = НачЗн; Условие; Шаг)
{
Тело цикла;
}
Условие проверяется перед каждым повторением тела цикла. Если оно истинно, то тело цикла выполняется и так до тех пор, пока параметр цикла будет удовлетворять условию.
Пример. Напечатать квадраты чисел от 1 до 10.
int i;
for(i=1;i<=10;i=i+1)
{ Console.WriteLine( i*i);
}
Оператор break делает принудительный выход из цикла, даже когда условие цикла — истинно. Оператор break удобно использовать, когда необходимо выйти из цикла при особых обстоятельствах. Оператор continue нужен если необходимо пропустить какой-то блок кода, но при этом не прекращать работу цикла.
Упражнения:
1. Найти сумму четных чисел от 1 до 100
2. Вывести все числа от 1 до 100 кратные пяти
3. Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое.
4. Вывести на экран таблицу вида:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
Массивы
Массив представляет набор однотипных переменных. Объявление массива похоже на объявление переменной: тип_переменной[] название_массива. Например,
int[] nums = new int[4];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 5;
Console.WriteLine(nums[3]);
Здесь вначале мы объявили массив nums, который будет хранить данные типа int. Далее используя операцию new, мы выделили память для 4 элементов массива: new int[4]. Число 4 еще называется длиной массива.
Отсчет элементов массива начинается с 0, поэтому в данном случае, чтобы обратиться к четвертому элементу в массиве, нам надо использовать выражение nums[3].
И так как у нас массив определен только для 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение IndexOutOfRangeException.
В предыдущем примере мы сначала создали массив, а потом определили для всех его элементов значения. Но есть и альтернативные пути инициализации массивов:
// эти два способа равноценны
int[] nums2 = new int[] { 1, 2, 3, 5 };
int[] nums3 = { 1, 2, 3, 5 };
Массивы бывают одномерными и многомерными. В предыдущих примерах мы создавали одномерные массивы, а теперь также создадим двухмерный:
int[] nums1 = new int[] { 0, 1, 2, 3, 4, 5 }; int[,] nums2 = { { 0, 1, 2 }, { 3, 4, 5 } }; |
Визуально оба массива можно представить следующим образом:
Дата добавления: 2017-08-01; просмотров: 1662;