Двумерный массив представляет собой массив, в котором положение элементов определяется 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.
Следующая программа записывает в каждый элемент массива случайное число и затем выводит все эти числа на экран.
В строке №3 и №4 укажем значение для константы «N» и «M».
В строке№5 запишем область двумерного массива, состоящего из N – строк и M – столбцов. Он записывается также как и одномерный массив, только в квадратных скобках указывается область хранения двумерного массива. Таким образом, наш массив будет состоять из 5 строк и 4 столбцов
В строке №6 записываем переменные, для хранения индексов строки и столбца.
Строка №9,10,11,12 – заполняем массив случайными числами (Все строки и столбцы заполнятся случайными числами). Как видно из программы, для того чтобы заполнить элементы двумерного массива различными значениями, необходимо использовать 2 цикла (один цикл вкладывается в другой). Во внешнем цикле счетчиком выступает индекс строки, во внутреннем цикле - индекс столбца. Внешний цикл выполнится один раз только когда внутренний цикл выполнится 4 раза. А так как внешний цикл должен выполниться 5 раз, то внутренний цикл за это время выполнится 20 раз, заполнив при этом все 20 элементов двумерного массива.
Строка №13-№17. Выводим значения всех элементов массива на экран. Причем, как только заполняются все ячейки одной строки массива, проиходит переход на другую строку, и следующая строка массива выводится на другой строке.
Предыдущая статья : Нахождение номера отрицательного элемента в массиве.
Оглавление : Уроки Паскаль.
Следующая статья : Процедуры в Pascal.
Комментарии
А) сумму всех элементов массива;
Б) сумму квадратов всех элементов массива.
uses
crt;
const
N = 5;
M = 4;
var
X: array [1..N, 1..M] of integer;
I, summ,summkvad,J : integer;
begin
clrscr;
randomize;
for i := 1 to N do
begin
for j := 1 to M do
begin
x[I, J] := random(5);
summ:= summ + x[I, J];
summkvad := (summkvad + (x[I, J] * x[I, J]));
end;
end;
for i := 1 to N do
begin
for j := 1 to M do
write(' ', x[I, J]);
writeln
end;
writeln('Сумма всех элементов массива ',summ);
writeln('Сумма всех квадратов элемента массива ',summkvad);
end.
помогите)
помогите пожалуйста..
Нужно заменить все отрицательные елементы на противоположные им числа.
const
N = 5;
M = 4;
var
X: array [1..N, 1..M] of integer;
I, summ,summkvad,J : integer;
begin
randomize;
for i := 1 to N do
begin
for j := 1 to M do
begin
x[I, J] := random(5);
summ:= summ + x[I, J];
summkvad := (summkvad + (x[I, J] * x[I, J]));
end;
end;
for i := 1 to N do
begin
for j := 1 to M do
write(' ', x[I, J]);
writeln
end;
writeln('Сумма всех элементов массива ',summ);
writeln('Сумма всех квадратов элемента массива ',summkvad);
end.
Пытался выполнить лабораторную работу по курсу численные методы. Суть заключается в следующем: написать программу, которая находила бы решение системы трех линейных уравнений с тремя неизвестными методом Крамера.
Проблема возникла при формировании вспомогательных определителей. Согласно методу необходимо каждый столбец основной матрицы коэффициентов заменить столбцом свободных членов (не совсем понимаю, как это реализовать).
Возможно понадобится ссылка с методом – https://www.mathros.net.ua/rozvjazok-systemy-linijnyh-algebraichnyh-rivnjan-metodom-kramera.html (не знаю доступно ли описала проблему).
Если у Вас есть возможность набросать программный код, который бы реализовал формирование указанных выше матриц.
Заранее спасибо.
122222221
122222212
122222122
122221222
122212222
122122222
121222222
112222222
111111111