8.2. Двумерен масив • Дефиниране на двумерен масив Двумерният масив е съвокупност от елементи от един и същи тип. Мястото на всеки елемент в общата съвокупност се определя от два индекса. Двумерният масив се разглежда като едномерен масив, всеки от елементите на който представлява отново едномерен масив. Типичен пример за данни, които могат да се представят като двумерен масив, са елементите на една матрица от математиката. Нека разгледаме матрицата m, с размерност 2 х 3 / 2 реда и 3 колони/. Тя може да се представи като едномерен масив с два елемента, всеки от които е отново едномерен масив с по три елемента. В езика С/С++ индексите на елементите на масива започват от 0 до броя на елементите минус 1. Като се отчита този факт, матрица m може да се представи като двумерен масив по следния начин: m -> m[0] -> m[0][0] aa m[0][1] aa m[0][2] m -> m[1] -> m[1][0] aa m[1][1] aa m[1][2] Дефиниране на двумерен масив: тип_на_елементите aa променлива_масив[брой_редове][брой_колони]; Пример: const int numberRows = 2; const int numberColumns = 3; double m[numberRows][numberColumns]; Възможна е следната още по-директнa дефиниция: double m[2][3]; Както при едномерните масиви, типът на елементите може да бъде всеки стандартен или предварително дефиниран тип. Променливата_масив се задава с идентификатор. Броят на редовете и колоните на масива се задават с константни изрази от целочислен тип с положителна стойност. Те се заграждат в квадратни скоби. Броят на редовете и колоните на масива не може да се променя след дефинирането. Всеки елемент от променливата m се означава с името на променливата, следвано от два индекса, заградени в квадратни скоби. Индексите се изменят от 0 до максималния брой минус 1. Всеки индекс се загражда в отделни квадратни скоби. Елементите на масива могат да съдържат стойност само от типа на елементите на масива. След дефинирането, за променливата m се заделя памет /обикновено 4 байта/, в която се записва адресът на първата компонента m[0]. m[0] съдържа адреса на елементa m[0][0], а m[1] съдържа адреса на елементa m[1][0] и т.н. За елемента m[0][0] и за всички останали елементи се заделя толкова памет, колкото изисква типа на елементите /в случая double/ Останалите елементи на масива m се разполагат последователно след първия елемент. Елементите на масива могат да бъдат инициализирани при дефинирането: double m[2][3]={ {1.1, 2.3, -3}, {4.3, -5.1, 6.4}}; Този запис е равностоен на следната дефиниция: double m[2][3]={ 1.1, 2.3, -3, 4.3, -5.1, 6.4}; • Извеждане на двумерен масив Извеждането на двумерния масив се извършва потделно за всеки елемент. Най-удобно е да се организира “цикъл в цикъл” с инструкцията for. Пример:
• Въвеждане на двумерния масив Въвеждането на елементите на двумерния масив се извършва потделно за всеки елемент. Най-удобно е да се използва “ цикъл в цикъл” с for. Пример:
|