Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_Уровни языков программирования. Язык C#...doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
352 Кб
Скачать
☆

Сложные типы данных – массивы чисел и символов Одномерные массивы

Массив это последовательность элементов.

Объявление массивов:

int[] massiv1;

double[] massiv2;

char[] massiv3;

Пара символов [ ] в этом контексте обозначает массив, перед скобками указывается тип элементов.

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

int[] myIntArray;

myIntArray = new int [5];

Размер может быть константой, переменной или выражением. По умолчанию массив после создания массив заполняется нулями.

Так же при создании можно описать полное содержимое в виде списка констант:

int[] myIntArray;

myIntArray = new int[] {5, 9, 10, 2, 99};

После инициализации можно начинать работу с элементами массива.

Обращение к элементам осуществляется по индексу, т.е. по их позиции в списке. Индекс первого элемента в массиве равен 0. Индекс последнего в таком случае получается равным размеру массива-1.

myIntArray[3]=777;

Присваивание значения 4му по счету элементу массива.

Работа с отдельным элементом массива ведется абсолютно так же как и с обычным целым числом.

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

int [] Numbers = new int [10];

for(i = 0 ; i < 10; i++)

{

Console.WriteLine(Numbers[i]);

}

Цикл пройдет 10 раз и выведет элементы от Numbers[0] до Numbers[9]. При этом все эти элементы будут равны 0, т.к массив был заполнен по умолчанию.

Массив можно заполнить значиниями несколькими способами. При небольшом количестве элементов массив можно инициализировать константами или ввести с клавиатуры.

int [] Numbers = new int [10];

for(i = 0 ; i < 10; i++)

{

Numbers[i]=Convert.ToInt32(Console.ReadLine());

}

Так же массив можно заполнить случайными числами(в лабе)

Использование оператора foreach

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

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

int sum = 0;

foreach(int number in Numbers)

{

sum += number;

}

WriteLine("Summa = {0}", sum);

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

Для-Каждого number В Numbers

sum += number

Все-Для-Каждого

Обратите внимание, что для вычисления суммы достаточно знать только идентификатор массива Numbers, но нет необходимости знать его длину. К сожалению, оператор foreach не позволяет изменять содержимое элементов массива, но для просмотра массива (и, как вы узнаете позже, для просмотра содержимого контейнеров объектов других типов) он очень удобен. Как только вы попытаетесь изменить элемент массива в цикле foreach вы получите сообщение компилятора от ошибке:

Типы задач обработки одномерных числовых массивов

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

Попытаемся выделить основные типы задач, решаемых в рамках данного раздела. Рассмотрим алгоритмы решения элементарных задач, из которых, как правило, состоит решение реальных задач, встречающихся на практике.

Подсчет суммы или произведения элементов

Подсчет количества элементов, отвечающих заданному условию

Поиск элемента в массиве

Поиск последовательности элементов, отвечающих заданному условию

Перестановка элементов в массиве

Сдвиг элементов массива

Удаление и вставка элементов массива

Упорядочение элементов массива

Создание одного массива из другого

Поиск одинаковых и различных элементов массива

Слияние двух массивов в один