Скачать 86.26 Kb.
|
ДВУМЕРНЫЕ МАССИВЫ Двумерные массивы условно можно изобразить в виде таблицы ( матрицы) . С информацией, представленной в виде таблицы, мы очень часто встречаемся в различных областях знаний – экономике, статистике, математике, физике, химии и т.д. Каждый элемент таблицы имеет два индекса, значения которых позволяют указать местоположение элемента (его координаты). В математике квадратные и прямоугольные таблицы называют матрицами. Первый индекс – это номер строки, который изменяется только с переходом на следующую строку; второй индекс – номер столбца. По таблицу, имеющую m строк и n столбцов, говорят, что она имеет размер m*n.
При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенные циклы.
Описание двумерного массиваРассмотрим описание массива на конкретном примереПеременная А является двумерным массивом, имеющим 3 строки и 4 столбца
В разделе переменных на языке Паскаль массив описывается следующим образом: VarA: array [1..3,1..4] of integer; {все элементы массива в данном случае являются целыми числами} ОСНОВНЫЕ АЛГОРИТМЫ ДЛЯ РАБОТЫ С ДВУМЕРНЫМИ МАССИВАМИ
Массив А содержит 3 строки и 4 столбца, т.е. 3*4=12 элементов.
FOR i:=1 to 3 DO begin FOR j:=1 to 4 DO WRITE(A[i,j],’ ‘); печатаем элементы строки, не перемещая курсор WRITELN; перемещаем курсор End;
… S:=0; FOR i:=1 to 3 DO FOR j:=1 to 4 DO S:=S+A[i,j]; …
Мы используем базовый алгоритм вычисления суммы элементов одномерного массива (у нас это будут строки) и повторим его столько раз, сколько имеется строк. FOR i:=1 to 3 DO begin S:=0; FOR j:=1 to 4 DO S:=S+A[i,j]; WRITELN(‘сумма ‘,i,’ – строки=‘, S); End; Для того, чтобы перемещаться по строке мы меняем индекс j. Сумма каждого столбца находится аналогично.
Построим алгоритм поиска максимального элемента таким образом: введем три дополнительные переменные с именами max и Imax_m, Imax_n. Присвоим им начальные значения – переменной max значение первого элемента массива A[1,1], Imax_m - номер первой строки, Imax_n - номер первого столбца. Затем сравниваем каждый элемент с переменной max, если его значение оказывается больше, то присваиваем его переменной max, переменной Imax_m присваиваем индекс строки этого элемента и переменной Imax_n присваиваем индекс столбца этого элемента. Max:=[1,1]; Imax_m:=1; Imax_n:=1; FOR i:=1 to 3 DO FOR j:=1 to 4 DO If A[i,j]>Max then begin Max:=A[i,j]; Imax_m:=i; Imax_n:=j; end; WRITELN(‘Max =‘, Max,’ строка=’,Imax_m,’ столбец=’,Imax_n);
FOR i:=1 to 3 DO begin Max:=[i,1]; Imax_n:=1; FOR j:=1 to 4 DO If A[i,j]>Max then begin Max:=A[i,j]; Imax_n:=j; end; WRITELN(‘Max ‘,i,’ – строки=‘, Max,’ его индекс=’,Imax_n); End; Задачи для самостоятельного решения:
FOR i:=1 to m DO FOR j:=1 to n DO B[(i-1)*n+j]:=A[i,j] …
FOR i:=1 to m DO FOR j:=1 to n DO Begin C:=A[i,j]; A[i,j]:=A[i,n-j+1]; A[i,n-j+1]:=C end; КВАДРАТНЫЕ МАТРИЦЫ Объявим двумерный массив, количество строк которого совпадает с количеством столбцов. VarA: array [1..4,1..4] of integer; {все элементы массива являются целыми числами}
Введем некоторые понятия: главная диагональ: элементы А[1,1], A[2,2], A[3,3], A[4,4] (индексы элементов, расположенных на главной диагонали (i=j)); побочная диагональ элементы А[4,1], A[3,2], A[2,3], A[1,4] (сумма индексов элементов на 1 больше размерности строки (или столбца), т.е. i+j=4+1 в общем виде i+j=n+1).
Элементы, расположенные над главной диагональю. Для индексов элементов, расположенных над главной диагональю выполняется отношение i<j.
Элементы, расположенные под главной диагональю. Для индексов элементов, расположенных под главной диагональю выполняется отношение i>j. ОСНОВНЫЕ АЛГОРИТМЫ ДЛЯ РАБОТЫ С КВАДРАТНЫМИ МАТРИЦАМИ
Min:=A[1,n]; FOR i:=1 to n DO If A[i,n+1-i] Задачи для самостоятельного решения:
|
Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются... | Для обозначения компонент массива используется имя переменной-массива и так называемые индексы, которые обычно указывают желаемый... | ||
В структуру вносится информация о Подразделениях, отделениях лпу, оказывающих медицинские услуги населению, о разбиении на участки... | В структуру вносится информация о Подразделениях, отделениях лпу, оказывающих медицинские услуги населению, о разбиении на участки... | ||
Необходимо отсканировать кальку, на которой нанесены контур массива и точки опробования с номерами. Файл сохранить как изображение... | Описание образовательной деятельности по профессиональной коррекции нарушений развития детей | ||
Описание типов данных, используемых при определении полей документов и справочников 64 | Требования к содержанию документов, входящих в состав заявки на участие в аукционе | ||
Для задания значения элементов массива используйте функцию rand(). Диапазон задается произвольно, но не меньше чем от -25 до +25.... | ... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |