Submitted by Татьяна Владимировна Кирий on Wed, 26/02/2014 - 21:45
Структура урока:
Организационный момент – 1 мин.
Сообщение темы и цели урока – 1 мин.
Актуализация знаний и умений учащихся – 3 мин.
Ввод основных понятий темы – 16 мин.
Закрепление (решение задач) – 20 мин.
Подведение итогов урока – 2 мин.
Домашнее задание – 2 мин.
Ход урока
1. Организационный момент.
Учитель ждет, пока дети успокоятся, приготовятся к уроку, при этом делает необходимые замечания. Здоровается.
2. Сообщение темы и цели урока.
Сегодня на уроке мы с вами выясним как происходит поиск в массиве данных.
3. Актуализация знаний и умений учащихся.
Для этого нам понадобятся ранее приобретенные знания. Давайте вспомним некоторые моменты:
Что называется массивом? (Массив– это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип)
Как заполняется массив? (по элементно с помощью цикла. 1 способ: с клавиатуры, 2 способ: с помощью генератора случайных чисел)
Что называется циклом? (Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд.)
С какими операторами цикла в Pascal вы знакомы?(Оператор цикла с параметром (FOR..TO..DO); с предусловием (WHILE…DO…); с постусловием (REPEAT…UNTIL…).)
Какой из данных операторов является универсальным? (WHILE)
При использовании какого оператора цикл выполнится как минимум один раз? (REPEAT)
Каково главное отличие условных операторов цикла от оператора цикла с параметром? (В теле условных циклов необходимо изменять переменные, входящие в условие, а в теле цикла с параметром параметр изменять нельзя)
4. Ввод основных понятий темы.
В повседневной жизни нам часто приходится искать что-то или кого-то среди большого количества данных, предметов.
Как это происходит?
Задача 1: Найти наибольший элемент в массиве.
Идея: Первый элемент сравнивать с каждым, пока не найдем больший, дальше сравниваем с остальными найденный элемент. Перебираем все элементы массива.
Программа:
program massiv_rosta;
const n=20; {количество элементов в массиве}
var i, max:integer;
mas:array[1..n] of integer;
begin
{ ввод массива одним из 2-х способов}
max:=mas[1];
for i:=2 to n do
if max<mas[i] then max:=mas[i];
writeln(‘наибольший элемент массива =’,max);
end.
Задача 2: Опишите на русском языке или одном из языков программирования алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.
1 способ.
Идея: сначала ищем максимальный элемент, затем считаем количество элементов ему равных.
Этот способ под силу начинающим программистам, т.к. логика решения проста, и под рукой все составляющие алгоритма: поиск наибольшего элемента, подсчет количества.
const n=30;
var
mas: array[1..n] of integer;
max, k, i: integer;
Begin
{ввод элементов массива}
max:=mas[1]; {поиск максимального}
for i:=2 to n do
if max < mas[i] then
begin
max:=mas[i];
end;
k:=0; {подсчет числа элементов, равных максимальному}
for i:=1 to n do
if max = mas[i] then k:=k+1;
writeln(k);
End.
Задача решена.
Если уже имеется опыт программирования, то возникает вопрос: «Нельзя ли только один раз перебирать массив?».
2 способ.
Идея: ищем наибольший и если встречаем ему равные, то считаем их количество.
const n=30;
var
mas: array[1..n] of integer;
max, k, i: integer;
Begin
{ввод элементов массива}
max:=mas[1]; k:=1; {поиск максимального}
for i:=2 to n do
if max < mas[i] then
begin
max:=mas[i]; k:=1;
end
else {подсчет числа элементов, равных максимальному}
if max = mas[i] then k:=k+1;
writeln(k);
End.
5. Закрепление.
Решение задач А, В, С, J из раздела Массивы (http://informatics.mccme.ru/mod/statements/view.php?id=208)
6. По таблице результатов и активности в первой части урока оценить обучающихся.