Операции над матрицами
Оценка 5

Операции над матрицами

Оценка 5
Рабочие тетради
doc
информатика +1
10 кл—11 кл +1
25.04.2017
Операции  над  матрицами
Занятие строится таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме. Автор сознательно избегал сложных примеров, будучи убежденными, в том, что гораздо важнее для учащихся понимание алгоритмов предлагаемых задач, приобретение навыков разработки алгоритмов, их программирования и выполнения на компьютере в течение одного занятия. Такой подход к изучению языка программирования позволяет сосредоточить внимание на самом процессе программирования, который в данном случае более важен для изучения языка, чем решение сложной задачи, наверняка трудной большинству учащихся. Такие задачи, по мнению авторов, неоправданно занимают большое количество учебного времени, превращая учителя из инициатора процесса обучения в диктатора.
Занятие 10ч1.doc
Алгоритмы формирования матриц со специальными названиями.  Преобразования матриц. Типовые задачи Операции  над  матрицами            Занятие 10 1. Урок 1. Алгоритмы  формирования  матриц  со специальными названиями (нулевая, единичная, верхне­        треугольная, нижне­треугольная). 2. Урок 2. Алгоритмы      формирования        матриц    со    специальными      названиями      (симметричная,         кососимметричная). 3. Урок 3. Преобразование матриц.  Типовые  задачи. 4. Контрольные вопросы и упражнения.   Урок 1. Алгоритмы формирования матриц   со   специальными    названиями    (нулевая,   единичная,    верхне ­  треугольная,  нижне­треугольная). 1.1. Формирование нулевой матрицы. 1.2. Формирование единичной матрицы. 1.3. Формирование верхне­треугольной и нижне­треугольной матрицы. 1.4. Алгоритмы   формирования   матриц со специальными   названиями (симметричная,  кососимметричная). Матрицы со специальными названиями являются частными случаями общего определения матриц, потому что имеют определенную форму в размещении значений элементов. 1.1. Формирование нулевой матрицы Нулевой  называется матрица, у которой значения всех элементов равны 0   (см. занятие 10) и алгоритм ее формирования   в   памяти   компьютера   весьма   прост   ­   всем   элементам   матрицы   присваивается   значение   0.   В производственной   практике   эта   операция   называется   "обнулением   массива".   Она   применяется   для   подготовки оперативной памяти компьютера или магнитной памяти внешних устройств к приему массивов данных. 1.2. Формирование единичной матрицы Единичной  является   квадратная   матрица,   у   которой   значения   элементов   главной   диагонали   равны  1, остальные значения   0. Алгоритм формирования единичной матрицы следующий, если номер (индекс) строки равен номеру столбца, то элементу массива присвоить значение равное 1, иначе присвоить значение 0. Покажем  на примере нижеследующей  программы,  как формируется  такая  матрица в оперативной  памяти компьютера. Program V1L11P1; {Формирование единичной матрицы} Uses Crt; Var a:array[1..10,1..10] of integer; m,n,i,j:integer; {} begin ClrScr; Write('Введи количество строк квадратной матрицы '); Read(m); {Формирование единичной матрицы} WriteLn('Единичная матрица'); for i:=1 to m do begin for j:=1 to m do begin {Внешний цикл ­ формирование строк} {Внутренний цикл ­ формирование столбцов} if i=j then a[i,j]:=1 else a[i,j]:=0; Write(a[i,j]:3) {Формирование значений элементов массива} {Печать значений элементов массива} end; WriteLn end; ReadKey end. Результат работы программы Введи количество строк квадратной матрицы  4 Единичная матрица 1 0 0 0 60 Алгоритмы формирования матриц со специальными названиями.  Преобразования матриц. Типовые задачи 0 0 0 1 0 0 0 1 0 0 0 1 1.3. Формирование верхне ­ треугольной и нижне ­ треугольной матриц По   определению,  верхне­треугольная  матрица,   это  квадратная  матрица,   значения   элементов   которой разделены  главной диагональю  на верхнюю часть    с произвольными значениями  элементов и нижнюю с нулевыми значениями. В нижнее ­ треугольной матрице это разделение осуществлено наоборот. Покажем формирование таких матриц на примере следующей программы, в которой формируется верхнее ­ треугольная матрица, значения элементов которой являются  случайными  целыми  числами,   лежащими  в диапазоне  (2,  8).  Для  получения  нижне­треугольной матрицы   с   теми   же   параметрами   значений   элементов,   следует   изменить   знак   "   >   "   на   "   <   ",   в   помеченной соответствующим комментарием строке программы. Program V1L11P2; {Формирование верхне­треугольной матрицы} Uses Crt; Var   a :array[1..10,1..10] of integer; c,i,j,m :integer; {} begin ClrScr; Randomize; Write('Введи количество строк квадратной матрицы '); Read(m);      {Формирование исходного массива} WriteLn('Верхне ­ треугольная матрица случайных чисел'); for i:=1 to m do begin {Цикл формирования строк} {Инициализация генератора случайных чисел} for j:=1 to m do begin {Цикл формирования столбцов}      {Цикл формирования целых значений элементов матрицы в диапазоне чисел (2, 8)} repeat c:=Random(9); until (c>=2)and(c<9); {Генерация целого случайного числа в диапазоне (0, 9)} {Логическое условие диапазона (2, 8)} a[i,j]:=c; if i>j then a[i,j]:=0;   {Для получения нижне–треугольной матрицы заменить знак > на <} Write(a[i,j]:4); end;      {Формирование значений элементов матрицы в диапазоне (2, 8)} {Конец цикла формирования столбцов} WriteLn end; ReadKey end.    {Прерывание выполнения программы до нажатия любой клавиши клавиатуры} {Конец цикла формирования строк} Возможный результат работы программы Введи количество строк квадратной матрицы  4 Верхне­треугольная матрица случайных чисел    5   4   1   6    0   2   1   3    0   0   3   1    0   0   0   6 Нижне­треугольная матрица будет выглядеть следующим образом.    5   0   0   0    4   2   0   0    1   1   3   0    6   3   1   6 Урок   2.  Алгоритмы   кососимметричная)     формирования       матриц   со   специальными       названиями   (симметричная, 2.1. Транспонирование матриц. 2.2. Сложение матриц. 2.3. Формирование симметричной и кососимметричной матрицы. 2.1. Транспонирование матриц 61 Определение.  Матрица   называется  транспонированной   к   исходной,   если   ее  строки  являются соответствующими столбцами исходной матрицы. Рассмотрим в качестве примера программу транспонирования матрицы, значения элементов которой получены случайным образом в диапазоне (­8,  9) целых чисел. Program V1L11P3; {Транспонирование матрицы} Uses Crt;  Var a,b :array[1..10,1..10] of integer; c,d,i,j,m,n :integer; {} begin ClrScr; Randomize; Write('Введи количество строк квадратной матрицы '); Read(m);     {Формирование исходного массива} WriteLn('Исходная матрица'); for i:=1 to m do begin for j:=1 to m do begin c:=Random(8);d:=Random(9); a[i,j]:=d­c; Write(a[i,j]:4); end; WriteLn end;     {Транспонирование матрицы} WriteLn('Транспонированная матрица'); for i:=1 to m do begin for j:=1 to m do begin b[i,j]:=a[j,i];{Присвоение значений элементов исходной матрицы транспонированной} Write(b[i,j]:4); end; WriteLn end; {} ReadKey end. Возможный результат работы программы Введи количество строк квадратной матрицы  4 Исходная матрица   ­4   2   0   1    5   3  ­5  ­5   ­1  ­3   6   1    7   2   3  ­7 Транспонированная матрица   ­4   5  ­1   7    2   3  ­3   2    0  ­5   6   3    1  ­5   1  ­7 2.2. Сложение  матриц Сложение   двух   или   нескольких   матриц   возможно   в   том   случае,   если   складываемые   матрицы   имеют одинаковый размер, т.е. равное количество строк и столбцов. Для получения матрицы сумм двух или более матриц, необходимо   сложить   значения   элементов,   имеющих   одинаковые   индексы.   Рассмотрим   эту   процедуру   на   примере следующей задачи. Задача. Даны две исходных квадратных матрицы  A m (F) и  B m (F 1). Получить третью матрицу  C m (F + F 1), равную сумме исходных матриц. Постановка задачи. 1. Исходные квадратные матрицы получить генерацией случайных чисел в диапазоне  (­8, 9), с распечаткой их на экране дисплея с сообщениями "Исходная матрица  "A"",  "Исходная матрица  "B"". 2. Результат сложения исходных матриц вывести на экран дисплея с сообщением  "Сумма матриц". 62 Алгоритмы формирования матриц со специальными названиями.  Преобразования матриц. Типовые задачи Program V1L11P4; {Сложение матриц} Uses Crt; Var a,b :array[1..10,1..10] of integer; c,d,i,j,m,n :integer; {} begin ClrScr; Randomize; Write('Введи количество строк квадратной матрицы '); Read(m);     {Формирование исходной матрицы "A"} WriteLn('Исходная матрица "A"'); for i:=1 to m do begin for j:=1 to m do begin c:=Random(8); d:=Random(9); a[i,j]:=d­c; Write(a[i,j]:4); end; WriteLn end;     {Формирование исходной матрицы "B"} WriteLn('Исходная матрица "B"'); for i:=1 to m do begin for j:=1 to m do begin c:=Random(8); d:=Random(9); b[i,j]:=d­c; Write(b[i,j]:4); end; WriteLn end;     {Сумма матриц} WriteLn('Сумма матриц'); for i:=1 to m do begin for j:=1 to m do begin a[i,j]:=a[i,j]+b[i,j]; Write(a[i,j]:4); end; WriteLn end; {} ReadKey end. Возможный результат работы программы Введи количество строк квадратной матрицы  3 Исходная матрица "A"    3   3   2   ­1  ­2   8    0  ­3   2 Исходная матрица "B"   ­4   5  ­1    0   4   0   ­5   6   1 Сумма  матриц   ­1   8   1   ­1   2   8   ­5   3   3 63 2.3. Формирование симметричной и кососимметричной  матриц Симметричной называется квадратная матрица, у которой значения элементов равны относительно главной диагонали. У кососимметричной матрицы значения элементов относительно главной диагонали  противоположны. Рассмотрим простой алгоритм формирования этих матриц, со случайными значениями элементов, который состоит из следующих шагов. 1. Формирование   исходной   верхне   (или   нижне)   ­   треугольной   матрицы        A \ 0        случайным   образом   в заданном диапазоне чисел. 2. Формирование  транспонированной  матрицы  B T   из исходной. Транспонированная матрица  B T  является нижне­треугольной        0 \ B      , ненулевые  элементы  которой   B = A. 3. Преобразование матрицы  A  m   в   сумму матриц        A \ 0           +           0 \ B      , причем элементы главной диагонали не суммируются. Программа,   реализующая   данный   алгоритм   выглядит   следующим   образом.   В   данной   программе   исходная нижнее   ­   треугольная   матрица   формируется     случайными   числами   в   диапазоне     (2,   8).   Возможен   другой   более рациональный алгоритм решения данной задачи. Program V1L11P5; {Формирование симметричной матрицы} Uses Crt; Var a,b :array[1..10,1..10] of integer; c,i,j,m :integer; {} begin ClrScr; Randomize; Write('Введи количество строк квадратной матрицы '); Read(m);     {Формирование исходного массива} WriteLn('Нижне­треугольная матрица случайных чисел'); for i:=1 to m do 64 Алгоритмы формирования матриц со специальными названиями.  Преобразования матриц. Типовые задачи begin for j:=1 to m do begin      {Цикл формирования целых значений элементов матрицы в диапазоне чисел (2, 8)} repeat c:=Random(9); until (c>=2)and(c<9);  {Генерация целого случайного числа в диапазоне (0, 9)} {Логическое условие диапазона (2, 8)} a[i,j]:=c;  Write(a[i,j]:4); end; {Формирование значений элементов матрицы в диапазоне (2, 8)} WriteLn end;     {Транспонирование матрицы} WriteLn('Транспонированная матрица'); for i:=1 to m do begin for j:=1 to m do begin b[i,j]:=a[j,i]; Write(b[i,j]:4); end; WriteLn end; {Сложение матриц} WriteLn('Симметричная матрица'); for i:=1 to m do begin for j:=1 to m do begin if i<>j then a[i,j]:=b[i,j]+a[i,j];  {Умножить значения одной из слагаемых матриц      на ­1   для   получения   кососимметричной      матрицы} Write(a[i,j]:4); end; WriteLn end; {} ReadKey end. Возможный результат работы программы Введи количество строк квадратной матрицы  3 Нижне­треугольная матрица случайных чисел    8   0   0    7   3   0    6   8   3 Транспонированная матрица    8   7   6    0   3   8    0   0   3 Симметричная матрица    8   7   6    7   3   8    6   8   3 Урок 3. Типовые задачи преобразования двумерных массивов данных .  Преобразование матрицы в вектор. Рассмотрим несколько типовых задач преобразования двумерных массивов  данных и приведем программы решения нескольких из них. 1. Задача   преобразования   массива   данных   посредством   выполнения   арифметических (математических) операций с его элементами. Задача преобразования массива данных по логическим условиям. Задача   формирования   нового   массива   из   исходного   массива   данных.   Пример   такой   задачи рассмотрим ниже. 2. 3. 65 Задача.  Дан     двумерный   массив  A  случайных чисел,   лежащих   в   диапазоне  (­6, 8). Создать одномерный массив B, исключив из исходного массива отрицательные элементы.  Постановка задачи. Значения строк и столбцов массива данных вводить с клавиатуры. 1. 2. Массив данных получить генерацией случайных чисел с распечаткой его на экране дисплея. 3. Результат решения задачи выводить на экран дисплея с сообщением "Одномерный  массив". Program V1L11P6; {Формирование одномерного массива из двумерного} Uses Crt; Var a:array[1..10,1..10] of integer; b:array[1..100] of integer; k,p,i,j,m,n,c,d :integer; {} begin ClrScr; Randomize; Write('Введи  количество   строк  '); Read(m); Write('Введи количество столбцов  '); Read(n);     {Формирование исходного массива} WriteLn('Исходный массив случайных чисел:'); for i:=1 to m do begin for j:=1 to n do begin c:=Random(6); d:=Random(8); a[i,j]:=d­c; Write(a[i,j]:4); end; WriteLn end; {}     {Просмотр исходного массива и формирования массива 'b'} k:=1; for i:=1 to m do begin {Начальное значение индекса массива 'b'} for j:=1 to n do begin if a[i,j]<0 then Continue else  begin {Если истина, то продолжить, иначе выполнить} b[k]:=a[i,j]; k:=k+1               {Формирование массива 'b'} {Формирование индекса массива 'b'} end; p:=k­1;    end; {Вычисление конечного значения индекса массива 'b'} end; WriteLn('Сформированный одномерный массив');     for k:=1 to p do  Write(b[k]:3); {Цикл печати массива 'b'} ReadKey end. Возможный результат работы программы Введи  количество   строк 3 Введи количество столбцов 4 Исходный массив случайных чисел    2   5  ­2  ­3   ­3   1   3  ­2    6  ­1  ­5   2 Сформированный одномерный массив   2  5  1  3  6  2 Контрольные вопросы и упражнения 66 Алгоритмы формирования матриц со специальными названиями.  Преобразования матриц. Типовые задачи 1. Дайте определение 3­х мерного, 4­х мерного и  n  мерного массивов.   Приведите примеры трехмерных массивов. 2. Какой тип могут иметь индексные переменные массивов данных?  Перечислите их. 3. Имеются ли ограничения размерности массивов в языке программирования TP 7.0, и какие? 4. Каким образом формируются массивы данных  и где они могут находиться ? 5. Какая информация может находиться в массивах данных ? 6. Напишите программу, которая выводит на экран значение элемента 1, 2, 3­х   мерного массива данных, адрес которых указывается с клавиатуры. 7. Напишите программу формирования одномерного массива   (вектора)  S    из суммы элементов столбцов матрицы A. Найдите в последней строке матрицы A элемент с максимальным значением. 8. Напишите программу формирования вектора P из произведения элементов строк матрицы A.  Определите сумму значений элементов вектора P. 9. Напишите   программу   формирования   вектора  B  из   средних   значений   элементов   строк   матрицы  A. Определите минимальное значение элемента вектора B. 10. Напишите   программу   выяснения   количества   положительных,   отрицательных   и   нулевых   значений элементов матрицы A. Для заметок, вопросов и ответов ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________ ________________________________ 67

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами

Операции над матрицами

Операции  над  матрицами
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.