🗊 Двумерные массивы Лекция №7

Категория: Информатика
Нажмите для полного просмотра!
  
  Двумерные массивы  Лекция №7  , слайд №1  
  Двумерные массивы  Лекция №7  , слайд №2  
  Двумерные массивы  Лекция №7  , слайд №3  
  Двумерные массивы  Лекция №7  , слайд №4  
  Двумерные массивы  Лекция №7  , слайд №5  
  Двумерные массивы  Лекция №7  , слайд №6  
  Двумерные массивы  Лекция №7  , слайд №7  
  Двумерные массивы  Лекция №7  , слайд №8  
  Двумерные массивы  Лекция №7  , слайд №9  
  Двумерные массивы  Лекция №7  , слайд №10  
  Двумерные массивы  Лекция №7  , слайд №11  
  Двумерные массивы  Лекция №7  , слайд №12  
  Двумерные массивы  Лекция №7  , слайд №13  
  Двумерные массивы  Лекция №7  , слайд №14  
  Двумерные массивы  Лекция №7  , слайд №15  
  Двумерные массивы  Лекция №7  , слайд №16  
  Двумерные массивы  Лекция №7  , слайд №17  
  Двумерные массивы  Лекция №7  , слайд №18  
  Двумерные массивы  Лекция №7  , слайд №19  
  Двумерные массивы  Лекция №7  , слайд №20  
  Двумерные массивы  Лекция №7  , слайд №21  
  Двумерные массивы  Лекция №7  , слайд №22  
  Двумерные массивы  Лекция №7  , слайд №23  
  Двумерные массивы  Лекция №7  , слайд №24  
  Двумерные массивы  Лекция №7  , слайд №25  
  Двумерные массивы  Лекция №7  , слайд №26  
  Двумерные массивы  Лекция №7  , слайд №27  
  Двумерные массивы  Лекция №7  , слайд №28

Содержание

Вы можете ознакомиться и скачать Двумерные массивы Лекция №7 . Презентация содержит 28 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Двумерные массивы
Лекция №7
Описание слайда:
Двумерные массивы Лекция №7

Слайд 2





План лекции
Понятие двумерного статического массива
Ввод – вывод элементов массива
Заполнение массива случайными числами
Квадратные матрицы
Транспонирование матриц
Умножение матрицы на вектор
Умножение матрицы на матрицу
Удаление строки
Включение столбца
Операции с элементами матриц
Преобразование матрицы в одномерный массив
Многомерные массивы
Описание слайда:
План лекции Понятие двумерного статического массива Ввод – вывод элементов массива Заполнение массива случайными числами Квадратные матрицы Транспонирование матриц Умножение матрицы на вектор Умножение матрицы на матрицу Удаление строки Включение столбца Операции с элементами матриц Преобразование матрицы в одномерный массив Многомерные массивы

Слайд 3





Двумерный массив
При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двумерным массивом (матрицей) или таблицей.
Их можно занести в память компьютера, используя понятие двумерного массива. Положение элемента в массиве определяется двумя индексами. Они показывают номер строки и номер столбца. Например: A[7,6], D[56,47].
Описание слайда:
Двумерный массив При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двумерным массивом (матрицей) или таблицей. Их можно занести в память компьютера, используя понятие двумерного массива. Положение элемента в массиве определяется двумя индексами. Они показывают номер строки и номер столбца. Например: A[7,6], D[56,47].

Слайд 4





Пример объявления двумерного массива
Описание слайда:
Пример объявления двумерного массива

Слайд 5





Ввод – вывод элементов двумерного массива
Const
	n=6;
	m=8;
Var
	a : array [1..n, 1..m] of integer;
	I, j : integer;
Begin
writeln (‘ Заполнение элементов целочисленного массива A[6,8] ‘);
for i:=1 to n do
	 for j:=1 to m do
	begin
	write (‘a[‘, i , ‘, ‘ , j, ‘] =‘);
	read (a[ i , j ]);
	end;
writeln (‘В памяти компьютера сформирован двумерный массив с элементами’);
for i:=1 to n do
	begin
 	for  j:=1 to m do
		write (a[ i , j ]:6);
	writeln;
	end
End.
Описание слайда:
Ввод – вывод элементов двумерного массива Const n=6; m=8; Var a : array [1..n, 1..m] of integer; I, j : integer; Begin writeln (‘ Заполнение элементов целочисленного массива A[6,8] ‘); for i:=1 to n do for j:=1 to m do begin write (‘a[‘, i , ‘, ‘ , j, ‘] =‘); read (a[ i , j ]); end; writeln (‘В памяти компьютера сформирован двумерный массив с элементами’); for i:=1 to n do begin for j:=1 to m do write (a[ i , j ]:6); writeln; end End.

