Конспект по теме: Двумерные массивы


Скачать 74.07 Kb.
НазваниеКонспект по теме: Двумерные массивы
ТипКонспект

Конспект по теме: Двумерные массивы

Учитель информатики Батракова Л.В.


Определение: Двумерный массив- это одномерный массив, у которого типом компоненты является одномерный массив.
Двумерный массив можно представить в виде квадратной или прямоугольной  таблицы, состоящей из строк и столбцов. Аналогом в математике является матрица:




Размер двумерного массива - количество элементов в массиве M*N, где М- число строк, N- число столбцов (натуральные числа).

У любого массива должно быть имя. Пусть у массива будет имя A, тогда к любой компоненте массива можно обратиться по адресу – A[i,j] или A[i][j], где индекс i – номер строки (всегда на первом месте), а индекс j – номер столбца.
Квадратная матрица – матрица с равным числом строк и столбцов.

Порядок матрицы – число строк (столбцов) квадратной матрицы.

Для квадратной матрицы вводятся понятия главной и побочной диагонали, которые обладают следующими свойствами:

  • у элементов, лежащих на главной диагонали, номер строки и номер столбца совпадают, т.е. i=j.

  • у элементов, лежащих на побочной диагонали номер строки и номер столбца связаны следующим соотношением, если i – номер строки, то номер столбца j=N-i+1.



Описание двумерного массива

Тип описания массива может быть задан одним из способов:
1) Type tm1=array[ti2] of tk;

tm2=array[ti1] of tm1;

где tm1 – тип массива, ti2 – тип индекса, tk – тип компонент одномерного массива,

tm2 – тип массива, ti1 – тип индекса, tm1 – тип компонент двумерного массива

Из этого описания видно, что двумерный массив – это одномерный массив, у которого компоненты – одномерный массив.
2) Type tm2=array[ti1]of array[ti2] of tk;

Чаще тип задается в следующем виде:
3) Type tm2=array[ti1,ti2] of tk;

ti1 – задает тип индека у строки, а ti2 – тип индекса у столбца. Они могут совпадать, а могут не совпадать, но они обязательно должны относиться к простому порядковому типу (целочисленный, символьный, булевский, перечислимый, диапазон).

tk – тип компонент массива может быть любим типом, кроме файлового ( простым и сложным).
Так как массивы относятся к произвольным типам, то их можно описывать как через раздел TYPE так и через раздел VAR. Рассмотрим различные способы описания.
Например:
CONST M=10; N=20;

Type m1=array[boolean] of byte;

m2=array[char] of m1;

m3=array[1..20, 1..5] of integer;

m4= array [1..M, 1..N] of char ;

m5= array [1..30] of array [1..20] of real;
Var C:m2;

A:m3;

Mas:m4;

X:m4;

y: [1..5, 1..5] of integer ;

F: array [1..30] of array [1..20] of real;
Заполнение двумерного массива

Заполнение по строкам:

А[1,1]

А[1,2]

А[1,3]

А[1,4]

А[1,5]

А[2,1]



















Для заполнения матрицы организуется наружный цикл по i, внутренний – по j (при условии, что i- строки, j –столбцы). При этом индекс строки i меняется медленнее индекса столбца j за счет того, что происходит постепенный перебор всех элементов строки, т.е. столбцов i-й строки.

Заполнение по столбцам:

А[1,1]

А[1,2]







А[2,1]









А[3,1]









A[4,1]










Заполнение двумерного массива возможно по строкам и столбцам, каждый из элементов можно вводить:

  1. с  клавиатуры;


Например:

Write(‘Введите число строк M= ‘); readLn (M);

Write(‘Введите число столбцов N= ‘); readLn (N);

for i:=1 to M do

begin

for j:=1 to N do

begin

write(‘Введите элемент A[',i,',',j,']=’);

read(A[i,j]);

end;

readLn;           

end;


  1. с  помощью генератора случайных чисел;


randomize;

writeLn(‘Матрица А:’);

FOR i:= 1 to M DO {наружный цикл по строкам}

begin

FOR j:=1 TO N DO {внутренний цикл по столбцам}

begin

A[i,j]:= random(10);

write(A[i,j]:3); {печатаем подряд всю строку}

end;
В этих примерах заполнение показано по строкам. Если порядок выполнения циклов поменять, то заполняться массив будет по столбцам.
Вывод двумерного массива осуществляется аналогичным образом.

{Вывод матрицы}

writeLn(‘Результирующая матрица A:’);

for i:=1 to M do               

begin

for j:=1 to N do

write(A[i,j],’ ‘);

writeLn;

end;
Примеры программ
1. Дана матрица A( N ´ M), состоящая из натуральных чисел. Определить ее максимальный элемент и его индексы.

program pr_1; {Max элемент матрицы}

CONST t= 10; r=10;

var

A: array [1..t, 1..r] of INTEGER;

i,j: byte;

n,m, Max, iMax, jMax: integer;

BEGIN

randomize;

write(‘Введите число строк N=’); readLn(N);

write(‘Введите число столбцов M=’); readLn(M);

FOR i:= 1 to N DO {заполнение массива генерированием случайных чисел}

begin

FOR j:=1 TO M DO

begin

A[i,j]:= random(10);

write(A[i,j]:3);

end;

writeLn;

end;

Max:= A[1,1];  iMax:=1; jMax:=1; {принимаем начальное значение  Мах = значению 1-го эл-та}

For i:=1 to N do

For j:=1 to M do

IF A[i,j] > Max then

begin

Max:= A[i,j]; iMax:=i; jMax:=j;

End;

WriteLn(‘Max= ’ ,Max,’ в строке:  ‘,imax, ‘ столбце :’, jmax);

