Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Многомерные массивы. Матрицы
Любой массив характеризуется именем, размером, числом измерений (размерностью) и типом элементов. Размер массива соответствует количеству его элементов. Размерность массива, или число измерений, определяет количество индексов, необходимых для однозначного доступа к элементам массива. Говорят, что число индексов характеризует размерность массива. До сих пор мы рассматривали одномерные массивы, в которых доступ к элементу массива определяется одним индексом. Каждый элемент такого массива имеет номер или индекс, определяющий его местоположение в массиве. С точки зрения структуры данных одномерный массив является линейной структурой и соответствует понятию вектора в математике. Часто данные могут быть организованы в виде таблицы, где расположение каждого элемента определяется двумя параметрами. Например, место в зрительном зале задается указанием номера ряда и номером места в этом ряду. С точки зрения структуры данных – это таблица, что соответствует в математике понятию – матрица. Примером матрицы может быть таблица Пифагора (таблица умножения), состоящая из 10 строк и 10 столбцов, в которой каждый элемент определяется формулой a i j =i*j. Положение элемента a i j в таблице задается двумя индексами. Индекс i обозначает номер строки, а индекс j – номер столбца, на пересечении которых находится элемент матрицы. В программировании такие данные удобно описывать как двумерный массив, в котором каждому элементу так же соответствует два индекса: первый индекс - это номер строки, а второй - номер столбца, где расположен элемент матрицы. Таким образом, в матрице два измерения, то есть её размерность – два. Размер матрицы задается количеством элементов по каждому измерению и вычисляется выражением n * m, где n - число строк, а m - число столбцов в матрице. Для программирования рассмотренной выше таблицы Пифагора понадобится двумерный массив размером 10*10=100 элементов. В математике принято обозначать элемент матрицы, указывая номера строки и столбца мелким шрифтом после имени матрицы. Например, обращение к элементу 2-й строки 3-го столбца матрицы А обозначается a 23. В программировании индексы элементов записываются в скобках, в зависимости от языка программирования, квадратных или круглых, а индексы элемента или перечисляются через запятую, или помещаются каждый в свою пару скобок. В данном пособии при описании алгоритмов всеми способами, кроме непосредственно текста программы на конкретном языке, используется запись индексов строки и столбца через запятую в квадратных скобках после имени матрицы Например, запись А[2,3] означает обращение к элементу 2-й строки 3-го столбца матрицы А.
Количество используемых индексов массива может быть различным. Как уже известно, массивы с одним индексом являются одномерными, с двумя – двумерными и т. д. Чаще всего применяются массивы с одним или двумя индексами, реже – с тремя, ещё большее количество индексов встречается крайне редко. Массивы с несколькими индексами называют многомерными. Многомерные массивы создаются на основе одномерных. Двумерный массив – это одномерный массив, элементы которого являются одномерными массивами. Трехмерный массив – одномерный массив, элементы которого являются двумерными массивами. N-мерный массив – одномерный массив, элементы которого являются (N-1)-мерными массивами. Проиллюстрировать, как строятся многомерные массивы, можно на приведенном ниже примере. Например, строка – это одномерный массив символов. На странице помещается несколько строк, значит страница – одномерный массив строк и одновременно двумерный массив символов. Позиция каждого символа будет определяться номером строки и положением этого символа в строке. Несколько страниц образуют книгу, таким образом, книга – одномерный массив страниц, он же двумерный массив строк и он же трехмерный массив символов. Полка книг будет описываться одномерным массивом книг, он же двумерный массив страниц, трехмерный массив строк и четырехмерный массив символов. Книжный стеллаж представляется одномерным массивом полок, двумерным массивом книг, трехмерным массивом страниц, четырехмерным массивом строк и пятимерным массивом символов. Нетрудно продолжить эту последовательность для читального зала, содержащего несколько стеллажей, библиотеки, в которой не один читальный зал, и даже библиотеки, располагающейся в нескольких зданиях по несколько залов в каждом.
Для обращения к элементам многомерного массива требуется несколько индексов, поэтому для перебора всех элементов массива, как правило, используются вложенные циклы. Количество вложений зависит от размерности массива. Так, для обработки двумерных массивов используют 2 вложенных цикла. В зависимости от решаемой задачи просмотр матрицы может осуществляться или по строкам, или по столбцам. Когда действия производятся во всей матрице, то порядок обхода элементов неважен. Если необходимо произвести обработку по строкам, сначала обрабатываются все элементы первой строки, затем все элементы второй строки и так до конца массива. Для этого во внешнем цикле изменяется первый индекс (индекс строки), а во внутреннем – второй (индекс столбца). Иными словами, чтобы перемещаться по элементам одной строки, нужно изменять номера столбцов. В случае, когда необходимо выполнить действия по столбцам, поступают аналогично, с той лишь разницей, что внешний цикл организуется по столбцам, а внутренний цикл по строкам, т.е. сначала обрабатываются все элементы первого столбца, потом все элементы второго, третьего, и так далее, а для перемещения по элементам столбца изменяется номер строки. При заполнении матрицы с клавиатуры можно как выводить на экран сообщения-подсказки о том, значение какого именно элемента надо задать, так и не делать этого. В последнем случае пользователь имеет возможность задать матрицу таблично и визуально наблюдать, как размещаются элементы в строках и столбцах. Вывод матрицы на экран также можно осуществлять с указанием индексов каждого элемента или в виде таблицы. Второй способ является более наглядным, и если размер матрицы это позволяет, предпочтительно использовать именно табличный вывод.
|
||||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 84; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.138.144 (0.005 с.) |