Вход/Регистрация
C# 4.0 полное руководство - 2011
вернуться

Шилдт Герберт

Шрифт:

// Продемонстрировать двумерный массив.

using System;

class TwoD {

static void Main { int t, i;

int[,] table = new int[3, 4];

for(t=0; t < 3; ++t) {

for(i=0; i < 4; ++i) { tablejt,i] = (t*4)+i+l;

• Console.Write(table[t, i] + " ");

}

Console.WriteLine;

}

}

}

В данном примере элемент массива table [ 0, 0 ] будет иметь значение 1, элемент массива table [0,1] — значение 2, элемент массива table [0,2] — значение 3 и т.д. А значение элемента массива table [2,3] окажется равным 12. На рис. 7.1 показано схематически расположение элементов этого массива и их значений.

Рис. 7.1. Схематическое представление массива table, созданного в программе TwoD

СОВЕТ

Если вам приходилось раньше программировать на С, C++ или Java, то будьте особенно внимательны, объявляя или организуя доступ к многомерным массивам в С#. В этих языках программирования размеры массива и индексы указываются в отдельных квадратных скобках, тогда как в C# они разделяются запятой.

Массивы трех и более измерений

В C# допускаются массивы трех и более измерений. Ниже приведена общая форма объявления многомерного массива.

тип[, . . ., ] имя_массива = new тип[размер1, размер2, . . . размеры] ;

Например, в приведенном ниже объявлении создается трехмерный целочисленный массив размерами 4><10хЗ.

int[,,] multidim = new int[4, 10, 3];

А в следующем операторе элементу массива multidim с координатами местоположения (2,4,1) присваивается значение 100.

multidim[2, 4, 1] = 100;

Ниже приведен пример программы, в которой сначала организуется трехмерный массив, содержащий матрицу значений 3х3><3, а затем значения элементов этого массива суммируются по одной из диагоналей матрицы.

// Суммировать значения по одной из диагоналей матрицы 3x3x3.

using System;

class ThreeDMatrix { static void Main {

int[,,] m = new int[3, 3, 3]; int sum = 0; int n = 1;

for(int x=0; x < 3; x++) for (int y=0; у < 3; y++) for(int z=0; z < 3; z++) m[x, y, z] = n++;

sum = m[0, 0, 0] +m[l, 1, 1] +m[2, 2, 2];

Console.WriteLine("Сумма значений по первой диагонали: " + sum);

}

}

Вот какой результат дает выполнение этой программы.

Сумма значений по первой диагонали: 42

Инициализация многомерных массивов

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

тип[,] имя_мас сив а = {

{val, val, valf ..., val},

{val, val, val, . . ., val},

{val, val, val, . . ., val}

};

где val обозначает инициализирующее значение, а каждый внутренний блок — отдельный ряд. Первое значение в каждом ряду сохраняется на первой позиции в массиве, второе значение — на второй позиции и т.д. Обратите внимание на то, что блоки инициализаторов разделяются запятыми, а после завершающей эти блоки закрывающей фигурной скобки ставится точка с запятой.

  • Читать дальше
  • 1
  • ...
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: