Двумерные массивы. Задачи обработки двумерных массивов
Рассматриваемые вопросы: Понятие двумерного массива, его характеристики Различные способы заполнения двумерного массива Примеры решения задач 2
Массив - упорядоченная последовательность данных одного типа, объединенных под одним именем Одномерный один Одномерный массив - таблица в которой для точного указания на элемент массива достаточно указать только один индекс – номер элемента. 3
ABCDEFGH Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом. 4
Характеристики массива: Имя Тип элементов Размер (количество элементов) Размер количеством строк и столбцов Размер двумерного массива задается количеством строк и столбцов, причем сначала обычно указывается количество строк, а затем количество столбцов. 5
3 5 Пример двумерного массива размером 3 х Описание этого массива: Var A : Array [1..3,1..5] Of Integer; 6
Элемент массива и его характеристики Местоположение элемента в массиве Значение 7
A[2, 3] = A[3, 2] =
Различные способы заполнения двумерного массива: в разделе описания констант; с клавиатуры; с использованием формулы; случайными числами (частный случай использования формулы). 9
Пример заполнения массива в разделе описания констант …Const A : Array[1..3, 1..5] Of Integer = ((-5, 6, 12, 8, 2), (89, 4, 0, 1, 6), (14, -65, -11, 23, -41)); … 10
A : Array[1..3, 1..5] Of Integer = ((-5, 6, 12, 8, 2), (89, 4, 0, 1, 6), (14, -65, -11, 23, -41));
Пример заполнения массива с клавиатуры Var i, j, n, m : word; A : Array[1..100, ] Of Integer; … … Readln(n); Readln(m); For i :=1 To n Do For j :=1 To m Do Readln(A[i, j]); 12
i :=1, 2, 3 j :=1, 2, 3, 4, For i :=1 To n Do For j :=1 To m Do Readln(A[i, j]); 13
j :=1, 2, 3, 4, 5 i :=1, 2, For j :=1 To m Do For i :=1 To n Do Readln(A[i, j]); 14
Пример заполнения массива с помощью формулы … Readln(n); Readln(m); For i :=1 To n Do For j :=1 To m Do A[i, j]:= i - j; … 15
Пример заполнения массива с помощью формулы – 1 = – 3 = -2 1 – 2 = – 5 = – 4 =
Пример заполнения массива случайными числами Общий вид формулы для интервала [a, b] Random(b-a+1)+a 17
Randomize; Readln(n); Readln(m); For i :=1 To n Do For j :=1 To m Do A[I]:= Random(21) - 5; Для [-5, 15] формула Random(15-(-5)+1)+(-5) Random(21)
Вывод двумерного массива For i :=1 To n Do Begin For j :=1 To m Do Write (A[i, j]:4); Writeln; End; … 19
Пример 1: Пример 2: 20
Задача 1 Все элементы двумерного массива A размером 10х10 первоначально были равны 0. Затем значения элементов меняются с помощью вложенных циклов. for n:=1 to 4 do for k:=n to 4 do begin A[n, k]:=A[n, k]+1; A[k, n]:=A[k, n]+1; End; Сколько элементов массива в результате будут равны 1? 21
for n:=1 to 4 do for k:=n to 4 do begin A[n, k]:=A[n, k]+1; A[k, n]:=A[k, n]+1; End; n=1 k=1, 2, 3, 4 A[1,1]:=A[1,1]+1=0+1=1 A[1,1]:=A[1,1]+1=1+1= A[2,4]:=A[2,4]+1=0+1=1 A[4,2]:=A[4,2]+1=0+1=1 A[1,2]:=A[1,2]+1=0+1=1 A[2,1]:=A[2,1]+1=0+1=1 1 1 A[1,3]:=A[1,3]+1=0+1=1 A[3,1]:=A[3,1]+1=0+1=1 1 1 A[1,4]:=A[1,4]+1=0+1=1 A[4,1]:=A[4,1]+1=0+1=1 1 1 n=2 k=2, 3, 4 A[2,2]:=A[2,2]+1=0+1=1 A[2,2]:=A[2,2]+1=1+1=2 2 A[2,3]:=A[2,3]+1=0+1=1 A[3,2]:=A[3,2]+1=0+1=
Задача 2 Значения двумерного массива размера 7 7 задаются с помощью вложенного оператора цикла for n:=1 to 7 do for k:=1 to 7 do B[n, k]:=k–n; Сколько элементов массива будут иметь положительные значения? 23
for n:=1 to 7 do for k:=1 to 7 do B[n, k]:=k–n; B[n, k]:= k–n k–n > 0 k > n k kk k n
Задача 3 Дан фрагмент программы, обрабатывающей двухмерный массив A размера n×n. k:=1; for i:=1 to n do begin c:=A[i,i]; A[i,i]:=A[k,i]; A[k,i]:=c; end; Какую задачу решает этот алгоритм? 25
k:=1; for i:=1 to 5 do begin c:=A[i,i]; A[i,i]:=A[1,i]; A[1,i]:=c; end; i := i := i := i := i := 1 26
Задача 4 В1010 Значения элементов двумерного массива В размера 10 х 10 задаются с помощью вложенных операторов цикла в представленном фрагменте программы. Сколько элементов массива будут принимать четные значения? for i:=l to 10 do forj:=l to 10 do B[i,j]:=i*j; 27
For i:=1 to 10 do For j:=1 to 10 do B[i,j]:=i*j; Ответ: 100 – 25 = 75 28
Задача 5 Значения элементов двумерного массива размера 10 х 10 задаются с помощью вложенного оператора цикла в представленном фрагменте программы. 0 Сколько элементов массива будут равны 0? 5 Сколько элементов массива будут равны 5? for i:=1 to 10 do for j:=1 to 10 do If i
for i:=1 to 10 do for j:=1 to 10 do If i
Задача 6 Значения элементов двумерного массива размера 50x50 задаются с помощью вложенного оператора цикла в представленном фрагменте программы. Сколько элементов массива будут принимать значения, равные 35? for i:=1 to 50 do for j :=1 to 50 do If i
for i:=1 to 50 do for j:=1 to 50 do If i < j then B[i, j]:= i else B[i, j]:= j; 123…343536… … …
Ввели понятие двумерного массива;Ввели понятие двумерного массива; Рассмотрели правила заполнения и вывода двумерного массива;Рассмотрели правила заполнения и вывода двумерного массива; Разобрали решение задач, на заполнение и обработку массива.Разобрали решение задач, на заполнение и обработку массива. 33