readLn;

END.
2. Подсчитать суммы элементов всех  строк прямоугольной целочисленной матрицы A(M*N) и занести результаты в одномерный массив S(M). Массивы распечатать.

program pr_2;{сумма элементов по строкам}

VAR i,j,n,m: byte;

Sum:integer;

A: array [1..100, 1..100] of integer;

S: array[1..100] of integer;

BEGIN

Write(‘Введите число строк M= ‘); readLn (M);

Write(‘Введите число столбцов N= ‘); readLn (N);

for i:=1 to M do

begin

Sum := 0; {начальное значение суммы по строке}

for j:=1 to N do

begin

write(‘Введите элемент A[',i,',',j,']=’); readLn(A[i,j]);

Sum:= Sum + A[i,j]; {суммирование по строке}

end;

writeLn;             {пропуск строки}

S[i]:= Sum; {заполнение массива  S}

end;

writeLn(‘Массив S:’);

for i:=1 to m do

write( S[i]:4);

writeLn;

readln;

END.
Список задач на двумерные массивы

1. Дана матрица вещественных чисел размера m x n. Найти сумму наименьших значений элементов ее строк.

2. Дана матрица вещественных чисел размера m x n. Упорядочить ее строки по убыванию суммы их элементов.

3. Даны действительная квадратная матрица порядка n и натуральные числа i,j (1<=i<=n,1<=j<=n). Из матрицы удалить i-ю строку и j-ый столбец.

4. Даны действительная квадратная матрица порядка n и натуральные числа i,j (1<=i<=n,1<=j<=n). Поменять в матрице местами i-ый и j-ый столбцы.

5. Дана целочисленная квадратная матрица порядка n. Найти номера строк, все элементы которых нули.

6. Дан двумерный массив 7 * 9 элементов. Составить одномерный массив, состоящий из минимальных элементов строк исходного двумерного массива.

7. Дан двумерный массив 8 * 1O элементов. Составить одномерный массив, состоящий из максимальных элементов столбцов исходного двумерного массива.

8. Дан двумерный массив 9 * 12 элементов. Составить одномерный массив, состоящий из отрицательных элементов столбцов исходного двумерного.

9. Дана матрица вещественных чисел размера m x n. Упорядочить ее строки по возрастанию их наибольших элементов.

10. Дана матрица вещественных чисел размера m x n. Строку, содержащую максимальный элемент массива, поменять со строкой, содержащей минимальный элемент.

11. В данной квадратной целочисленной матрице порядка n указать индексы всех элементов с наибольшим значением.

12. Дана действительная матрица размера m x n . Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.

13. Дана действительная матрица размера m x n . Найти сумму наибольших значений элементов ее строк.

  1. Подсчитать количество положительных элементов в каждом столбце матрицы размером

m х n, элементы которой вводятся с клавиатуры.

  1. Подсчитать количество отрицательных элементов в каждой строке матрицы размером

m х n, элементы которой задаются с помощью датчика случайных чисел.

  1. Подсчитать количество четных элементов в каждом столбце матрицы размером m х n, элементы которой задаются с помощью датчика случайных чисел.

  2. Подсчитать количество четных отрицательных элементов в матрице размером m х n, элементы которой вводятся с клавиатуры.

18. Найти сумму элементов в каждом столбце массива размером m х n, элементы которого задаются датчиком случайных чисел.

19. Найти произведение элементов в каждом столбце массива размером m х n, элементы которого вводятся с клавиатуры.

Найти произведение элементов в каждой строке массива размером n х m, элементы которого вводятся с клавиатуры.

20. Найти произведение диагональных элементов массива размером n х m, элементы которого вводятся с клавиатуры.





Похожие:

Конспект по теме: Двумерные массивы iconЛекция 12 Двумерные массивы
Многомерные массивы задаются указанием каждого измерения в квадратных скобках, например, оператор

Конспект по теме: Двумерные массивы iconДвумерные массивы
Массивы, положение элементов в которых описывается двумя индексами, называются двумерными. Их можно представить в виде прямоугольной...

Конспект по теме: Двумерные массивы iconК/р " Двумерные массивы как способ организации данных." (10 кл.)
На контрольной работе необходимо письменно ответить на два теоретических вопроса и решить 1 задачу

Конспект по теме: Двумерные массивы iconКонспект по теме «Документирование бухгалтерских операций»
Составить конспект по теме «Документирование бухгалтерских операций», пользуясь электронным учебником «Основы бухгалтерского учета»...

Конспект по теме: Двумерные массивы iconОдномерные и двумерные массивы (таблицы) Массив
Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются...

Конспект по теме: Двумерные массивы iconОдномерные и двумерные массивы Раздел описания типов
В разделе описания типов пользователь может определять свои типы данных, присваивая каждому из них определенный идентификатор. Синтаксис...

Конспект по теме: Двумерные массивы iconОписание двумерного массива Рассмотрим описание массива на конкретном примере
Двумерные массивы условно можно изобразить в виде таблицы ( матрицы). С информацией, представленной в виде таблицы, мы очень часто...

Конспект по теме: Двумерные массивы iconПлан-конспект урока на тему: «Соли»
...

Конспект по теме: Двумерные массивы iconВ лабораторной работе вне зависимости от варианта необходимо двумерные...
Вводится число n. Необходимо создать матрицу размером и заполнить её случайными числами в диапазоне [1,5]. После чего необходимо...

Конспект по теме: Двумерные массивы iconУрок 22. Тема урока: Массивы в языке Паскаль. Одномерные массивы ( 1 час)
Цель урока: систематизация и развитие знаний по использованию массивов в программах на Паскале

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск