Урок по теме “Квадратная матрица” входит в состав содержательной линии “Информационные технологии”.
Урок посвящен изучению наиболее часто используемого типа двумерных массивов – квадратной матрице и проводился в 11-ом классе. Данный урок рассматривается как обобщающий по пройденным темам “Одномерные массивы” и “Двумерные массивы”, а, кроме того, знакомит учащихся с самым распространенным видом табличного представления числовых данных – матрицей. Сам урок, предшествующий ему подготовительный этап, направлены на:
- закрепление понятий: двумерный массив, индексация элементов двумерного массива, объявление, заполнение, печать двумерных массивов;
- знакомство с понятиями: квадратная матрица, главная и побочная диагонали квадратной матрицы;
- формирование навыков работы с индексацией элементов, расположенных над, под, на главной и побочной диагоналями;
- знакомство со стандартными блоками заполнения и печати элементов квадратной матрицы.
Продолжительность урока – 2 часа.
Первая часть урока – проверка знаний учащимися основных понятий темы массивы: табличные данные, их индексация, размерность, объявление, типы массивов, обращение к элементу массива (проводится в виде фронтального опроса).
Вторая часть – знакомство с новой темой на основе обучающей программы-презентации “Квадратная матрица”, в которой рассказывается об основных понятиях темы: об индексации элементов матрицы, о главной и побочной диагоналях, различных способах формирования массива.
Третья часть – выполнение разнообразных проверочных заданий:
- на закрепление понятия индексация элементов на-, под-, над- главной и побочной диагоналями;
- на освоение стандартных блоков заполнения матрицы значениями, расположенными на, под, над главной и побочной диагоналями.
Учащимся предлагаются для решения дифференцированные задания с постепенно возрастающим уровнем сложности.
Технические требования к технике и программному обеспечению:
- для проведения урока использовались компьютеры “Aquarius”;
- ОС Windows XP;
- Microsoft Office 2003;
- среда программирования Pascal для Windows.
- программа дистанционного управления компьютерами NetOP School (с помощью которой учитель имеет возможность проследить со своего компьютера за работой каждого учащегося или группы, а также выполнить проверку выполняемых заданий);
- обучающая программа-презентация “квадратная матрица”, созданная учителем средствами Microsoft Power Point (см. Приложение1).
Цель урока:
- закрепление понятий двумерный массив, индексация элементов двумерного массива, объявление, заполнение, печать двумерных массивов;
- знакомство с понятием квадратная матрица, главная и побочная диагонали квадратной матрицы;
- формирование навыков работы с индексацией элементов, расположенных над, под, на главной и побочной диагоналями;
- знакомство со стандартными блоками заполнения и печати элементов квадратной матрицы.
Тип урока: лекционно-практическое занятие.
Оборудование: ПЭВМ, раздаточный материал.
План урока:
- Организационный момент.
- Фронтальный опрос по теме урока “Двумерный массив. Объявление массива”. (выполнение проверочных заданий на карточках).
- Квадратная матрица. Основные понятия: главная и побочная диагонали, индексация элементов расположенных над, под, на главной и побочной диагоналями.
- Заполнение и печать массива.
- Решение типовых задач.
- Домашнее задание.
- Обобщение урока.
Ход урока
1. Приветствие учащихся. Запись числа, темы урока: “Квадратная матрица”.
2. Фронтальный опрос.
Учащимся предлагается ответить на вопросы “Проверочных заданий”.
1. Что такое массив?
2. Какие массивы Вам известны?
3. Какой массив называется двумерным?
4. Как выглядит обращение к элементу массива А в общем случае?
5. Что такое размерность массива?
6. Перечислите элементы программы, содержащей массив?
7. Что такое объявление массива?
8. Расшифруйте следующие записи: Все ли описания сделаны верно?
var A: array [1..3,1..5] of real; i,j: integer; |
var B: arrey [1..7,1..4] of integer; i,j: integer; |
var C: array [1..4,1..4] of real; i,j: real; |
var D: array [1..N,1..M] of integer; i,j: integer; |
9. Какие вам известны способы заполнения массива?
10. Рассмотрим двумерный массив А (рис. 2.1.):
Объявите данный массив.
Определите значения следующих элементов массива: A[1,5]= , A[5,1]= , A[6,4]= , A[4,5]= , A[2,3]= , A[4,2]= , A[3,2]= .
1 | 3 | 5 | 7 | 9 |
2 | 4 | 6 | 8 | 10 |
11 | 13 | 15 | 17 | 19 |
12 | 14 | 16 | 18 | 20 |
21 | 23 | 25 | 27 | 29 |
22 | 24 | 26 | 28 | 30 |
Рис. 2.1.
Определите месторасположение элементов со следующими значениями
A[ ..,..]= 17, A[…,…]= 29, A[ ..,..]= 30, A[…,…]= 16, A[ ..,..]= 1, A[…,…]= 27.
3. Квадратная матрица (рассказ учителя сопровождается демонстрацией презентации по данной теме).
Квадратная матрица- это двумерный массив, в котором количество строк равно количеству столбцов. Обращение к элементу происходит также как и в обычном двумерном массиве A[i,j]. Умение работать с квадратными матрицами пригодится вам при решении систем уравнений. Существует целый арсенал численных методов решения систем уравнений, базирующийся на понятии матрица.
Перечислим основные свойства квадратной матрицы (рис. 3.1.):
1. Квадратные матрицы имеют главную и побочную диагонали. Например, для матрицы А на главной диагонали лежат элементы 1,4,9, на побочной - 45,4,12.
1 | 31 | 45 |
10 | 4 | 18 |
12 | 10 | 9 |
Рис. 3.1.
Если i = j - элементы расположены на главной диагонали;
i > j - элементы расположены ниже главной диагонали;
i < j - элементы расположены выше главной диагонали;
i > j - элементы расположены на главной диагонали и ниже;
i< j - элементы расположены на главной диагонали и выше;
i+j = n+1 - элементы расположены на побочной диагонали;
i+j < n+1 - элементы расположены над побочной диагональю;
i+j > n+1 - элементы расположены под побочной диагональю.
2. Квадратная матрица, у которой все элементы, исключая элементы главной диагонали, равны нулю, называется диагональной матрицей (рис. 3.2.)
1 | 0 | 0 |
0 | 2 | 0 |
0 | 0 | 3 |
Рис. 3.2.
3. Диагональная матрица, у которой все элементы, стоящие на главной диагонали равны 1, называется единичной матрицей (рис. 3.3.):
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
Рис. 3.3.
Обращение к элементу главной диагонали выглядит как A[i,i], к элементу побочной как A[i,n-i+1], где n – количество строк матрицы.
Итак, мы уже знаем, что при составлении программ с массивами выполняются несколько этапов:
1. Объявление массива.
2. Заполнение его одним из трех способов: с клавиатуры, по правилу, случайным образом.
3. В зависимости от условия задачи выполнение расчетов или сортировки элементов матрицы.
4. Печать массива.
Все эти этапы применимы и к квадратной матрице. Рассмотрим объявление матрицы. Вы знаете, что под объявлением понимают выделение в памяти компьютера необходимого количества ячеек под элементы матрицы. Это количество называют размерностью и определяют как произведение количества строк на количество столбцов. Применительно к квадратной матрице размерность определяется как N*N, где N - количество строк матрицы.
Объявление квадратной матрицы в общем виде выглядит следующим образом:
<имя массива>: array [1..N,1..N] of <тип массива>;
i,j,n:integer;
Например, объявляется целочисленная квадратная матрица из 5 строк
var A: array [1..5,1..5] of integer;
i,j: integer;
Опишите объявление матрицы из 7 строк, заполненной вещественными числами: var A: array [1..7,1..7] of real; i,j: integer;
Для заполнения квадратной матрицы используется один из трех уже известных нам стандартных блоков:
{блок заполнения массива с клавиатуры}
for i:=l to N do
for j:=l to N do begin
write ('A[‘,i,’,’,j,’]=’);
readln (a[i,j]);
writeln
end;
{блок заполнения массива случайным образом}
randomize;
for i:=l to N do
for j:=l to N do A[i,j]:= random(50);
{блок заполнения массива по правилу}
for i:=l to N do
for j:=l to N do A[i,j]:= <правило>;
Рассмотрим следующую задачу: сформировать матрицу вида (рис 3.4.):
program zadacha;
var a: array [1..5, 1..5] of integer;
i,j,n: integer;
begin
n=5;
2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 |
2 | 2 | 2 | 2 | 2 |
Рис. 3.4.
{блок заполнения массива по правилу}
for i:=l to n do
for j:=l to n do A[i,j]:= 2;
Пусть элементы главной диагонали равны 5 (рис 3.5.):
{блок заполнения элементов главной диагонали массива}
for i:=l to n do
A[i,i]:= 5;
5 | 2 | 2 | 2 | 2 |
2 | 5 | 2 | 2 | 2 |
2 | 2 | 5 | 2 | 2 |
2 | 2 | 2 | 5 | 2 |
2 | 2 | 2 | 2 | 5 |
Рис. 3.5.
Что изменится в этой программе, если матрица будет выглядеть так (рис 3.6.):
Добавится блок заполнения элементов побочной диагонали.
{блок заполнения элементов побочной диагонали массива}
for i:=l to n do
A[i,n-i+1]:= 4;
5 | 2 | 2 | 2 | 4 |
2 | 5 | 2 | 4 | 2 |
2 | 2 | 4 | 2 | 2 |
2 | 4 | 2 | 5 | 2 |
4 | 2 | 2 | 2 | 5 |
Рис. 3.6.
Распечатаем полученную матрицу:
{блок печати элементов массива}
for i:=l to n do begin
for j:=l to n do write ('A[‘,i,’,’,j,’]=’,A[i,j]);
writeln
end;
writeln
end.
Рассмотрим матрицу вида (рис. 3.7.).
Особенностью этой матрицы является то, что ненулевыми являются элементы главной диагонали и элементы, расположенные над главной диагональю.
5 | 2 | 2 | 2 | 2 |
0 | 5 | 2 | 2 | 2 |
0 | 0 | 5 | 2 | 2 |
0 | 0 | 0 | 5 | 2 |
0 | 0 | 0 | 0 | 5 |
Рис. 3.7.
Как будет выглядеть блок заполнения матрицы?
Мы знаем, что при объявлении числовой матрицы, все ее элементы заполняются нулями, значит в нашем случае, для заполнения матрицы нам достаточно указать блоки заполнения ее главной диагонали и блок заполнения элементов над главной диагональю, т.е.:
{блок заполнения элементов главной диагонали массива}
for i:=l to n do A[i,i]:= 5;
{блок заполнения элементов над главной диагональю массива}
for i:=1 to n-1 do
for j:=i+l to n do A[i,j]:= 2;
В предложенной матрице заполнить следует элементы на и под главной диагональю (рис. 3.8).
5 | 0 | 0 | 0 | 0 |
3 | 5 | 0 | 0 | 0 |
3 | 3 | 5 | 0 | 0 |
3 | 3 | 3 | 5 | 0 |
3 | 3 | 3 | 3 | 5 |
Рис. 3.8.
{блок заполнения элементов главной диагонали массива}
{блок заполнения элементов главной диагонали массива}
for i:=l to n do A[i,i]:= 5;
{блок заполнения элементов под главной диагональю массива}
for i:=2 to n do for j:=l to i-1 do A[i,j]:= 3;
Заполнение матрицы вида (рис. 3.9).
1 | 1 | 1 | 1 | 7 |
1 | 1 | 1 | 7 | 0 |
1 | 1 | 7 | 0 | 0 |
1 | 7 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 0 |
Рис. 3.9.
{блок заполнения элементов побочной диагонали массива}
for i:=l to n do A[i,n-i+1]:= 7;
{блок заполнения элементов над побочной диагональю массива}
for i:=1 to n-1 do
for j:=l to n-i do A[i,j]:= 1;
0 | 0 | 0 | 0 | 7 |
0 | 0 | 0 | 7 | 1 |
0 | 0 | 7 | 1 | 1 |
0 | 7 | 1 | 1 | 1 |
7 | 1 | 1 | 1 | 1 |
Рис. 3.10.
Заполнение матрицы вида (рис. 3.10).
{блок заполнения элементов побочной диагонали массива}
for i:=l to n do A[i,n-i+1]:= 7;
{блок заполнения элементов под побочной диагональю массива}
for i:=n downto 2 to n do
for j:= n-i+2 to n do A[i,j]:= 1;
На основе изученных блоков сформировать и распечатать матрицы вида
Рис. 3.11 |
Рис. 3.12 |
5. Домашнее задание. Составить программы по условиям:
Дана целочисленная квадратная матрица 4х4, заполненная случайным образом. Вычислить сумму элементов под побочной диагональю. Распечатать сам массив и значение суммы.
Дана матрица А вида: составить программу формирующую данную матрицу.
1 | 3 | 3 | 3 | 3 |
10 | 4 | 3 | 3 | 3 |
10 | 10 | 9 | 3 | 3 |
10 | 10 | 10 | 16 | 10 |
10 | 10 | 10 | 10 | 25 |
6. Сегодня на уроке мы познакомились с новым видом массивов – квадратной матрицей. Вы узнали, как индексируются элементы квадратной матрицы, что такое главная, побочная диагонали, как они формируются по правилу, с клавиатуры, случайным образом, а также научились распечатывать значения элементов массивов по строкам и по столбцам.