Цели:
- определить соотношение индексов в квадратной матрице;
- овладеть способом формирования квадратной матрицы относительно индексов;
- развивать память, внимание, умения анализировать, строить по аналогии с ранее изученным;
- формировать мировоззрения на материале.
Ученик должен знать:
- определение массива;
- способы его описания;
- обращение к элементу массива;
- способы обработки массивов.
Ученик должен уметь:
- использовать ранее изученные понятия – типы данных, условный и циклический операторы;
- обосновать необходимый рациональный способ организации данных;
- составлять программы на языке PASCAL.
Структура урока
- Организация начала урока. (Мотивация учебной деятельности, сообщение темы, цели и задач урока)
- Повторение ранее изученного материала по теме “Двумерный массив”
- Изучение нового материала.
- Первичное применение знаний с целью формирования умений.
- Практическая работа. Создание программ по карточкам.
- Подведение итогов урока.
- Домашнее задание.
Оборудование
- Таблица - квадратная матрица.
- Раздаточный материал (практическая работа по карточкам).
Ход урока
Повторение
Вопросы:
1. Что такое двумерный массив? Как осуществляется доступ к элементу двумерного массива?
Ответ Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде матрица записывается А(n,m), где A – имя массива, n – количество строк, m – количество столбцов. Элемент матрицы обозначается как А[i,j], где i – индекс строки, j – индекс столбца.
2. Описание двумерного массива.
Ответ. Двумерный массив можно описать:
- в разделе описания переменных
var <имя матрицы>: array[1..n, 1..m] of <тип переменной>;
- в разделе описания констант, если элементы массива известны
const <имя матрицы>: array[1..n, 1..m] of <тип переменной> = ((элементы первой строки), …(элементы строки n)) ;
3. Как можно заполнить двумерный массив?
Ответ. Двумерный массив можно заполнить:
- в разделе описания констант;
- ввести данные с клавиатуры
for i:= 1 to n do
begin
writeln (‘введите ‘, i, ‘строку матрицы А’);
for j:= 1 to m do
readln (a[i,j])
end;
- по формуле
for i:= 1 to n do
for j:= 1 to m do
a[i,j]:= <формула>; (например: a[i,j]:=i*j);
- с помощью генератора случайных чисел
randomize;
for i:= 1 to n do
for j:= 1 to m do
a[i,j]:= random(c-b)+b;
(где [b,с] – отрезок на котором формируется массив)
4. Как организуют в программе вывод массива?
Ответ.
for i:= 1 to n do
begin
for j:= 1 to m do
write (a[i,j], ‘ ‘):
writeln;
end;
Изучение нового материала
Двумерный массив с одинаковым количеством строк и столбцов называют квадратным.
Матрица А(5x5)
А11 А12 А13 А14 А15
А21 А22 А23 А24 А25
А31 А32 А33 А34 А35
А41 А42 А43 А44 А45
А51 А52 А53 А54 А55
Для квадратного двумерного массива введем два определения. Примем, что главную диагональ массива образуют элементы, расположенные между элементом в верхнем левом и элементом в нижнем правом углах массива, включая сами эти элементы (А11, А22, А33, А44, А55). Побочную диагональ массива образуют элементы, расположенные между элементом в верхнем правом и элементом в нижнем левом углах массива, включая сами эти элементы (А15, А24, А33, А42, А51).
Задача 1.
Сформировать единичную матрицу. (Единичная матрица – это квадратная числовая матрица, главная диагональ которой состоит из единиц, все остальное – из нулей)
Решение
for i:= 1 to n do
for j:= 1 to n do
if i=j then a[i,j]:=1
else a[i,j]:=0;
Задача 2.
Сформировать квадратную матрицу, побочная диагональ которой состоит из единиц, все остальное – из нулей.
Решение
for i:= 1 to n do
for j:= 1 to n do
if i+j = n+1 then a[i,j]:=1
else a[i,j]:=0;
Задача 3. Заполнить таблицу “Соотношение индексов в квадратной матрице”
Элементы квадратной матрицы расположены | |||||
главная диагональ | побочная диагональ | ||||
на | над | под | на | над | под |
Ответ
Элементы квадратной матрицы расположены | |||||
главная диагональ | побочная диагональ | ||||
на | над | под | на | над | под |
i=j | i<j | i>j | i+j=n+1 | i+j<n+1 | i+j>n+1 |
Задача 4. Практическая работа на ПК по карточкам (8 вариантов).
Составить программу формирования матрицы.
1)
0 1 1 1 1 1 1
1 0 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 0 1 1 1
1 1 1 1 0 1 1
1 1 1 1 1 0 1
1 1 1 1 1 1 0
2)
1 1 1 1 1 1 0
1 1 1 1 1 0 1
1 1 1 1 0 1 1
1 1 1 0 1 1 1
1 1 0 1 1 1 1
1 0 1 1 1 1 1
0 1 1 1 1 1 1
3)
0 1 1 1 1 1 1
2 0 1 1 1 1 1
2 2 0 1 1 1 1
2 2 2 0 1 1 1
2 2 2 2 0 1 1
2 2 2 2 2 0 1
2 2 2 2 2 2 0
4)
2 2 2 2 2 2 0
2 2 2 2 2 0 1
2 2 2 2 0 1 1
2 2 2 0 1 1 1
2 2 0 1 1 1 1
2 0 1 1 1 1 1
0 1 1 1 1 1 1
5)
0 2 2 2 2 2 0
1 0 2 2 2 0 1
1 1 0 2 0 1 1
1 1 1 0 1 1 1
1 1 0 1 0 1 1
1 0 1 1 1 0 1
0 1 1 1 1 1 0
6)
0 1 1 1 1 1 0
1 0 1 1 1 0 2
1 1 0 1 0 2 2
1 1 1 0 2 2 2
1 1 0 1 0 2 2
1 0 1 1 1 0 2
0 1 1 1 1 1 0
7)
0 1 1 1 1 1 5
2 0 1 1 1 5 2
2 2 0 1 5 2 2
2 2 2 5 2 2 2
2 2 5 1 0 2 2
2 5 1 1 1 0 1
5 1 1 1 1 1 0
8)
0 1 1 1 1 1 5
4 0 1 1 1 5 2
4 4 0 1 5 2 2
4 4 4 5 2 2 2
4 4 5 3 0 2 2
4 5 3 3 3 0 2
5 3 3 3 3 3 0
Решение
Сценарий:
- Сформировать массив
- Вывести массив на экран.
Program massiv;
Const n=7;
Var A : array[1..n, 1..n] of integer;
i, j: integer;
begin
{операторы формирования массива};
for i:= 1 to n do
begin
for j:= 1 to n do
write (a[i,j], ‘ ‘):
writeln;
end;
end.
Домашнее задание
1. Определить сумму элементов главной диагонали матрицы, сумму элементов побочной диагонали.
2. В квадратной матрице выделим четыре четверти, ограниченные главной и побочной диагоналями (без учета элементов, расположенных на диагоналях): верхнюю, нижнюю, левую и правую. Найти сумму элементов:
а) верхней четверти;
б) правой четверти;
в) нижней четверти;
г) левой четверти.
3. В массиве записаны целые числа. Вычислить:
а) произведение элементов побочной диагонали массива, меньших 10;
б) сумму элементов главной диагонали массива, оканчивающихся цифрой 7;
в) количество нулевых элементов, расположенных над главной диагональю массива;
г) число нечетных элементов, расположенных под побочной диагональю массива.
Литература.
- Я иду на урок информатики. Златопольский Д.М. – М.: “Первое сентября”, 2002 г.
- Бейсик и Паскаль: от простого к сложному. Житкова О.А., Кудрявцева Е.К. – Калуга: издательство Н. Бочкаревой, 1998 г.