Урок информатики по теме "Двумерные массивы"

Разделы: Информатика


Цели:

  • образовательные: способствовать формированию представления о двумерном массиве и основных свойств квадратных матриц; рассмотреть действия, которые можно выполнить над матрицами; познакомить с типовыми алгоритмами обработки матриц на языке Pascal; создать условия для формирования умения решать алгоритмы с двумерными массивами;
  • развивающие: создать условия для развития умений работать за ограниченный промежуток времени, развития навыков самостоятельной работы, развития навыков работы с конспектом.
  • воспитательные: содействовать созданию на уроке психологического комфорта для работы, воспитанию собранности, ответственного отношения к своему труду, повышения мотивации к учебной деятельности.

Тип урока: комбинированный.

Методы обучения: лекция, самостоятельная работа.

Формы организации: фронтальная работа, индивидуальная работа.

Оборудование: задания для работы в классе (индивидуальные карточки, задание на компьютере), записи на доске.

Ход урока:

1. Организационный момент .

Приветствие.
Сообщается тема.
Ставиться цель урока и задачи.

2. Актуализация полученных знаний

Устно проговариваются основные моменты предыдущей темы: “Одномерные массивы”. Фронтальный мини опрос по основным определениям.

3. Целеполагание, постановка задач:

  • дать определение понятию двумерный массив;
  • рассмотреть форму записи двумерного массива
  • рассмотреть основные свойства квадратных матриц;
  • рассмотреть действия, которые можно выполнить над матрицами;
  • познакомиться с типовыми алгоритмами обработки матриц на языке Pascal;
  • создать условия для формирования умения решать алгоритмы с двумерными массивами;

4. Лекция

Определение.

Двумерным массивом называется совокупность данных, каждое значение которых зависит от двух чисел, которые можно рассматривать как индекс столбца в матрице.

Формат записи

<имя>: array [н_индекс_1..в_индекс_1, н_индекс_2 ..в_индекс_2] of <тип>

1) Var

A: array[1..n,1..m] of integer;

2) const

Для того чтобы использовать элемент массива, надо указать имя массива и индекс элемента. Первый индекс соответствует номеру строки, второй – номеру столбца. Например:

for i:=1 to n do
for j:=1 to n do
a[i,j]:= random (100);

При инициализации двумерных массивов каждая строка заключается в дополнительную пару круглых скобок:

const a:mas= ((2,3,1,0),
(1,9,1,3),
(3,5,7,0));

Аналогом массивов языка Паскаль в математике являются матрицы. Матрица, у которой число строк равно числу столбцов, называется квадратной. A(n,n) – квадратная матрица

Основные свойства квадратных матриц:

1. Квадратные матрицы имеют главную и побочные диагонали. Например, для матрицы А на главной диагонали лежат элементы 1,5 и 9, а на побочной – 3, 5 и 7.

.

Если:

i=j – элементы расположены на главной диагонали;
i> j – элементы расположены ниже главной диагонали;
i<j – элементы расположены выше главной диагонали;
i?j – элементы расположены на главной диагонали и ниже;
i+j= n+1– элементы расположены на побочной диагонали;
i+j< n+1– элементы расположены над побочной диагональю;
i+j> n+1– элементы расположены под побочной диагональю;

2. Квадратная матрица, у которой все элементы, исключая элементы главной диагонали, равны нулю, называется диагональной матрицей

.

3. Диагональная матрица, у которой все элементы, стоящие на главной диагонали, равны 1 , называется единичной матрицей

4. Если в матрице A (m,n) поменять местами строки и столбцы, то получится матрица At (m,n), которая называется транспонированной матрицей.

Основные действия, которые можно выполнять над матрицами

  • суммировать;
  • находить разность;
  • произведение матрицы на некоторое число;
  • произведение двух матриц.

Типовые алгоритмы обработки матриц на языке Паскаль

  1. Вывод матрицы в виде таблицы:
  2. for i:= 1 to n do
    begin
    for j:= 1 to m do
    write (a[i,j]:4);
    writeln
    end;

  3. Использование генератора случайных чисел:
  4. randomize;
    for i:=1 to m do
    begin
    for j:=1 to n do
    begin
    a[i,j]:=random(100)-10;
    write(a[i,j]:4);
    end;
    writeln;
    end;

  5. 2-ой способ вывода матрицы в виде таблицы:
  6. for i:= 1 to n do
    for j:= 1 to m do
    if j>m then write (a[i,j]:4)
    else writeln (a[i,j]:4);

  7. Суммирование матриц:
  8. for i:= 1 to n do
    begin
    for j:= 1 to m do
    c[i,j]:=a[i,j]+ b[i,j]
    end;

  9. Транспонирование матрицы – зеркальное отражение ее элементов относительно главной диагонали. Сделать это можно, введя новый массив:

for i:= 1 to n do
for j:= 1 to n do
b[i,j]= a[j,i];

5. Первичный контроль

“Контурная карта” 2 варианта

