Слайд 2Массив представляет собой совокупность данных одного типа с общим для
всех элементов именем.
Имя массива состоит из букв(буквы) латинского алфавита.
Слайд 3Характеристики массива:
Тип –общий тип всех элементов массива;
Размерность (ранг) – количество
индексов массива;
Диапазон изменения индекса (индексов), определяет количество элементов в массиве
Слайд 4Двумерный массив
Массив, который состоит из нескольких строк и нескольких столбцов
называется двумерным массивом.
Его элементы нумеруются двумя индексами – номером строки
и номером столбца соответственно.
(Аналогом явл. ваше место в кинотеатре, где номер строки массива – это ряд, а номер столбца массива – это ваше место в ряду)
Слайд 5Двумерные массивы располагаются в памяти ПК по строкам: сначала все
элементы первой строки, затем элементы второй строки и т.д.
Слайд 6Двумерный массив называют также матрицей.
Если количество строк и количество столбцов
в массиве одинаково, то такой массив называется квадратной матрицей.
Слайд 7
Наиболее часто индексы массива – это переменные типа integer.
При обращении
к элементу массива указывается имя массива, а в квадратных скобках
через запятую индексы (номер строки, номер столбца) этого элементы массива.
Например А[3,2] мы обратились к элементу массива А, который располагается в третьей строке во втором столбце.
Слайд 8Самый простой способ описания массива в программе – это объявить
переменную в разделе описания переменных var с использованием зарезервированного слова
array( т.е. массив):
var имя массива: array[нижняя граница индекс 1.. Верхняя граница индекс1, нижняя граница индекс2..верхняя граница индекс 2] of тип элементов;
Слайд 9Например:
Пусть в памяти ПК расположена таблица чисел:
2
3 4
6 7
8
10 11 12
Тогда описание этого массива:
Var b:array[1..3,1..4] of integer;
{12 элементов массива – целые числа}
Слайд 10Внимание:
Реальное количество элементов в массиве может быть меньше, чем указано
при описании, но ни в коем случае не должно быть
больше.
Слайд 11Заполнение массива данными
Для заполнения двумерного массива данными используются вложенные циклы
с параметом: For…
Внешний цикл организуется по номеру строки, а внутренний
цикл – по номеру столбца. Значения элементов массива можно задавать вводом данных с клавиатуры.
Слайд 12Пример заполнения двумерного массива состоящего из 3 строк и 2
столбцов данными с клавиатуры:
for i:=1 to 3 do
{внешний цикл по номеру строки}
for j:=1 to 2 do {внутренний цикл по номеру столбца }
Begin
writeln(‘Введите В[‘,i,’,’,j,’,]элемент массива’);
readln(B[i,j]);
End;
Слайд 13Вывод элементов двумерного массива по строкам и столбцам:
For i:=1 to
3 do
begin
For j:=1 to 2 do
Write(B[i,j]:5); {формат вывода применили для того,
чтобы числа выводились ровными столбцами}
Writeln;
End;
Слайд 14Заполнить произвольный массив размером 5 x 5 по следующему правилу:
а) 11111 б) 11111 в)
12345
11111 22222 12345
11111 33333 12345
11111 44444 12345 11111 55555 12345
Слайд 15Для заполнения массива с помощью датчика случайных чисел из диапазона
от [a,b]:
a+random(b-a+1)
Заполнить массив размером 4 на 7 с помощью датчика
случайных чисел из промежутка [-5;10].
for i:=1 to 4 do
for j:=1 to 7 do
a[i,j]:=-5+random(10+5+1);
Слайд 16
Заполнить массив размером N x N (N
правилу:
A( i , j )=2*i + j /
2
Заполнить массив размером N x N (N<10) по следующему правилу:
A( i , j )=i + j
Слайд 17
program masiv1;
const n=10;
var a:array[1..n,1..n] of real; i, j: integer;
begin
for i:=1
to n do
for j:=1 to n do
a[i,j]:=2*i+j/2;
for
i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:7:2);writeln;
end;
end.
Слайд 18Значения элементов двухмерного массива A[1..10,1..10] задаются с помощью следующего фрагмента
программы:
for i:=1 to 10 do
for k:=1 to 10
do
if i > k then A[i,k] := 1 else A[i,k] := 0;
Чему равна сумма элементов массива после выполнения этого фрагмента программы?
Слайд 19Действия над элементами двумерного массива:
Пусть имеется массив А,
в котором i строк и j столбцов.
Вычисление суммы элементов каждой
строки.
Результатом является массив с именем , B состоящий из i сумм элементов строк.
Слайд 20program zl;
var A:array[1..4,1..5] of integer; b:array[1..4] of integer; i,j
:integer;
begin
for i:=1 to 4 do
for J:=1 to
5 do
begin
writeln(‘Введи a[',i,',',j,']=');
readln(a[i,j]);
end;
writeln(‘Исходный массив:');
for i:=1 to 4 do
begin
for j:=1 to 5 do
write(a[i,j]:5); writeln;
end;
for I:=1 to 4 do
begin b[i]:=0;
for j:=1 to 5 do
b[i]:=b[i]+a[i,j]; writeln(‘сумма ', i ,‘строки равна ',b[i]:4);
end;
end.
Слайд 212) Поиск минимального элемента всей матрицы.
Переменная min используется для хранения
значений минимального элемента, k – номер строки, l –номер столбца,
где он находится
Слайд 22Min:=A[1,1]; { поиск начинаем с 1 элемента}
K:=1; L:=1;
For i:=1
to n do
For j:=1 to m do
If A[i,j]< min then
Begin
min:=A[i,j];
k:=i; L:=j;
End;
Слайд 23Значения элементов двумерного массива А размером 5x5 задаются с помощью
вложенного цикла в представленном фрагменте программы:
for i:=1 tо 5
do
for j:=1 tо 5 do begin
A[i,j] := i*j;
end;
Сколько элементов массива будут иметь значения больше 10?
Слайд 24 Дан фрагмент программы:
for n:=1 tо 5 do
for
m:=1 tо 5 do
C[n,m] := (m –
n)*(m – n);
А) Сколько элементов массива С >5?
Б) Сколько элементов массива С будут равны 1?