Слайд 2Содержание:
Повторение
Двумерный массив
Диагональ матрицы
Действия со строками и столбцами матрицы
Слайд 3Повторение:
Дайте определение одномерному массиву
Линейный массив - это упорядоченная совокупность данных одного
типа, адресующихся с помощью индекса.
Какой порядок выполнения вложенных циклов ?
Для каждого параметра внешнего цикла, параметр внутреннего цикла принимает все его значения
Слайд 4Повторение: что выведет на экран, приведённая ниже программа?
Program gr1;
var i,j:integer;
begin
for i:=1
to 5 do begin
for j:=1 to 7 do
write (i+j+10,' ');
writeln
end;
end.
Слайд 5Что выведет на экран, приведённая ниже программа?
Program gr2;
var i,j:integer;
begin
for i:=1 to
5 do
begin
for j:=1 to 5 do
write ((j+10),' ');
writeln
end;
end.
Слайд 6Что выведет на экран, приведённая ниже программа?
Program gr3;
var i,j:integer;
begin
for i:=1 to
7 do
begin
for j:=1 to 3 do
write ((j-i)+10,' ');
writeln
end;
end.
Слайд 7Матрица
Прямоугольные таблицы отличаются тем, что их элементы расположены не в строку,
а в виде таблицы.
В литературе они называются прямоугольными таблицами или квадратными таблицами или матрицами.
Матрица– это упорядоченная совокупность данных одного типа, адресующихся с помощью 2 -х индексов.
Каждый элемент матрицы находится на пересечении строки и столба и адресуется с помощью номера строки – это первый индекс, и номера столбца – это второй индекс.
Про матрицу, имеющую М строк и N столбцов, говорят, что это матрица размером М×N. Если М=N, то это квадратная матрица.
Слайд 8Формат описания матриц в разделе переменных:
var имя матрицы : array
[номер 1-ой строки..номер последней строки, номер 1-ого столбца.. номер последнего столбца ] of тип данных;
Слайд 9Пример:
Пример : var matr: array [1..3, 1..4] of real;
В примере описан
массив matr имеющий 3 строки и 4 столбца.
Рассмотрим этот массив.
Элемент matr[2,3]=5,73 . Назовите индекс 7, 97, 3,5.
Слайд 10Обработка элементов матрицы
Для доступа к каждому элементу массива требуется пользоваться вложенными
циклами. Причём внешний цикл обычно содержит переменную i, обозначающую строки, а внутренний цикл переменную j, обозначающую столбцы.
Слайд 11Ввод и вывод элементов матрицы с клавиатуры
Фрагмент программы , предназначенный для
ввода матрицы по строкам имеет вид:
for i:=1 to 3 do
for j:=1 to 4 do read (matr[ i, j ]);
В этой программе для каждого i ( номера строки) переменная j (номер столбца) принимает значение от 1 до 4.
Для вывода матрицы по строкам используется следующая структура:
for i:=1 to 3 do begin
for j:=1 to 4 do
write ( matr[ i, j ],’ ‘) ; writeln;
end;
Слайд 12Заполнение матрицы при помощи датчика случайных чисел.
program sapmas1;
var a:array[1..3,1..3] of integer;
i,j,d:integer;
begin
writeln
('Заполнение массива’);
randomize;
d:=100;
For i:=1 to 3 do begin
For j:=1 to 3 do begin
a[i,j]:=random(d);
write(a[i,j],' '); end;
writeln;end;
end.
Слайд 13Пример: Дан матрица, размером 3*4. Найти сумму элементов матрицы.
program matricha;
var
X: array[1..3, 1..4] of integer;
i,j,s: integer;
begin
randomize;
For i:=1 to 3 do begin
For j:=1 to 4 do begin
x[i,j]:=random(20);
write(x[i,j],' '); end;
writeln; end;
S:=0;
For i:=1 To 3 Do
For j:=1 To 4 Do
S:= S + x[ i, j];
Writeln(“ Сумма элементов матрицы равна “, S);
end.
Слайд 14ПРАКТИЧЕСКОЕ ЗАДАНИЕ:
1. Дана матрица размером 3*2. Найти произведение элементов матрицы. (1
балл)
2. Дана матрица размером 4*4. Найти среднее значение элементов массива. {Найти номер элемента массива совпадающего со средним}.
(2 балла)
3. Дана матрица размером 3*5.Найти количество элементов матрицы больших 0, меньших 0 и равных 0. (2 балла)
4. Дана матрица размером 4*4.Найти сумму чётных и нечётных элементов таблицы. (1 балл)
5. Дана матрица размером 5*2. Разделить все элементы матрицы на минимальный элемент.
(2 балла)
6. Дана матрица размером 4*4. Найти наибольший элемент Найти номер строки и номер столбца, на пересечении которых он находится. (3 балла)
Слайд 15Найдите ошибки в приведенной ниже программе:
Дана матрица размером 5*3. Найти
среднее значение элементов матрицы.
Program osh;
Var M:array[1..3,1..5]of integer;
I,j,s,sr:integer;
Begin
Randomize; s:=0;
For i:=1 to 5 do begin
For j:=1 to 3 do begin
M:=random(100);
Writeln(a[i],’ ‘); writeln; end; end;
For i:=1 to 5 do
For J:=1 to 3 do
Sr:=s+a[i]/8;
For i:=1 to 5 do writeln(sr);
end.
Слайд 16Понятие диагонали массива
Понятие диагонали массива применимо только к квадратному массиву.
A
Главная диагональ
Все
элементы, стоящие на главной диагонали характеризуются следующим свойством
i=j
Слайд 17Побочная диагональ
A
Все элементы, стоящие на побочной диагонали характеризуются следующим свойством
i=N-j+1, где
N размерность массива
Слайд 18ПРАКТИЧЕСКОЕ ЗАДАНИЕ:
Заменить значения всех элементов главной диагонали на нулевые
Заменить все значения
побочной диагонали на значения, равные 100
Определить среднее значение элементов побочной диагонали
Определить, является ли квадратная матрица симметричной, относительно главной (побочной) диагонали.
В квадратном массиве выделим 4 четверти, ограниченные главной и побочной диагоналями (без учёта элементов, расположенных на диагоналях):верхнюю, нижнюю, левую и правую.
Найти сумму элементов:
а) верхней четверти;
б) правой четверти;
в) нижней четверти;
г) левой четверти.
Поменять местами элементы:
А) верхней и нижней четверти
Б) правой и левой четверти.
Все задачи по 1 баллу
Слайд 19Действия над строками и столбцами матрицы
Для обозначения элементов одного столбца
используется запись Х[ i, N], где Х имя матрицы, i (переменная)- номер строки, N(константа) - номер данного столбца.
Для обозначения элементов одной строки используется запись Х[N,j ], где Х имя матрицы, N(константа) - номер данной строки, j(переменная) - номер столбца.
Слайд 20Пример 1: Дана матрица 4*4. Найти сумму элементов в каждом столбце.
program
sumst
var i,j : integer;
a: array [1..4,1..4] of integer;
s: array [1..4] of integer;
begin
Randomize;
For i:=1 to 4 do begin
For j:=1 to 4 do begin
А[I,j]:=random(20);
Write(a[I,j],’ ‘); end;
writeln; end;
for i:=1 to 4 do s[i]:=0;
for j:=1 to 4 do begin
for i:=1 to 4 do s[j]:=s[j]+a[i,j];
writeln(s[j]);
end;
end.
Слайд 21Пример 2:Найти сумму элементов в каждой строке.
program sumst;{нахождение суммы элементов матрицы
по строкам}
var i,j : integer;
a: array [1..4,1..4] of integer;
s: array [1..4] of integer;
begin
For i:=1 to 4 do begin
For j:=1 to 4 do begin
А[I,j]:=random(20);
Write(a[I,j],’ ‘); end;
writeln; end;
for i:=1 to 4 do s[i]:=0;
for i:=1 to 4 do begin
for j:=1 to 4 do s[i]:=s[i]+a[i,j];
write(' ',s[i]);
end;
end.
Слайд 22ПРАКТИЧЕСКОЕ ЗАДАНИЕ:
1. Дана матрица размером 4*4. Найти сумму элементов строки, в
которой располагается элемент с наименьшим значением. ( 2 балла)
2. Дана матрица размером 4*6. Определить матрицу в[1..4] элементы которой равны соответственно: ( 4 балла)
– произведениям элементов строк;
– наименьшим значениям элементов строк;
– значениям средних арифметических элементов строк;
– разности наибольших и наименьших элементов строк.
3. Дана матрица размером 4*4. Найти сумму наибольших значений элементов её строк. ( 2 балла)
4. Дана матрица размером 3*5. Умножить все элементы строки на 10 в которой находится максимальный элемент. ( 2 балла)
5. Дана матрица размером 4*4.Найти в каждой строке наименьший элемент и затем среди этих элементов вывести наименьший элемент.( 2 балла)
6. Дана матрица размером 4*4. Получить последовательность в1..в4, где каждый элемент это :
– сумма наименьшего и наибольшего элементов каждой строки;
– число отрицательных элементов в каждой строке;
– произведение квадратов тех элементов строки, модули которых лежат в диапазоне (1...5). ( 4 балла)