1 вариант

  1. Исправьте неточности в описании двумерного массива:
  2. Var
    A= array[1..n,1..m] of integer;

  3. Вставьте пропущенные определения:
  4. … … двумерных массивов каждая строка заключается в дополнительную пару круглых скобок:

    const a:mas= ((2,3,1,0),
    (1,9,1,3),
    (3,5,7,0));

  5. Вставьте пропущенные определения:
  6. Основные действия, которые можно выполнять над матрицами: суммирование, произведение двух матриц,….,….

  7. Вставьте пропущенные определения:
  8. Матрица, у которой число строк равно числу столбцов, называется …. ….. .

  9. Найдите ошибки в алгоритме:

for i:= 1 to n do
begin
for j:= 1 to m do
c[i,j]:=a[i,j]+ a[i,j]
end;

Какую типовую задачу выполняет алгоритм?

2 вариант

  1. Исправьте неточности в описании массива:

const
n=4; m=3;
type
mas:array[1..m,1..n] of integer;

  1. Вставьте пропущенные определения:
  2. …… называется совокупность данных, каждое значение которых зависит от двух чисел, которые можно рассматривать как индекс столбца в матрице.

  3. Вставьте пропущенные определения:
  4. Диагональная матрица, у которой все элементы, стоящие на главной диагонали, равны … , называется единичной матрицей

  5. Вставьте пропущенные определения:
  6. Квадратная матрица, у которой все элементы, исключая элементы главной диагонали, равны нулю, называется … … .

  7. Найдите ошибки в алгоритме:

randomize;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100)-10;
end;
end;

Какую типовую задачу выполняет алгоритм?

А теперь сверимся: Приложение 1

Алгоритмы на языке Паскаль

  1. Написать программу, которая для целочисленной матрицы 3х4 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке. Приложение 2
  2. program sred_n;
    const m=3;
    n= 4;
    var
    a: array[1..m,1..n] of integer;
    i,j,n_pos_el:integer;
    sred:real;
    begin
    for i:=1 to m do
    for j:=1 to n do read(a[i,j]);
    sred:=0;
    for i:=1 to m do begin
    n_pos_el:=0;
    for j:=1 to n do begin
    sred:=sred+a[i,j];
    if a[i,j]>0 then inc(n_pos_el);
    end;
    writeln('V',i,'-oi stroke',n_pos_el,'polozitelnix elementov');
    end;
    sred:=sred/m/n;
    writeln('Srednee arifmeticheskoe:',sred:6:2);
    end.

  3. Написать программу, которая для прямоугольной целочисленной матрицы 3х4 определяет номер самого левого столбца, содержащего только положительные элементы. Если такого столбца нет, выводится сообщение. Приложение 3

program num_posit;
const m=3;
n=4;
var
a: array[1..m,1..n] of integer;
i,j,num:integer;
all_posit:boolean;
begin
randomize;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100)-10;
write(a[i,j]:4);
end;
writeln;
end;
num:=0;
for j:=1 to n do begin
all_posit:=true;
for i:=1 to m do
if a[i,j] < 0 then
begin
all_posit:=false;
break; end;
if all_posit then begin
num:=j; break; end;
end;
if num = 0 then
writeln('Takix stolbcov net')
else
writeln('Nomer stolbca:',num);
end.

Ученики загружают файлы в Паскале, анализируют данный алгоритмы, просматривают результаты выполнения программ, отвечают на дополнительные вопросы:

  1. Как организуется двумерный массив?
  2. Что означает процедура inc?
  3. Что означает процедура break?
  4. Как используется генератор случайных чисел?

6. Формирование навыков решения задач.

Решение задач по индивидуальным карточкам самостоятельно, в алгоритмической среде.

Примеры задач:

  1. Дана матрица А5х5, содержащая случайные элементы. Найти сумму всех элементов матрицы.
  2. Вывести на экран таблицу Пифагора.
  3. Найти сумму положительных элементов указанного столбца матрицы А5х5 целых чисел.

7. Итоги урока, постановка домашнего задания.

Подведение итогов. Оценка уровня усвоения.

Д/З конспект, задачи:

Для всех:

  1. Дан двумерный квадратный массив. Найти номера строк, все элементы которых равны нулю.
  2. Дан двумерный квадратный массив. Найти номера строк, элементы в каждой из которых одинаковы между собой.
  3. Определить минимальный элемент двумерного массива. Напечатать номер строки, содержащей максимальное число минимальных элементов, если такие имеются.
  4. Дан двумерный массив. Найдите строку с наибольшей суммой элементов и наименьшей. Вывести на экран найденные строки и суммы их элементов.

Для учащихся, имеющих представление о двумерных массивах и способах их решения:

Вместо лекции – решение задач повышенной сложности.

Примеры задач:

  1. Дан двумерный массив. Преобразовать его по следующему правилу: строку с номером N сделать столбцом с номером N, а столбец – строкой.
  2. В двумерном массиве Х все числа различны. В каждой строке выбирается минимальный элемент, затем среди этих чисел выбирается максимальное. Напечатать номер строки массива Х, в которой расположено выбранное число.
  3. Дан двумерный массив. Найти наибольшее из значений элементов первой и последней строки.
  4. Написать программу, которая выводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам.
  5. Написать программу, которая вычисляет сумму диагональных элементов квадратной матрицы.