Слайд 6





Ввод – вывод элементов двумерного массива
Генерация элементов двумерного массива случайными числами.
Const
	n=6;
	m=8;
Var
	a : array [1..n, 1..m] of integer;
	I, j : integer;
Begin
randomize;
for i:=1 to n do
	begin
 	for  j:=1 to m do
		begin
		a[ i, j ]:=random(101);
		write (a[ i , j ]:6);
		end;
	writeln;
	end
End.
Описание слайда:
Ввод – вывод элементов двумерного массива Генерация элементов двумерного массива случайными числами. Const n=6; m=8; Var a : array [1..n, 1..m] of integer; I, j : integer; Begin randomize; for i:=1 to n do begin for j:=1 to m do begin a[ i, j ]:=random(101); write (a[ i , j ]:6); end; writeln; end End.

Слайд 7





Квадратные матрицы
В квадратной матрице количество строк и столбцов - одинаково и равно n. 
Любая квадратная матрица имеет элементы главной и побочной диагонали. 
Диагональные элементы главной диагонали :
 a[1 , 1];a[2 , 2];a[3 , 3];….;a[n , n]. 
Элементами побочной диагонали являются : 
a[1 , n];a[2 , n-1];a[3 , n-2];…;a[n-1 , 2];a[n , 1].
Описание слайда:
Квадратные матрицы В квадратной матрице количество строк и столбцов - одинаково и равно n. Любая квадратная матрица имеет элементы главной и побочной диагонали. Диагональные элементы главной диагонали : a[1 , 1];a[2 , 2];a[3 , 3];….;a[n , n]. Элементами побочной диагонали являются : a[1 , n];a[2 , n-1];a[3 , n-2];…;a[n-1 , 2];a[n , 1].

Слайд 8





Квадратные матрицы
В качестве примера рассмотрим задачу формирования квадратной матрицы порядка n случайными числами и нахождения произведения элементов главной диагонали и суммы элементов ниже побочной диагонали.
Отметим элементы главной диагонали для  нахождения их произведения.
Описание слайда:
Квадратные матрицы В качестве примера рассмотрим задачу формирования квадратной матрицы порядка n случайными числами и нахождения произведения элементов главной диагонали и суммы элементов ниже побочной диагонали. Отметим элементы главной диагонали для нахождения их произведения.

Слайд 9





Квадратные матрицы
И элементы ниже побочной диагонали для поиска их суммы.
Описание слайда:
Квадратные матрицы И элементы ниже побочной диагонали для поиска их суммы.

Слайд 10





Квадратные матрицы
Const
	n=9;
Var
	a : array [1..n, 1..n] of integer;
	I, j, s, p : integer;
Begin
randomize;
for i:=1 to n do
	begin
 	for  j:=1 to n do
		begin
		a[ i, j ]:=random(101);
		write (a[ i , j ]:6);
		end;
	writeln;
	end
p:=1;
for i:=1 to n do
	p:=p*a[ i, i ];
s:=0;
for i:=2 to n do
	for j:=n-i+2 to n do
		s:=s+a[ i, j ];
writeln (p,s);
End.
Описание слайда:
Квадратные матрицы Const n=9; Var a : array [1..n, 1..n] of integer; I, j, s, p : integer; Begin randomize; for i:=1 to n do begin for j:=1 to n do begin a[ i, j ]:=random(101); write (a[ i , j ]:6); end; writeln; end p:=1; for i:=1 to n do p:=p*a[ i, i ]; s:=0; for i:=2 to n do for j:=n-i+2 to n do s:=s+a[ i, j ]; writeln (p,s); End.

Слайд 11





Транспонирование матриц
В данном алгоритме транспонирования матрицы необходимо заменить строки матрицы ее столбцами, а столбцы - строками, т.е. вычислить 
   b[ i,j ] :=a[ j,i ], где i=1,…,n; j=1,…,m. 
 Матрица А				Матрица B
Описание слайда:
Транспонирование матриц В данном алгоритме транспонирования матрицы необходимо заменить строки матрицы ее столбцами, а столбцы - строками, т.е. вычислить b[ i,j ] :=a[ j,i ], где i=1,…,n; j=1,…,m. Матрица А Матрица B

Слайд 12





Транспонирование матриц
Const
	n=5;
	m=7;
