Тема урока: «Обработка массивов»
Цели урока:
Образовательная – освоение умений составления программ, используя массивы
Развивающая – развитие алгоритмического мышления, памяти, внимательности
Воспитательная – развитие познавательного интереса, логического мышления
Тип урока: изучение нового материала
Форма урока: синтетическая.
Место урока в учебной теме: первичный
Методы и методические приемы:
1 Информационно - рецептивный:
а) словесный: рассказ - объяснение, описание, беседа,
б) наглядный: иллюстрации, демонстрация, ТСО.
Приемы обучения: изложение информации, объяснение, активизация внимания и мышления, получение из текста и иллюстраций новых знаний, работа с раздаточным материалом.
2. Репродуктивный.
Приемы обучения: подача материала в готовом виде, конкретизация и закрепление уже приобретенных знаний.
3. Визуальный: составление логических цепочек.
4. Суггестивный: применение различных видов искусства.
5. Перцептивный (восприятие и связь с жизнью):
6. Релаксопедический: психологическая разгрузка.
Межпредметные связи: математика, экономика
Материалы и оборудование: флипчарт, проектор, ноутбук, задачи
Основные понятия и термины: массивы
Ход урока
Организационный момент
Актуализация опорных знаний
Что такое массив?
Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних ячейках) и имеющих общее имя. Каждая ячейка в массиве имеет уникальный номер.
Зачем нужны массивы?
Для хранения и обработки большого количества данных.
Для работы с массивами, что нужно сделать?
Массив необходимо объявить.
Для чего нужно объявить массив?
Определить тип входящих в него элементов, выделить место в памяти и присвоить имя.
Задание. Запишите объявления массивов по их характеристикам:
массив А из 5 вещественных чисел, последний элемент под номером 6
(var a:array[2..6] of real;)
массив k из 12 целых чисел, номер последнего элемента 10
(var k:array[-1..10] of integer;)
массив b из 9 целых чисел, первый элемент имеет номер 0
(var b:array[0..8] of integer;)
Какое следующее действие после объявления массива в программе?
Заполнить массив.
Задание. Запишите фрагмент кода, в котором массив А, объявленный как А: array[2..16] of integer;
заполняется по предложенному правилу:
элементы массива - случайные числа из промежутка от 0 до 12
(a[i]:=random(13);)
каждый элемент массива в 4 раза больше своего индекса
(a[i]:=4*a[i];)
Заполнили массив. Что дальше делаем?
Вывод массива на экран.
(Проверить работу на доске).
Что выполняют фрагменты программ:
For i:=1 to 10 do readln(A[i]); (заполняет массив 10 вещественными числами)
For i:=1 to 10 do A[i]:=random(1000) - 500; (заполняет массив случайными числам)
For i:=1 to 10 do writeln(A[i]); (выводит значения элементов массива в столбец)
For i:=1 to 10 do A[i]:=0; (заполняет массив 0)
Задание. На доске записана программа, но команды перепутаны. Необходимо восстановить правильный порядок, и выяснить для решения какой задачи, составлена программа.
Программа нахождения суммы массива, состоящего из 10 целых псевдослучайных числа.
Изложение нового материала
Задача. Магазин обслужил за день 200 покупателей, каждый из которых потратил на покупки не более 1000 рублей. Посчитать дневную прибыль магазина и сумму среднего потребительского чека.
Сколько переменных нужно? (200)
Заполним массив случайными числами, используя диапазон от 1 до? (1000)
Какие алгоритмы будем использовать при решении задачи? (Нахождения суммы и среднего арифметического)
Сколько покупателей, у которых сумма чека больше среднего?
Чек каждого покупателя необходимо сравнить с суммой среднего чека. Для этого необходимо использовать цикл. (записать на доске: if a[i]sr then k:=k+1;)
За компьютерами составляем программу.
program qq;
const n=200;
var a: array[1..n] of integer;
k,s,i:integer;
begin
s:=0;
k:=0;
for i:=1 to n do
begin
a[i]:=random(1001)+1;
s:=s+a[i];
end;
for i:=1 to n do
if a[i]s/200
then k:=k+1;
writeln('Дневная прибыль магазина ',s);
writeln('Сумма среднего потребительского чека ',s/200);
writeln('У ',k,' покупателей сумма чека больше среднего');
end.
Внести изменения в программу: Есть ли покупатель, у которого сумма чека 555 рублей.
k:= 0;
for i:=1 to N do
if A[i] = 550 then k:= k+1;
if k 0 then write('Есть') else write('Не нашли!');
Есть необходимость просматривать весь массив? Нет, если нашли первого покупателя можно выйти из цикла? Как? break
k:= 0;
for i:=1 to N do
if A[i] = 555 then begin
k:= i;
break
end;
if k0 then write('Нашли') else write('Не нашли!');
Задача. Найти максимальную сумму потребительского чека.
M:= A[1];
for i:= 2 to N do
if A[i] M then
M:= A[i];
write(M);
Как найти номер покупателя?
M:= A[1]; nMax:= 1;
for i:= 2 to N do
if A[i] M then begin
M:= A[i];
nMax:= i;
end;
write('A[',nMax,']=',M);
По номеру элемента можно найти значение!
nMax:= 1;
for i:= 2 to N do
if A[i] A[nMax] then nMax:= i;
write('A[',nMax,']=', A[nMax] );
V. Подведение итогов урока. постановка задания на дом.
Задача 1. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить скорости двух самых быстрых автомобилей.
program qq;
const n=10;
var a: array[1..n] of integer;
k,s,i:integer;
begin
for i:=1 to n do
begin
a[i]:=random(101)+1;
writeln(a[i]);
end; s:=a[1];k:=a[1];
for i:=2 to n do begin
if a[i]k then k:=a[i];
if (a[i]s) and (a[i]
end;
writeln('k=',k);
writeln('s',s);
end.
Задача 2. У вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли – продажи в банках города. В городе n банков. Составьте программу, определяющую какой банк выбрать, чтобы выгодно обменять доллары на рубли.
Итог урока
Что нового вы сегодня на уроке узнали?
Что такое массив?
Что такое индекс?
Домашнее задание
§ 19 стр.115 – 119
Задан массив А[1..5]. Найти max и min значение массива.
Задан массив А[1..5]. Найти сумму случайных 3 чисел.
Задан массив А[1..20]. Найти среднее арифметическое всех значений.