Тема урока «Поиск элементов с заданными свойствами»
Цели урока:
-
Закрепить представление о структурированном типе данных массив;
-
Научиться осуществлять поиск элементов с заданными свойствами.
-
Отработка навыков решения задач с применением одномерных массивов;
Задачи урока:
образовательные:
развивающие:
-
развитие структурного мышления учащихся;
-
развитие учебно-познавательную деятельность учащихся на основе самостоятельного анализа фактов, предлагаемых учителем;
воспитательные:
-
привитие исследовательского подхода в познании нового;
-
формирование умения применять на практике полученные знания;
-
воспитание чувства ответственности за результаты своего труда;
-
воспитание сотрудничества.
Оборудование урока: учебное пособие «Информатика. 9 класс», § 9, интегрированная инструментальная оболочка программы PascalАВС.
Структура урока:
-
Организационный момент.
-
Проверка усвоения ранее изученного материала.
-
Объяснение нового материала.
-
Закрепление нового материала. Практическая часть.
-
Домашнее задание.
-
Рефлексия. Подведение итогов урока.
Ход урока
-
Организационный момент
Добрый день, ребята! С сегодняшнего дня у вас уроки по информатике буду вести я, зовут меня Дмитрий Николаевич.
-
Проверка усвоения ранее изученного материала
Перед тем как начать новую тему, давайте проверим как вы усвоили прошлые темы, для этого проведем небольшой опросник.
Как записывается массив в языке Pascal ABC?
Что такое размер массива?
Максимально возможное количество элементов
Как записать массив из 8 константных значений?
Как присвоить значения элементу массива?
А как какие процедуры позволяют вам ввести значения с клавиатуры?
Процедуры read и readln
Как на языке программирования будут выглядеть логическое выражение ,указывающее на положительные элементы массива
A[i] 0
-
Объяснение нового материала.
Молодцы, а теперь приступим к продолжению темы.
Откройте тетради и запишите дату и тему «Поиск элементов с заданными свойствами» На прошлом уроке вы уже познакомились с условиями которые часто используют при поиске элементов в массиве, а именно:
Сегодня мы будем находить максимальный и минимальный элемент массива.
Пример 1
Нам необходимо определить максимальный элемент массива из 7 случайных целых чисел от 0 до 50.
Для этого рассмотрим алгоритм поиска максимального элемента. Максимальный элемент будем хранить в переменной max,а его индекс - в переменной k. Предположим, что максимальный элемент массива - первый max:=A[i], k=1. Для нахождения максимального элемента, нам теперь необходимо последовательно сравнивать все элементы A[i] со значением max,начиная со второго. Для этого организуем цикл for с параметром i, который будет уже меняться от 2 до 7. На каждом цикле будет проверяться условие A[i]max. Когда же это условие будет выполняться, то значение этого элемента примем в качестве максимального max:=A[i], индекс же теперь будет k:=i.
program ma;
var A:array[1..7] of integer;
max,k,i: integer;
begin
for i:=1 to 7 do A[i]:=random (51);
max:=A[i];k:=1 ;
for i:=2 to 7 do
if A[i]max then
begin
max:=A[i]; k:=i
end;
writeln('max A[', k,']=',max);
for i:=1 to 7 do write (A[i]:6);
end.
Рассмотрим второй пример.
Пример 2
Нам надо найти номер и время победителя соревнований по бегу, в котором участвовало 12 спортсменов. Результаты забегов вводятся с клавиатуры
Как и в прошлой задаче, предположим, что минимальное время показал участник под номером 1. Также присвоим переменной k его индекс k:=1. Зададим в цикле условие поиска индексе участника с минимальным временем:
If A[i]
Program beg;
var A:array [1..12] of integer;
i,k: integer;
begin
for i:= 1 to 12 do read(A[i]) ;
k:=1;
for i:=2 to 12 do
if A[i]минимальное значение}
writeln('Победил участник ', k,' с результатом ',A[k]);
end.
-
Закрепление нового материала. Практическая часть.
Хорошо, а теперь закрепим полученные знания решением задач. Присаживайтесь за компьютеры, и приступайте к работе.
Задача 1
Необходимо написать программу, которая находит минимальный рост учащихся нашей подгруппы, массив данных о росте вводится с клавиатуры.
Программа выглядит следующим образом
program ma;
var A:array[1..5] of integer;
min,k,i,n: integer;
begin
write ('Vvedite n='); readln (n);
for i:=1 to n do
begin
write ('A[', i, ']='); readln (A[i]);
end;
min:=A[i];
k:=1 ;
for i:=2 to n do
if A[i]
begin
min:=A[i]; k:=i
end;
writeln('min A[', k,']=',min);
for i:=1 to n do write (A[i]:6);
end.
Молодцы, те, кто успешно справился с этим заданием, вот вам следующая задача.
Задача 2
В массиве хранится средний балл за первую четверть 9 учеников 9 «В» класса: 6.9, 8.6, 7.0, 7.8, 6.3, 6.5, 9.3, 8.6, 8.1. Составить программу, которая определяет, есть ли в классе ученики, средний балл которых больше 8,0. Массив данных о среднем балле учеников задается в виде действительных констант.
Решение программы выглядит так:
Program z1;
const A: array [1..9] of real = (6.2, 7.9, 5.6, 5.8, 8.1, 8.6, 7.9, 6.5, 9.0);
var i, k: integer;
begin
k:=0;
for i:=1 to 9 do
if A[i] 8.0 then k:= k+1;
if k0 then writeln (‘Есть’)
else writeln (‘Таких учеников нет’);
end.
-
Домашнее задание
Открываем дневники и записываем. Прочитать 9 параграф
-
Подведение итогов урока .
Молодцы, сегодня все хорошо поработали на уроке, у кого-нибудь есть ко мне вопросы по материалу?
Урок окончен. До свидания!