- •Лабораторная работа №1
- •Теоретическая часть. Общие сведения.
- •Вариант 1. Создание проекта линейной и ветвящейся задачи
- •Рассмотрим более сложную программу, с условиями ветвления. Текст программы введем как продолжение предыдущего примера.
- •Выполнение проекта (запуск примера в среде Visual Studio .Net 2008)
- •Варианты 1 заданий к лабораторной работе №1
- •Массивы
- •Циклы for и foreach
- •Выполнение общего задания по разработке модуля циклических операций
- •После выполнения этого проекта можно приступить к реализации представленных ниже заданий.
- •Варианты 2 заданий к лабораторной работе №1
- •3.2. Дополнительная
Циклы for и foreach
Начнем сразу с примера цикла for:
int k = Int32.Parse(Console.ReadLine());
int sum=0;
for(int i=1; i<=k; i++){
sum+=i;
}
Console.WriteLine(sum);
Этот пример подсчитывает сумму чисел от 1 до введенного пользователем числа k. Сумма записывается в переменную sum и выводится на экран.
Очень часто циклы используются для некоторых действий с массивами. Так как нумерация элементов массива идет с нуля, то типичный цикл будет выглядеть так:
int[] a = {-5, 4, 55};
int sum=0;
for(int i=0; i<3; i++){
sum+=a[i];
}
В этом примере начальное значение для счетчика цикла равно нулю, и в условии продолжения цикла мы пишем знак "меньше", после которого ставится количество элементов в массиве. Разумеется, если в цикле должен выполниться только один оператор, то фигурные скобки можно не писать. Тут все, как в других C/C++-подобных языках.
Теперь рассмотрим пример цикла foreach:
int[] m = {-5, 4, 10};
int sum=0;
foreach(int i in m){
sum+=i;
}
В данном примере мы суммируем все элементы массива m, записывая сумму в sum.
В приведенном примере наш цикл перебирает все элементы массива m. На это нам указывает строка
...
foreach(int i in m){
...
которая интерпретируется так: для каждого целого числа из массива m делам что-то там. Если бы элементами массива были бы не целые, а, скажем, вещественные, то мы записали бы что-то вроде:
...
foreach(float i in m){
...
Т. е. мы пишем именно тип элементов массива. На самом деле foreach используется не только для массивов, но и для других объектов (например, для хэш-таблиц). Но это будет рассмотрено в последующих уроках.
Цикл со счетчиком определяется следующим образом:
for(инициализация счетчика; условие; изменение счетчика)
тело цикла
Цикл со счетчиком прекращается в том случае, когда условие становится ложным. Цикл с предусловием записывается следующим образом:
while(условие)
тело цикла
Цикл с предусловием прекращается в том случае, когда условие становится ложным. Цикл с постусловием записывается следующим образом:
do
тело цикла
while(условие);
Цикл с постусловием прекращается в том случае, когда условие становится ложным. Цикл с массивом записывается следующим образом:
foreach(элемент массива in массив)
тело цикла
Цикл с массивом прекращается в том случае, когда будет закончен перебор всех элементов массива. Во всех циклах можно применять операторы break и continue.
Для проверки условия используется следующая конструкция:
if (условие)
условие истинно
else
условие ложно
Для множественной проверки значения переменной используется следующая конструкция:
switch(переменная){
case значение 1:
код для значения 1
break;
case значение 2:
код для значения 2
break;
default:
код для значения по умолчанию
}
Выполнение общего задания по разработке модуля циклических операций
После объявления массивов выполнить:
1.Генерацию массива одномерного размерностью 10, 20 или 100 с линейно нарастающей последовательностью значений элементов (i++).
2. Генерацию массива одномерного размерностью 10, 20 или 100 с линейно убывающей последовательностью значений элементов (N-I; i++).
3.Генерацию двумерного массива (матрицы) размерностью главной диагонали 10 или 20 с линейным нарастанием значений элементов на строке, и с увеличением всех значений в каждой последующей строке на единицу относительно значений элементов предыдущей строки – реализуется это следующим образом:
Объявляется двумерный массив (нельзя забывать об объявлении типов (целый), используемых в массивах идентификаторов для индексации элементов);
Заполнение элементов массива реализуется вложенными циклическими операторами-
Внешний цикл будет пересчитывать столбцы, внутренний цикл- элементы строк, при этом исполняемый оператор цикла реализует присвоение каждому элементу массива значение, равное сумме индексов этого элемента (a[i,j]=i+j).
Вывод на консоль можно осуществить в цикле, записав в качестве параметра оператора вывода общую форму идентификатора элементов массива. Для просмотра результатов работы проекта в период отладки целесообразно выводить на консоль первые три-пять элементов, а для матрицы – первые три элемента из двух строк соответственно.