Var
i, j : integer; 
a : array [1..n,1..m] of integer;
b : array [1..m,1..n] of integer;
Begin
randomize;
writeln (‘Сформирована матрица A’);
for i:=1 to n do
	begin	
	for  j:=1 to m do
		begin
		a[ i,j ]:=random(31)-15;
		write (a[ i,j ]:6);
		end;
	writeln(‘’);
end;
Описание слайда:
Транспонирование матриц Const n=5; m=7; Var i, j : integer; a : array [1..n,1..m] of integer; b : array [1..m,1..n] of integer; Begin randomize; writeln (‘Сформирована матрица A’); for i:=1 to n do begin for j:=1 to m do begin a[ i,j ]:=random(31)-15; write (a[ i,j ]:6); end; writeln(‘’); end;

Слайд 13





Транспонирование матриц
Транспонированную матрицу можно получить в исходном массива А. Для квадратной матрицы n*n для этого необходимо поменять местами каждый элемент верхнего треугольника с соответствующим элементом нижнего (диагональные элементы переставлять не нужно). 
При этом для каждой строки нужно выполнять перестановку для элементов, расположенных правее главной диагонали, с элементами соответствующего столбца, расположенными ниже главной диагонали. При перестановке используем вспомогательную переменную tmp, помещая в нее для временного хранения один из переставляемых элементов, чтобы не потерять его значение.
Описание слайда:
Транспонирование матриц Транспонированную матрицу можно получить в исходном массива А. Для квадратной матрицы n*n для этого необходимо поменять местами каждый элемент верхнего треугольника с соответствующим элементом нижнего (диагональные элементы переставлять не нужно). При этом для каждой строки нужно выполнять перестановку для элементов, расположенных правее главной диагонали, с элементами соответствующего столбца, расположенными ниже главной диагонали. При перестановке используем вспомогательную переменную tmp, помещая в нее для временного хранения один из переставляемых элементов, чтобы не потерять его значение.

Слайд 14





Транспонирование матриц
Const
	n=9;
Var
i, j, tmp : integer; 
a : array [1..n,1..n] of integer;
Begin
randomize;
writeln (‘Сформирована квадратная матрица A’);
for i:=1 to n do
	begin	
	for  j:=1 to n do
		begin
		a[ i,j ]:=random(101)-50;
		write (a[ i,j ]:6);
		end;
	writeln(‘’);
end;
Описание слайда:
Транспонирование матриц Const n=9; Var i, j, tmp : integer; a : array [1..n,1..n] of integer; Begin randomize; writeln (‘Сформирована квадратная матрица A’); for i:=1 to n do begin for j:=1 to n do begin a[ i,j ]:=random(101)-50; write (a[ i,j ]:6); end; writeln(‘’); end;

Слайд 15





Умножение матрицы на вектор
Для вычисления произведения С матрицы А размером n*m на вектор B 
   размером m необходимо вычислить                            ,  i=1,….,n.
Использование вспомогательной переменной s позволяет уменьшить время выполнения программы за счет исключения обращения в цикле по j к элементам массива C.
Описание слайда:
Умножение матрицы на вектор Для вычисления произведения С матрицы А размером n*m на вектор B размером m необходимо вычислить , i=1,….,n. Использование вспомогательной переменной s позволяет уменьшить время выполнения программы за счет исключения обращения в цикле по j к элементам массива C.

Слайд 16





Умножение матрицы на вектор
Const
	n=6;
	m=9;
Var
i, j, s : integer; 
a : array [1..n,1..m] of integer;
b : array [1..m] of integer;
c: array [1..n] of integer;
Begin
randomize;
writeln (‘Сформирована матрица A’);
for i:=1 to n do
	begin	
	for  j:=1 to m do
		begin
		a[ i,j ]:=random(101)-50;
		write (a[ i,j ]:6);
Описание слайда:
Умножение матрицы на вектор Const n=6; m=9; Var i, j, s : integer; a : array [1..n,1..m] of integer; b : array [1..m] of integer; c: array [1..n] of integer; Begin randomize; writeln (‘Сформирована матрица A’); for i:=1 to n do begin for j:=1 to m do begin a[ i,j ]:=random(101)-50; write (a[ i,j ]:6);

Слайд 17





Умножение матрицы на матрицу
Для умножения матрицы А размером n*k на матрицу B размером k*m 
     необходимо вычислить                           , i=1,…,n; j=1,…,m.
Описание слайда:
Умножение матрицы на матрицу Для умножения матрицы А размером n*k на матрицу B размером k*m необходимо вычислить , i=1,…,n; j=1,…,m.

Слайд 18





Умножение матрицы на матрицу
		write (a[ i,j ]:6);
		end;
	writeln();
