|
Программирование >> Обработка исключительных ситуаций
В каждом из остальных массивов по четыре элемента целого типа. Как видно из : лераторов 3-5, массив при описании можно инициализировать. Если при этом не задана размерность (оператор 3), количество элементов вычисляется по количеству инициализирующих значений. Для полей объектов и локальных переменных можно опускать операцию new, она будет выполнена по умолчанию (оператор 2). Если присутствует и размерность, и список инициализаторов, размерность должна быть константой(оператор 4). ПРИМЕЧАНИЕ- Если количество инициализирующих значений не совпадает с размерностью, возникает ошибка компиляции. В качестве примера рассмотрим программу, которая определяет сумму и количество отрицательных элементов, а также максимальный элемент массива, состоящего из 6 целочисленных элементов (листинг 6.1). Листинг 6.1 . Работа с одномерным массивом ,г д System; -;-espace ConsoleApplicationi class Classl static void MainO const int n = 6; int[ ] a = new int[n ] { 3, 12. 5. -9, Console.WriteLineC Исходный массив: ); for(inti = 0; i<n; + + i ) Console.WriteC \t + a[i ] ); Console.WriteLineC); long sum = 0; int num =0 ; forCinti=0;i< n; + + i ) if ( a[i] < 0 ) сумма отрицательных элементов количество отрицательных элементов sum += a[i]; ++num; Console.WriteLineC Console.WriteLineC Сумма Кол-во отрицательных отрицательных sum num int max = a[0] ; fo r ( int i =1 ; i < n; + + i ) i f С a[i ] > max ) max = a[i] ; Console.WriteLineC Максимальный элемент максимальный элемент max ); Обратите внимание на то, что для вывода массива требуется организовать цикл. Рис. 5.1. Состав класса Операции задают действия с объектами с помощью знаков операций. 7J События определяют уведомления, которые может генерировать класс. Типы - это типы данных, внутренние по отношению к классу. Первые пять видов элементов класса мы рассмотрим в этой главе, а остальные - з последующих. Но прежде чем начать изучение, необходимо поговорить о присваивании и сравнении объектов. Присваивание и сравнение объектов Операция присваивания рассматривалась в разделе Операции присваивания (см. с. 57). Механизм выполнения присваивания один и тот же для величин любого типа, как ссылочного, так и значимого, однако результаты различаются. При присваивании значения копируется значение, а при присваивании ссылки - ссылка, поэтому после присваивания одного объекта другому мы полупим две ссылки, указывающие на одну и ту же область памяти (рис. 5.2). Рисунок иллюстрирует ситуацию, когда было создано три объекта, a, b и с, а затем выполнено присваивание b = с. Старое значение b становится недоступным л очищается сборщиком мусора. Из этого следует, что если изменить значение Глава 6. Массивы и строки Прямоугольные массивы Прямоугольный массив имеет более одного измерения. Чаще всего в программах используются двумерные массивы. Варианты описания двумерного массива: тип[,] имя; тип[, ] имя = new тип [ разм 1, разм 2 ]; тип[,] имя = { списокинициализаторов }; тип[,] имя = new тип [,] { списокинициализаторов }; тип[,] имя = new тип [ разм 1, разм 2 ] { списокинициализаторов }; Примеры описаний (один пример для каждого варианта описания): int[, ] a; /II int[, ] b = new int[2 . 3] ; 111 int[,] с = {{1 , 2. 3}. {4, 5. 6}}; 3 int[,] с = new int[.] {{1, 2, 3}, {4, 5. 6}}; 4 элементов нет элементы равны О new подразумевается размерность вычисляется int[J d = new int[2.3] {{1. 2. 3}, {4. 5, 6}}; 5 избыточное описание Если список инициализации не задан, размерности могут быть не только константами, но и выражениями типа, приводимого к целому. К элементу двумерного массива обращаются, указывая номера строки и столбца, на пересечении которых он расположен, например: а[1 , 4] b[i . j ] b[i. i] ВНИМАНИ Е- Необходимо помнить, что компилятор воспринимает как номер строки первый индекс, как бы он ни был обозначен в программе. В качестве примера рассмотрим программу, которая для целочисленной матрицы размером 3x4 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке (рис. 6.3). /77-1 Рис. 6.3. Матрица из т строк и п столбцов Для нахождения среднего арифметического элементов массива требуется найти их общую сумму, после чего разделить ее на количество элементов. Порядок перебора элементов массива (по строкам или по столбцам) роли не играет. Нахождение количества положительных элементов каждой строки требует просмотра матрицы по строкам. Схема алгоритма приведена на рис. 6.4, программа - в листинге 6.2.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |