Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Одномерные массивы. Программирование с использованием одномерных массивов






Лабораторная работа № 6

Программирование с использованием одномерных массивов

 

Теоретическая часть

Одномерные массивы

Массивом называют упорядоченную совокупность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов. Индексы задаются целочисленным типом. Число индексов характеризует размерность массива. В языке C# каждый индекс изменяется в диапазоне от 0 до некоторого конечного значения. При объявлении массива границы задаются выражениями. Если все границы заданы константными выражениями, то число элементов массива известно в момент его объявления и ему может быть выделена память ещё на этапе трансляции. Такие массивы называются статическими. Если же выражения, задающие границы, зависят от переменных, то такие массивы называются динамическими, поскольку память им может быть отведена только динамически в процессе выполнения программы, когда становятся известными значения соответствующих переменных. Массиву, как правило, выделяется непрерывная область памяти.

В языке С# снято существенное ограничение языка С++ на статичность массивов. Массивы в языке C# являются настоящими динамическими массивами. Как следствие этого, массивы относятся к ссылочным типам, память им отводится динамически в " куче". Массивы могут быть одномерными и многомерными.

Объявление одномерного массива выглядит следующим образом:

< тип> [] < объявители>;

Как и в случае объявления простых переменных, каждый объявитель может быть именем или именем с инициализацией. В первом случае речь идёт об отложенной инициализации. При объявлении с отложенной инициализацией сам массив не формируется, а создаётся только ссылка на массив, имеющая неопределённое значение Null. Поэтому пока массив не будет реально создан и его элементы инициализированы, использовать его в вычислениях нельзя. Вот пример объявления трёх массивов с отложенной инициализацией:

int[] a, b, c;

Чаще всего при объявлении массива используется имя с инициализацией. Как и в случае простых переменных, могут быть два варианта инициализации. В первом случае инициализация является явной и задаётся константным массивом. Вот пример:

double[] x = {5.5, 6.6, 7.7};

Следуя синтаксису, элементы константного массива следует заключать в фигурные скобки.

Во втором случае создание и инициализация массива выполняется с помощью операции new. Пример:

int[] d = new int[5];

В этом случае в динамической памяти создается сам массив, элементы которого инициализируются константами соответствующего типа (нуль для арифметики, пустая строка для строковых массивов), и ссылка связывается с этим массивом. Если массив инициализируется константным массивом, то в памяти создаётся константный массив, с которым и связывается ссылка.

Если элементы массива не заданы при инициализации, то они либо вычисляются, либо вводятся пользователем. Рассмотрим пример работы с массивами:

// объявляются три одномерных массива A, B, C

int[] A = new int[5], B= new int[5], C= new int[5];

// заполняется данными с клавиатуры массив A (консольный проект)

for(int i = 0; i < 5; i++) A[i] = int.Parse(Console.ReadLine());

// вычисляются элементы массива C

for(int i = 0; i < 5; i++) C[i] = A[i] + B[i];

// объявление массива с явной инициализацией

int[] x ={5.5, 6.6, 7.7};

// объявление массивов с отложенной инициализацией

int[] u;

// u = {1, 2, 3}; // присваивание константного массива недопустимо!

u = new int[3];

for(int i = 0; i < 3; i++) u[i] = i + 1;

Показаны разные способы объявления массивов.

Сначала объявляются одномерные массивы A, B и C. Значения элементов этих трёх массивов имеют один и тот же тип int. То, что они имеют одинаковое число элементов, произошло по воле программиста, а не диктовалось требованиями языка. Значения в массив А вводились, а в массив B – нет, но сложение элементов корректно, потому что при объявлении элементы массива B получили нулевые значения.

Массив x объявлен с явной инициализацией. Число и значения его элементов определяется константным массивом.

Массив u объявлен с отложенной инициализацией. Обратите внимание на закомментированный оператор присваивания! В отличие от инициализации, использовать константный массив в правой части оператора присваивания недопустимо. Эта попытка приводит к ошибке, поскольку u – это ссылка, и ей нельзя присвоить константный массив. В последующих операторах массив u инициализируется в объектном стиле – его элементы получают значения в цикле.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.