12 двуизмерни решетки (матрици) - INF - W
Концепцията на двумерен масив
двумерен структура данни масив, който съхранява правоъгълна маса (матрица) на формата:
Строго погледнато, не е C ++ структури от данни - многомерен масив. Multi-мерен масив, по-специално двумерен масив да бъдат третирани като масив от масиви. В тази връзка, може да се каже, че двумерен масив се използва само за визуално представяне на работата с данните (и да не се повиши ефективността на програмата) и в реалния живот, можете да направите доста едномерен масив. Как да се направи това е показано по-долу.
Описание С двумерен масив
Описание на двумерен масив е различно от описанието на линейна решетка с това, че двете измерения са посочени, всеки от които се съдържа в []:
Това описание означава, че декларираното Mas число масив, съдържащ 4 елемента, всеки от които съдържа 6 елемента. Смята се, че първото измерение определя линията, а втората - на колоните. По този начин, ние са декларирали двумерен масив, състояща се от 4 реда и 6 колони.
Инициализация на двумерен C-спектър
Тъй като ние се занимаваме с масив от масиви, инициализация се прави с вложени <> както е показано в примера по-долу:
Ако искате да се инициализира двумерен масив на нулеви елементи, необходимо е да се направи това:
Входа и изхода на двумерен С масив
За организиране на входните стойности на елементи на двумерен масив С и тяхната продукция се използва за вложени линия структура (обикновено за). Във външния контур (обикновено с параметър I) се извършва груба сила линии, докато в вложени цикъл се чрез текущия ред (т.е.. Е. Pass колони).
Програма 12.1 Попълване масив с произволни числа и изход.
Програмата показва следното:
Описание и инициализира двумерен масив масив
Описание масив на обекта като двуизмерна матрица, състояща се от 7 редове и колони 5, както следва:
изразяване масив
програма 12.2
Мерен масив като двумерен
Както казахме, не е задължително да се използва масив от масиви за работа с двумерни масиви, тъй като това може да доведе до неефективно алгоритъм. За тази цел можете да използвате едномерен масив. За да направите това, направете следното. Установи две константи да сътрудничат и ред за определяне на броя на редове и колони. Освен това, програмата може да бъде обработена масив елементи, например:
програма 12.3
Имоти диагонал на матрицата
Матрицата, в които броят на редовете и колоните на същото, наречен - квадрат.
Елементи с еднакви индекси (I == й) се намират на главната диагонала. Ако даден елемент е на вторичния диагонал. индексите, свързани с измерение (п) по следната формула: I + J == п + 2.
От позицията на елемента ще зависи от съотношението на индекси. Ако елементът е над главния диагонал, а след това аз. В противен случай, аз> й. Ако елементът е по-висока от втората диагонала, на I + J + 2. друго, I + J + 2> п. Въпреки това, когато решаването на проблемите с преминаването през матрица, трябва да избягвате (където е възможно) използването на условно ако конструкцията. Често, задачата може да се прилага по-ефективно чрез индекса на манипулация (в противен случай, аз и й променливи цикъл). Това е, за да сложи в ръцете на промяна на индекса на стойността на другия. Един пример за този проблем.
Програма 12.4 ценен квадратна матрица с размери N, чиито елементи са равни на 0. За да се запълни елементи, разположени под и в най-важните звена на диагонала.
Направете програма запълни номера масив от триъгълника на Паскал и изхода на масива.
Забележка. триъгълник на Паскал е:
В този триъгълник в горната и от двете страни има единици (програма 3 триъгълник "постави на една страна" - страна на триъгълника: първата колона, а главен диагонал). Всяко число е сумата от двете числа над него. Редове триъгълник симетрично по отношение на вертикалната ос.
програма 12.5
1. Какво е двумерен масив в C ++?
2. Списък на методите за попълване на данните двуизмерен масив.
3. Какви масив се нарича квадратна матрица?
4. Какво трябва да се има предвид при извличане на двумерен масив?
5. Каква е основната и вторичната диагоналната матрица?
1. Два положителни числа М и N. За да образуват размер М цяло число матрица х N. чиито елементи I-ия ред има стойност от 10 · I (I = 1, ..., М).
2. Два положителни числа М. N и набор от N номера. Форма размер матрица М х N., в която всеки ред съдържа всички номера от първоначалният комплект (в същия ред).
3. Два положителни цели числа N. М. D брой и набор от числа м. Форма размер матрица М х N. чиято първа колона съвпада с първоначалния набор от числа и елементите на всяка следваща колона е равна на сумата на съответния елемент на предходната колона и броя на D (в резултат на всеки ред на матрицата ще съдържа елементи на аритметична прогресия).
[/ Su_list]