Значения элементам массива могут быть присвоены в процессе работы программы. Для этого следует организовать вложенные циклы, управляющие переменные которых позволяют индексировать строки и столбцы двумерного массива.
Пример 3. Заполнение двумерного массива случайными числами
int num[3][4]; //выделена память под двумерный массив
//внешний цикл индексирует строки
// внутренний цикл индексирует столбцы
num[i][j] = rand(); //присваиваивание элементу матрицы случайного числа
// вывод матрицы по строкам
Пример 4.
Если необходимо, чтобы при обявлении элементы массив были инициализированы нулевыми значениями, массив может быть объявлен как статический.
//Сформировать матрицу A(10,10) следующего вида:
static int a[N][N]; //Статический массив инициализируется нулями
a[i][j]=i-j+1; //условие попадания под гл. диагональ
//вывод полученного массива
Ввод элементов двумерного массива в диалоговом режиме
int num[3][4]; //выделена память под двумерный массив
Двумерный массив что это. Многомерные массивы. Пример. Теория. Что такое массив. Array. C++ #30
printf(«Введите элемент num[%d][%d]n»,i,j);
// вывод матрицы по строкам
Массивы строк
Массив строк можно организовать так же, как массив данных любого типа. Массив строк будет являться массивом массивов символов. Определяя массив строк также, как и при определении массива другого типа, следует использовать два индекса. Например, определение
char name [10] [20];
задает 10 строковых переменных name длиной не более 19 символов в каждой.
Строки можно вводить и выводить, используя только один цикл, повторяющийся по одному разу на каждую строку массива, как показано в примере 1.
Пример 1. Ввод-вывод массива строк.
// цикл по индексу строки
printf(“Введите строку №%d “,index);
// цикл по индексу строки
Если требуется задавать строки путем ввода значений отдельных символов, следует использовать вложенные циклы. Так, если необходимо ввести строки, составляющие массив char name[10][20], то следует организовать внешний цикл, который должен повторяться 10 раз, по одному на каждую строку и внутренний цикл, который должен иметь 19 повторов для ввода значений одной строки. В примере 1 показана программа, в которой вводятся 10 имен в массив, а затем все эти 10 строк с помощью цикла for выводятся на экран.
Источник: studfile.net
Двумерные массивы
Иногда данные гораздо удобнее хранить в таблице, чем в столбике/строке. Например, пишем мы игру-лабиринт. Нам нужно как-то хранить карту, где будут отмечены проходы и стены. Например, она могла бы выглядеть вот так.
Рис.1 Карта лабиринта
И тогда её можно было бы хранить в виде таблицы символов, где стены обозначены 1, проходы 0, начальная точка 3, конечная точка 9.
Двумерные массивы вывод. Заполнение. Двумерный массив циклы. C++ для начинающих. #32
0 9 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 3 0 0 1 0 0 0 0
Или таблица 12 на 31, где можно было бы хранить температуру в течение года. Понятно, что в некоторых месяцах будут заполнены не все клеточки таблицы, но это ничего страшного. Договоримся и будем туда записывать, например, число -9999.99, которое будет обозначать, что данные не определены.
Ещё примеры: таблица Пифагора, поле для игры в крестики нолики, поле для игры 2048.
В подобных случаях используют двумерные массивы, т.е. массивы, у которых два измерения (два счётчика).
Рис.2 Двумерный массив.
Объявить двумерный массив не сложнее, чем объявить одномерный массив. Просто необходимо указать обе его размерности в квадратных скобках. Первое число – количество строк, второе – количество столбцов.
Например, для массива с картинки объявление выглядело бы вот так:
int arr2[4][8];
Нумерация строк и столбцов, как и в одномерных массивах, начинается с нуля.
Имеется возможность инициализировать массив при объявлении.
int arr2[4][8] = ; // нулями int arr [2][4] = ,>; //произвольными значениями
Рис.3 Инициализация двумерного массива произвольными значениями
Пока элементы массива не инициализированы, они заполнены мусором. Проверьте это самостоятельно.
Обращение к конкретному элементу двумерного массива происходит так же, как и в одномерном массиве. Сначала пишется имя массива, а затем в отдельных квадратных скобках номер строки и номер столбца. Главное тут не перепутать. Сначала пишем номер строки, затем номер стоблца. Ну и не забывайте про то, что нумерация начинается с нуля.
Рис.4 Обращение к конкретному элементу двумерного массива.
Следующая программа иллюстрирует основные операции для работы с двумерными массивами.
#include int main(void) < int arr[4][8] = , , , >; printf(«%dt%dnn», arr[0][3], arr[2][4]); for (int i = 0; i < 4; i = i + 1)< for(int j = 0; j < 8; j = j + 1)< printf(«%dt», arr[i][j]); >printf(«n»); > return 0; >
Как видите, если в одномерном массиве мы использовали один цикл для перебора всех элементов массива, то в двумерном два цикла. Первый цикл последовательно перебирает строчки, а второй последовательно перебирает элементы строки. Индексы массива в цикле будут перебираться в следующей последовательности:
i = 0; j = 0; j = 1; j = 2; j = 3; j = 4; j = 5; j = 6; j = 7; i = 1; j = 0; j = 1; j = 2; j = 3; j = 4; j = 5; j = 6; j = 7; и т.д.
Следующая программа заполнит массив числами по порядку, а потом выведет его на экран.
#include int main(void) < int arr[4][8] = ; int k = 1; for (int i = 0; i < 4; i = i + 1)< for(int j = 0; j < 8; j = j + 1)< arr[i][j] = k; k = k + 1; >> for (int i = 0; i < 4; i = i + 1)< for(int j = 0; j < 8; j = j + 1)< printf(«%dt», arr[i][j]); >printf(«n»); > return 0; >
Вот и всё, что вам необходимо знать на начальном этапе о массивах. Теперь нужно хорошенько потренироваться в их использовании на практике.
Сохрани в закладки или поддержи проект.
Практика
Решите предложенные задачи:
Для удобства работы сразу переходите в полноэкранный режим
Дополнительные материалы
- пока нет
Источник: youngcoder.ru
Двумерные массивы в Pascal.
Двумерный массив представляет собой массив, в котором положение элементов определяется 2-мя индексами. Фактически, двумерный массив – это обычный (одномерный) массив, элементами которого являются другие одномерные массивы.
Поэтому двумерный массив можно задать следующим образом: b:array[1..n] of array[1..m] of integer.
Однако, подобная запись двумерного массива на практике используется нечасто. Наиболее предпочтительным является следующий вариант: b: array[1..n,1..m] of integer.
Схематично, двумерный массив можно представить в виде матрицы, где первый индекс [1..n] определяет количество строк, а второй индекс [1..m] определяет количество столбцов. Для примера возьмем массив b: array[1..7,1..6] of integer. Схематично его можно представить так:
Как видно, такой массив содержит 42 элемента (7?6). Для доступа к элементу массива необходимо указать номер строки и столбца, на пересечении которых этот элемент расположен. Например, на нашем рисунке элемент массива b[3,3] имеет значение 122.
Следующая программа записывает в каждый элемент массива случайное число и затем выводит все эти числа на экран.
program massiv10; uses crt; const N=5; M=4; var X:array [1..N, 1..M] of integer; I, J:integer; begin clrscr; randomize; for i:=1 to N do for j:=1 to M do x [I, J]:=random (100); for i:=1 to N do begin for j:=1 to M do write (‘ ‘,x[I,J]); writeln end; readln end.
В строке №3 и №4 укажем значение для константы «N» и «M».
В строке№5 запишем область двумерного массива, состоящего из N – строк и M – столбцов. Он записывается также как и одномерный массив, только в квадратных скобках указывается область хранения двумерного массива. Таким образом, наш массив будет состоять из 5 строк и 4 столбцов
В строке №6 записываем переменные, для хранения индексов строки и столбца.
Строка №9,10,11,12 – заполняем массив случайными числами (Все строки и столбцы заполнятся случайными числами). Как видно из программы, для того чтобы заполнить элементы двумерного массива различными значениями, необходимо использовать 2 цикла (один цикл вкладывается в другой). Во внешнем цикле счетчиком выступает индекс строки, во внутреннем цикле — индекс столбца. Внешний цикл выполнится один раз только когда внутренний цикл выполнится 4 раза. А так как внешний цикл должен выполниться 5 раз, то внутренний цикл за это время выполнится 20 раз, заполнив при этом все 20 элементов двумерного массива.
Строка №13-№17. Выводим значения всех элементов массива на экран. Причем, как только заполняются все ячейки одной строки массива, проиходит переход на другую строку, и следующая строка массива выводится на другой строке.
Источник: mojainformatika.ru