end;
for i:=1 to n do
	for j:=1 to m do
	begin	
	s:=0;
	for l:=1 to k do
		s:=s+a[ i,l ]*b[ l,j ];
	c[ i,j ]:=s;
	end;
Описание слайда:
Умножение матрицы на матрицу write (a[ i,j ]:6); end; writeln(); end; for i:=1 to n do for j:=1 to m do begin s:=0; for l:=1 to k do s:=s+a[ i,l ]*b[ l,j ]; c[ i,j ]:=s; end;

Слайд 19





Удаление строки матрицы
Алгоритм удаления строки является сходным с алгоритмом удаление элементов одномерного массива, за тем исключением, что операция переноса элементов выполняется для каждого столбца при переборе строк. Рассмотрим программу удаления из матрицы А заданной с клавиатуры строки T.
Описание слайда:
Удаление строки матрицы Алгоритм удаления строки является сходным с алгоритмом удаление элементов одномерного массива, за тем исключением, что операция переноса элементов выполняется для каждого столбца при переборе строк. Рассмотрим программу удаления из матрицы А заданной с клавиатуры строки T.

Слайд 20





Удаление строки матрицы
k:=n-1;
for i:=t to k do
	for j:=1 to m do
		 a[ i,j ]=a[ i+1,j ];
writeln (‘Получена матрица ‘);
for i:=1  to k do
	begin
	for j:=1 to m do
		write (a[ i,j ]);
	writeln;
end
End.
Описание слайда:
Удаление строки матрицы k:=n-1; for i:=t to k do for j:=1 to m do a[ i,j ]=a[ i+1,j ]; writeln (‘Получена матрица ‘); for i:=1 to k do begin for j:=1 to m do write (a[ i,j ]); writeln; end End.

Слайд 21





Включение столбца в матрицу
Алгоритм включения столбца в матрицу является сходным с алгоритмом включения элементов одномерного массива, за тем исключением, что операция переноса элементов выполняется для каждой строки при переборе столбцов. Рассмотрим пример, где необходимо в квадратной матрице А вставить столбец, содержащий ее элементы главной диагонали - следующим за столбцом, содержащим минимальный элемент матрицы. Для этого перепишем диагональные элементы в массив B, найдем минимальный элемент и его индекс по столбцу. Перебирая столбцы, сдвинем все столбцы на позицию вправо начиная от найденного индекса столбца минимального элемента. Занесем в следующий столбец за индексом минимального элемента  - элементы столбца, которые хранятся в массиве B.
Описание слайда:
Включение столбца в матрицу Алгоритм включения столбца в матрицу является сходным с алгоритмом включения элементов одномерного массива, за тем исключением, что операция переноса элементов выполняется для каждой строки при переборе столбцов. Рассмотрим пример, где необходимо в квадратной матрице А вставить столбец, содержащий ее элементы главной диагонали - следующим за столбцом, содержащим минимальный элемент матрицы. Для этого перепишем диагональные элементы в массив B, найдем минимальный элемент и его индекс по столбцу. Перебирая столбцы, сдвинем все столбцы на позицию вправо начиная от найденного индекса столбца минимального элемента. Занесем в следующий столбец за индексом минимального элемента - элементы столбца, которые хранятся в массиве B.

Слайд 22





Включение столбца в матрицу
Const
	n=7;
	Var
i, j, min, j_min, m: integer; 
a : array [1..n,1..n+1] of integer;
b : array [1..n] of integer;
Begin
randomize;
writeln (‘Сформирована матрица A’);
for i:=1 to n do
begin
	for j:=1 to n do
		begin
		a[ i,j ]:=random(101);
		write (a[ i,j ]:6);
		end;
Описание слайда:
Включение столбца в матрицу Const n=7; Var i, j, min, j_min, m: integer; a : array [1..n,1..n+1] of integer; b : array [1..n] of integer; Begin randomize; writeln (‘Сформирована матрица A’); for i:=1 to n do begin for j:=1 to n do begin a[ i,j ]:=random(101); write (a[ i,j ]:6); end;

Слайд 23





