Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 7_Многомерные массивы

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
158.74 Кб
Скачать

Пример объявления и инициализации двумерного массива

//Поле игры ”крестики-нолики”

//0 – нолик

//1 – крестик

//-1 – пусто

char battlefield[3][3]=

{

 

 

 

{ 0, 1, 1},

// первая строка

{ 1, 0, -1},

//

вторая

строка

{-1, 1, -1}

//

третья

строка

};

 

 

 

 

0

1

2

0

0

1

1

1

1

0

-1

2

-1

1

-1

11

Задание

Объявите массив для хранения вершин шестиугольника ABCDEF в двумерной системе координат

Заполните массив координатами шестиугольника:

A(0,1), B(2,5), C(3,8), D(9,10), E(12,6),

F(11,4)

12

Пример объявления и инициализации двумерного массива

// Вершины шестиугольника int vertex[6][2]=

{

{ 0,

1},

// вершина A

{ 2,

5},

// вершина B

{ 3,

8},

// вершина С

{ 9, 10},

// вершина D

{12,

6},

// вершина E

{11,

4}

// вершина F

};

 

0

1

0

0

1

1

2

5

2

3

8

3

9

10

4

12

6

5

11

4

 

x

y

Кол-во памяти, занимаемой массивом =

13

6 x 2 x 4 = 48 байт

 

Представление двумерного массива в памяти

Логическое представление

vertex

0

1

0

0

1

1

2

5

2

3

8

3

9

10

4

12

6

5

11

4

Физическое представление

vertex

0

1

2

3

4

5

6

7

8

9

10

11

 

0

1

2

5

3

8

9

10

12

6

11

4

 

 

 

 

 

 

 

 

 

 

 

 

 

14

Пример трехмерного массива

//Массив символов книги - в книге не более

//700 страниц по 41 строке,

//в каждой строке до 72 символов

char book[700][41][73];

 

 

 

Алгоритм — это

 

 

 

 

 

 

 

 

 

 

 

 

 

 

предписание в

 

 

 

 

 

виде

конечной по-

-

 

 

 

 

 

 

следовательности

 

-

 

 

 

дискретных шагов,

 

 

 

 

 

которое задает

 

 

 

 

 

процесс преоб-

 

 

 

 

 

разования исход-

-

 

 

 

 

ной информации в

в

-

 

 

 

 

 

результат.

 

в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кол-во памяти, занимаемой массивом =

15

700 x 41 x 73 = 2095100 байт

Обращение к элементам многомерного массива

Обращение к элементу массива:

<имя массива>[<индекс 1>][<индекс 2>]...[<индекс N>]

Обращение к подмассиву:

<имя массива>[<индекс 1>][<индекс 2>]...[<индекс K>]

где K < N

16

Операция обращения к элементу массива

Операция обращения к элементу массива (квадратные скобки) является бинарной операцией с левой ассоциативностью

При обращении к элементу многомерного массива происходит последовательное применение операции слева направо:

<имя массива>[<индекс 1>][<индекс 2>]

<подмассив>

[<индекс 2>]

17

<значение элемента>

Обращение к элементу массива как результат вычисления выражения

 

 

0

 

 

1

 

 

2

 

0

1

 

0

1

 

0

1

0

0

1

0

7

3

0

9

4

1

2

5

1

9

5

1

6

8

2

3

8

2

0

2

2

9

9

int arr[3][3][2]

arr[1] [2] [0]

1

 

0

1

0

7

3

1

9

5

2

0

2

int [3][2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

2

0

 

2

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

int [2]

 

 

2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

int

Обращение к элементу массива как результат вычисления выражения

Алгоритм — это

char [3][12][15] предписание в

виде конечной по- - следовательности - дискретных шагов, которое задает

процесс преобразования исход- - ной информации в в -

результат. в

char [12][15]

book [0] [7] [12]

Алгоритм — это предписание в виде конечной последовательности дискретных шагов, которое задает

процесс преобразования исходной информации в

результат.

char [15] процесс преоб-

19

char

б

 

 

Задание

Какое значение будет возвращено в результате следующего выражения

battlefield[2]

Какое значение будет возвращено в результате следующего выражения

battlefield[1][2]

20