Due-dimensionale array in C ++

Due-dimensionale array in C ++
4.8 (96.67%) 6 voti




двумерные массивы c++, двумерные массивы с++, многомерные массивы с++

Помимо одномерных массивов вам может понадобиться для работы использование многомерного массива (двумерного, трёхмерного…). В этом уроке будут рассмотрены двумерные массивы. Они самые распространенные, а остальные встречаются крайне редко.

Мы уже рассматривали в предыдущих статьях matrici tridimensionali e Si-stroki (символьные массивы).Ha detto, che gli elementi dell'array vengono posizionati consecutivamente in memoria – elemento per elemento. Visivamente, possono essere rappresentati come una singola riga nella memoria di dati. Чтобы обратиться к какому-либо элементу такого массива, sufficiente indicare il nome e l'indice di voce. La prima differenza è una matrice bidimensionale di unidimensionale – его элементы содержат два индекса: int arr [3][4]; Данные такого массива можно представить, una tabella: 3 x 4.

двумерные массивы c++, многомерные массивы c++

Il primo nome della indice di matrice – Questo indice di riga, secondo – indice di colonna.

двумерные массивы c++, многомерные массивы c++

Когда вы уже посмотрели на эти рисунки, можно сказать о двумерном массиве такэто массив, в котором каждый элемент также является массивом. int arr [3][4];это массив из 3-х элементов, каждый из которых это массив из 4-х элементов.

Данные двумерного массива также располагаются в памяти последовательно, но построчно. Сначала строка с индексом 0 – ячейки от 0-й до 3-й, далее строка с индексом 1 – ячейки от 0-й до 3-й

Что могут хранить элементы двумерных массивов? per esempio, можно хранить номера парковочных мест в многоэтажном паркинге (6 этажей и на каждом 15 мест для парковки). Для этого надо объявить двумерный массив int floorsAndParkings[6][15]; и записать в его ячейки номера мест на каждом этаже. Двумерный массив может хранить Си-строки. per esempio: carbonizzare someStr [3][256]; Так мы объявили массив, который будет хранить 3 строки по 256 символов каждая.

Инициализация двумерного массива.

Записать данные в двумерный массив можно при его объявлении. Рассмотрим на примере с местами парковки. Допустим в паркинге 2 этажа по 4 места парковки на каждом. Объявим массив и инициализируем его:

int floorsAndParkings[2][4] = { { 1, 2, 3, 4 }, { 1, 2, 3, 4 } };

Чтобы такая инициализация выглядела более читабельно, оформим её так:

Come ricorderete, согласно стандарту C++11, contrassegno = можно упустить. Строки инициализируются по тому же принципу:

Как вывести на экран данные двумерного массива? Можно пойти длинным путём и обращаться к каждому элементу вручную:

двумерные массивы c++, многомерные массивы c++

Вывод Си-строк двумерного массива на экран немного легче, так как нам достаточно указать только имя массива и индекс строки. Далее выходной поток cout самостоятельно будет выводить все элементы символьного массива, пока не обнаружит ' 0'

двумерные массивы c++, многомерные массивы c++

Хорошо! А если нам надо заполнить и показать данные массива int floorsAndParkings[20][100] o char someStr[50][256]? Эту неблагодарную работу можно в десятки раз облегчить, используя циклы. Più precisamente cicli annidati.

Рассмотрим пример с паркингом. Показать пользователю схему паркинга: этажи и места для парковки. Чтобы забронировать место он должен выбрать номер этажа и номер места. После бронированиязаписать значение 0 в соответствующую ячейку, что будет означатьместо занято”.

Мы использовали per il ciclo ,sulle linee 15 – 24, для записи данных в массив и одновременно отображения их на экране. Если представлять этот двумерный массив как таблицуто внешний цикл per проходит по индексам строкот 0-й до 6-й. Вложенный циклпо индексам столбцов (по ячейкам строк таблицы) – от 0-й до 9-й. linee 32 – 82 находится цикл fare durante. Его роль в том, чтобы снова и снова предлагать забронировать место для автомобиля, пока это необходимо пользователю. В нем находятся два вложенных цикла fare durante. Они реализовывают выбор этажа и места для парковки с защитой от некорректного ввода значений. linee 57 – 81 comprendono blocco se altro , che, nel caso di una corretta scelta dell'utente visualizza un messaggio circa il successo prenotazione. Se il posto è occupato (cella contiene un valore 0) – notificare, Offre una gamma di pavimento e ripetere il sito e visualizza il sistema di parcheggio aggiornato, che ha segnato posti riservati.

Funziona in questo modo:

двумерные массивы c++, многомерные массивы c++

estensione…

двумерные массивы c++, многомерные массивы c++

Vi consiglio di guardare il video. array bidimensionali con 13 minuti.

Propongo di risolvere несколько задач по теме Due-dimensionale array.

Делитесь ссылками на статьи с нашего сайта со своими друзьями в социальной сети. Кнопки соц. сетей под статьей. grazie in anticipo!

Newsletter nuove lezioni sulla programmazione:

21 pensieri su "Due-dimensionale array in C ++

  1. Почему при проверке элементов массива мы отнимаем от floor и parkingPlace единицу?
    (floorsAndParkings[pavimento – 1][parkingPlace – 1])

    1. Потому что нумерация ячеек массива начинается с 0. per esempio: Человек вводит номер 7 — нам надо проверить ячейку 6.

  2. Почему у меня вышла ошибка “errore : name lookup of ‘fchanged for ISO ‘forscoping [-fpermissive]”.

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>