Цели урока:
- углубление, обобщение, систематизация знаний учащихся по данной теме;
- отработка навыков решения матричных задач;
- подготовка к контрольной работе.
Задачи урока:
1) образовательные:
- отработка навыков решения задач с использованием двумерных массивов и проверкой условия;
- выработка умений находить количество элементов с данным свойством;
- отработка навыков заполнения двумерных массивов по определенному правилу;
2) развивающие:
- развитие логического мышления;
- формирование умений работы с квадратными матрицами;
- формирование умения анализировать, обобщать, сравнивать задачи;
3) воспитательные:
- формирование научного мировоззрения;
- сочетание индивидуальной работы с коллективной;
- воспитание добросовестного отношения к учению,
привитие интереса к
предмету.
Тип урока: комбинированный.
Вид урока: сдвоенный, продолжительность - 90 минут.
Год обучения: второй.
Возраст учащихся: XI класс.
Программное обеспечение: программа Turbo Pascal.
Дидактический материал: карточки с индивидуальными заданиями для проверки знаний; карточки с домашними задачами.
Наглядное пособие: плакаты с главной диагональю и с побочной диагональю.
Оформление доски: на доске написаны тема урока, цели урока.
Ход урока
I. Организационный момент.
Учитель объявляет тему урока, цели урока.
П. Актуализация знаний. Повторение пройденного материала.
1. Фронтальный опрос.
Вопросы для повторения.
Что называется массивом?
Какие массивы вы знаете?
Перечислите характеристики одномерного и двумерного массивов и их элементов. На что они указывают?
Какие способы описания матрицы вы знаете? Приведите примеры.
Как формируют двумерный массив?
2. Работа на карточках.
Ребята получают небольшие задания на карточках (см. Приложение 1).
III. Отработка навыков и выработка умений решения задач с использованием двумерных массивов и проверкой условия.
Нахождение количества элементов с данным свойством.
Задачи на нахождение количества элементов с данным свойством во всем массиве решаются практически так же, как и для одномерных массивов. Необходимо лишь добавить второй цикл ко второму индексу.
Задача 1. Найти количество отрицательных элементов в каждой строке заданной целочисленной матрицы.
Решение.
Рассмотрим несколько вариантов решения этой задачи.
Способ 1. Можно хранить количество отрицательных элементов каждой строки в одномерном массиве соответствующей размерности.
Сформируем массив с помощью генератора случайных чисел, выведем его на экран. Опишем процедуру, которая имеет два параметра - двумерный массив и одномерный массив, каждый элемент которого есть количество отрицательных элементов в каждой строке матрицы. Для вывода результата на экран опишем процедуру вывода одномерного массива на экран.
Напишем программу на языке Pascal.
Описание массивов, формирование матрицы и ее вывод на экран напишет на доске ... (фамилия ученика).
Program Coll; (см Приложение 2)
Теперь вместе напишем процедуру формирования одномерного массива, каждый элемент которого есть количество отрицательных элементов каждой строки матрицы.
Procedure Q_l (х: dmyarray; var у: omyarray); (см Приложение 2)
Осталось вывести одномерный массив на экран. Для этого напишем знакомую нам процедуру вывода одномерного массива на экран.
Procedure Print1 (у: omyarray); (см Приложение 2)
Далее пишем основную часть программы, где вызываем разработанные нами все процедуры в соответствующей последовательности.
Begin (см Приложение 2)
Способ 2 .
Можно использовать счетчик, находить количество отрицательных элементов строки и сразу выводить найденное значение на экран.
В разделе описания глобальных переменных введем новую переменную к, которая будет отображать показания счетчика. Процедуры формирования и вывода двумерного массива будут меняться (фамилия ученика)? Правильно, не будут меняться.
Напишем процедуру нахождения количества отрицательных элементов с помощью счетчика. Procedure Q_2 (х: dmyarray); (см. Приложение 2)
IV. Практическая работа на компьютере.
Реализуем решение данной задачи на компьютере и первым способом, и вторым способом. Самостоятельно разработайте программу решения следующей задачи:
Задача 2. Найти количество отрицательных элементов в каждом столбце заданной целочисленной матрицы.
Программа решения этой задачи (демонстрируется после самостоятельной работы ребят):
Program Col_2; (см. Приложение 2)
V. Гимнастика для глаз - 1 мин.
VI. Отработка навыков решения матричных задач, в которых необходимо изменить значения некоторых элементов, обладающих заданным свойством [3].
Решение таких задач похоже на решение задач для одномерных массивов.
Задача 3. В массиве размерностью n х m к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.
Учитель задает вопросы ученикам:
- Как можно указать элементы четных столбцов?
Приблизительные ответы учащихся:
- надо написать условие, которое показывает, что номер столбца - четный: j mod 2 = 0;
- можно просто указать координаты элементов четных столбцов матрицы следующим образом: A[i, 2 * j].
Учитель анализирует ответы учеников:
Правильно, ребята. Действительно, эту задачу можно решить разными способами, результат получится один и тот же. Самостоятельно разрабатываем программу решения данной задачи на компьютере. Затем проанализируем их.
Программа 1.
Program Example_31; (см.Приложение 3)
Вторая программа отличается лишь процедурой Subst_2.
Программа 2.
Program Example_32; (см.Приложение 3)
Получили две верные программы.
Задача 4. Заменить все отрицательные элементы матрицы на противоположные.
Учитель задает вопрос:
Ребята! Как бы вы все отрицательные элементы сделали положительными?
Приблизительные ответы учеников:
- необходимо умножить значение отрицательного элемента на (-1);
- надо взять значения элементов по абсолютной величине;
- можно просто поставить знак "минус" перед элементом матрицы, если он - отрицательный.
Учитель объявляет:
Эту задачу также решаем сразу на компьютере. Каким из предложенных способов составить программу решения задачи - право выбора за вами, ребята.
Ученики работают за компьютерами. Полученные программы отличаются следующими процедурами:
Программа 1. (см Приложение 3)
Программа 2. (см Приложение 3)
Программа 3. (см Приложение 3)
VII. Формирование умений работы с квадратными матрицами.
Наибольший интерес представляют квадратные матрицы [3], то есть двумерные матрицы, у которых оба измерения совпадают, например: A: Array [1..5, 1..5] Of integer;
Проведем в матрице так называемые диагонали. На доске на плакатах вам представлены графически эти диагонали - в виде линии, соединяющей левый верхний и правый нижний угол, и линии, соединяющей правый верхний и левый нижний угол. Соответственно первая из них называется главная диагональ, а вторая - побочная диагональ.
Задача 5. Определить, является ли данная квадратная матрица симметричной относительно своей главной диагонали.
Решение. Используем следующее правило: если для всех i = 1, 2, ..., п и j = 1, 2, ..., п, причем i >j, выполняется равенство A[i,j]=A[j, i], то матрица является симметричной. Поэтому можно составить следующую функцию:
Function Simmetr (х: dmyarray): Boolean; (см. Приложение 4)
Таким образом, если встретится хотя бы одна такая пара, что соответствующие элементы не будут равны, то функция вернет значение "ложь" (False).
Полностью реализуем эту программу на компьютере самостоятельно.
Program Example_34; (см. Приложение 4)
VIII. Формирование умений заполнения двумерного массива по правилу.
Задача 6. Заполнить массив А размером n х m следующим образом (по "змейке") [3].
1 2 3 4 5 ... n
... n+2 n+1
Решение. Для того чтобы заполнить массив указанным способом, надо вывести правило заполнения. В данном случае правило будет таким: если ряд нечетный (то есть, когда номер строки - нечетное число), тоA[i,j] = (i-l)*m + j, иначе (то есть когда строка четная) A[i,j] = i*m-j+l.
В соответствии с этим правилом составляем процедуру заполнения массива:
Procedure Fill (var х : dmyarray); ; (см. Приложение 4)
Реализуем эту программу на компьютере самостоятельно.
Program Example_35; (см. Приложение 4)
Гимнастика для глаз.
Подведение итогов урока. Подводятся итоги урока. Учитель говорит:
Ребята! Мы сегодня с вами рассмотрели целый ряд самых различных задач. Чему вы научились? Что нового узнали на уроке?
Ответы учащихся:
Сегодня мы познакомились с квадратными матрицами, узнали о главной и побочной диагонали в таких массивах, о том, что есть симметричные матрицы.
Мы научились определять количество элементов в двумерном массиве с заданным свойством :
Учитель объявляет оценки за урок.
XI. Домашнее задание. Каждому ученику выдается карточка с задачами; домашнее задание комментируется.
Учитель отмечает: "Все молодцы! Вы действительно многому научились на уроке. На следующем занятии нас ждут контрольные задачи. Урок окончен. До свидания!
Литература:
- Информатика и образование. 2009, №.9.
- Информатика: Приложение к газете "Первое сентября", 2008, №2.
- Окулов С.М. Основы программирования. М.: Лаборатория Базовых Знаний, 2002.
- Попов В.Б. TURBO PASCAL для школьников. М.: Финансы и статистика, 2007.
- Якушкин П.А., Лещинер В.Р., Кириенко Д.П. Информатика. ЕГЭ. Типовые тестовые задания от разработчиков ФИПИ. М.: "Экзамен, 2010.