Операции с элементами матриц
Предыдущий пример может служить так же и примером преобразования матрицы, однако довольно часто встречаются задачи на преобразования матриц за счет изменения значений их элементов. Рассмотрим пример на умножение заданной с клавиатуры строки матрицы на элемент, являющийся "седловой" точкой, т.е. например, минимальным элементом из максимальных элементов по строкам. Для решения такой задачи следует определить значение "седловой" точки. Это можно сделать, организовав поиск максимального элемента по каждой строке и занесение его в элемент соответствующий индексу этой строки одномерного массива. Далее найти минимальный элемент в получившемся массиве, который и будет являться "седловой" точкой. После алгоритм становится достаточно не сложным. Необходимо ввести с клавиатуры индекс строки для преобразования и в цикле по столбцам преобразовать все элементы заданной строки, умножив их значение на полученный элемент "седловой" точки.
Описание слайда:
Операции с элементами матриц Предыдущий пример может служить так же и примером преобразования матрицы, однако довольно часто встречаются задачи на преобразования матриц за счет изменения значений их элементов. Рассмотрим пример на умножение заданной с клавиатуры строки матрицы на элемент, являющийся "седловой" точкой, т.е. например, минимальным элементом из максимальных элементов по строкам. Для решения такой задачи следует определить значение "седловой" точки. Это можно сделать, организовав поиск максимального элемента по каждой строке и занесение его в элемент соответствующий индексу этой строки одномерного массива. Далее найти минимальный элемент в получившемся массиве, который и будет являться "седловой" точкой. После алгоритм становится достаточно не сложным. Необходимо ввести с клавиатуры индекс строки для преобразования и в цикле по столбцам преобразовать все элементы заданной строки, умножив их значение на полученный элемент "седловой" точки.

Слайд 24





Операции с элементами матриц
Const
	n=7;
	m=6;
	Var
i, j, max, sedlt, t: integer; 
a : array [1..n,1..m] of integer;
b : array [1..n] of integer;
Begin
randomize;
writeln (‘Сформирована матрица A’);
for i:=1 to n do
begin
	for j:=1 to m do
		begin
		a[ i,j ]:=random(101);
		write (a[ i,j ]:6);
		end;
writeln;
end;
Описание слайда:
Операции с элементами матриц Const n=7; m=6; Var i, j, max, sedlt, t: integer; a : array [1..n,1..m] of integer; b : array [1..n] of integer; Begin randomize; writeln (‘Сформирована матрица A’); for i:=1 to n do begin for j:=1 to m do begin a[ i,j ]:=random(101); write (a[ i,j ]:6); end; writeln; end;

Слайд 25





Преобразование матрицы в одномерный массив
Обработка одномерных статических массивов осуществляется быстрее, чем двумерных того же размера, что часто требует выполнения указанного преобразования. Требуется переслать элементы матрицы n*m в одномерный массив того же размера по строкам с сохранением порядка следования элементов. 
Для этого нужно соответствующим образом согласовать индексы исходной матрицы А и формируемого одномерного массива Х.
Описание слайда:
Преобразование матрицы в одномерный массив Обработка одномерных статических массивов осуществляется быстрее, чем двумерных того же размера, что часто требует выполнения указанного преобразования. Требуется переслать элементы матрицы n*m в одномерный массив того же размера по строкам с сохранением порядка следования элементов. Для этого нужно соответствующим образом согласовать индексы исходной матрицы А и формируемого одномерного массива Х.

Слайд 26





Преобразование матрицы в одномерный массив
Const
	n=3;
	m=4;
	Var
i, j : integer; 
a : array [1..n,1..m] of integer;
x : array [1..n*m] of integer;
Begin
randomize;
writeln (‘Сформирована матрица A’);
for i:=1 to n do
begin
	for j:=1 to m do
		begin
		a[ i,j ]:=random(101);
		write (a[ i,j ]:6);
		end;
writeln;
end;
Описание слайда:
Преобразование матрицы в одномерный массив Const n=3; m=4; Var i, j : integer; a : array [1..n,1..m] of integer; x : array [1..n*m] of integer; Begin randomize; writeln (‘Сформирована матрица A’); for i:=1 to n do begin for j:=1 to m do begin a[ i,j ]:=random(101); write (a[ i,j ]:6); end; writeln; end;

Слайд 27





Многомерные массивы
Массивы могут быть более чем двумерными.
Пример:

…
a : array [1..5, 1..3, 1..16,  1..4 ] of real;
…
for i:=1 to 5 do
	for j:=1 to 3 do
		for k:=1 to 16 do
			for m:=1 to 4 do
				a[ i,j,k,m ]:=random(101);
…
Описание слайда:
Многомерные массивы Массивы могут быть более чем двумерными. Пример: … a : array [1..5, 1..3, 1..16, 1..4 ] of real; … for i:=1 to 5 do for j:=1 to 3 do for k:=1 to 16 do for m:=1 to 4 do a[ i,j,k,m ]:=random(101); …

Слайд 28


  
  Двумерные массивы  Лекция №7  , слайд №28
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию