Раздел
|
| ФИО педагога
|
| Дата
|
| Класс
| Количество присутствующих:
| отсутствующих:
| Тема урока
| Одномерный массив
| Цели обучения, которые достигаются на данном уроке (ссылка на учебную программу)
| 9.3.3.1 создавать программы на языке программирования Python (пайтон) с использованием одномерных массивов
| Цель урока
| познакомить учащихся с понятиями массив данных, имя массива, элемент массива, индекс; показать естественность использования циклов при обработке массивов;
продемонстрировать преимущество использования массивов при решении некоторых типов задач;
показать правила описания массивов в среде Turbo Pascal и продемонстрировать простейшие алгоритмы обработки массивов (суммирования элементом массива, поиск наибольшего элемента массива, поиск заданного элемента и т.д.);
| Критерии успеха
| Познакомиться с понятием «массивы»,»одномерные массивы», изучить свойства массива. Научиться формировать массивы в программах; применять их при составлении программ
| Ход урока
| Этапы урока
| Деятельность учителя
| Деятельность обучающихся
| Оцениван
ие
| Ресурсы
| Организационный этап
|
Создание коллаборативной среды, актуализация опорных понятий (работа с классом): учитель предлагает учащимся посмотреть мультфильм «Азбука безопасности в Интернет», организуя обсуждение рисков общения в сети, предлагая определить ключевые термины урока и сформулировать тему и цель урока. Таким образом, учитель совместно с учащимися определяет тему и цели урока.
Учащиеся в течение 1 минуты размышляют, предлагая ключевые термины урока, тему, записывают тему урока, обсуждая дескрипторы и цель обучения.
| Показывают решения задач, при возникновении вопросов разбирают с учителем
| Интеракти вное обучение
| Диалогическое обучение Саморегулируе мое обучение Критическое мышление
| Изучение нового материала
| МАССИВ– это упорядоченная совокупность однотипных данных, обозначаемых общим именем и различаемых с помощью индексов. Задание на закрепление определения массива.
Заданы последовательности. Определите, какая из этих последовательностей является массивом?
{1, 2, a, -5, n, 9, y} {a, p, c,d, f,k,i} {4,
7, 9, 11, 13, 20}
Рассмотрим примеры реальных объектов, которые можно представить в виде массива. Объясните, почему? Назовите в каждом случае, что будет являться элементом массива, а что
– индексом (используются слайды из презентации)
| Анализируют правило 1-3 Ознакамливаются с методами решения Разбирают совместно с учителем понятие
| Словесная оценка учителя
.
Взаимооце нивание Стратегия
«Стикер
| Критическое мышление. Саморегулируе мое обучение (самонаправлен ность в процессе работы над заданиями).
|
|
Ответ: книга состоит из множества однотипных элементов – страниц, у каждой страницы есть номер (индекс), все страницы объединены под одним названием (название книги)
Можно ли дом считать массивом? Почему?
Ответ: дому соответствует один почтовый адрес (город, улица, номер). Элементами дома можно считать квартиры, у
каждой из которых есть номер (индекс).
|
|
|
|
| Можно ли шахматную доску считать массивом?
Почему?
Ответ: Доска состоит из клеток, каждая клетка обозначается буквой и цифрой (двойной индекс).
Можно ли футбольную команду считать «массивом». Почему? Ответ: команда состоит из нескольких людей, у каждого из них есть номер (индекс).
|
|
|
|
| Одной из важных характеристик массива является размерность. Под размерностью понимают минимальное количество независимых параметров (индексов), которые однозначно определяют положение любого элемента в нём.
Массивы бывают одномерные, двумерные и многомерные. Познакомимся с одномерными массивами.
Одномерный массив - это упорядоченная совокупность однотипных элементов (данных), обозначаемых одним именем, и каждый элемент которой имеет индекс. А — имя массива
Индексы
|
|
|
|
| i
| 1
| 2
| 3
| 4
| 5
|
Значения
| A
| 3
| 7
| 9
| 1
| 2
|
1, 2 …5 — номер элемента
А[3]=9
Значение Имя массива Индекс Для обозначения типа данных – массив в Паскале есть специальное служебное слово array.
Описаниеодномерного массива может быть выполнено двумя способами:
в разделе var:
var <имя> : array [n1 .. n2] of <тип>;
описание через введение типа данных пользователя: type <наименование типа> = array [n1 .. n2] of
|
| <тип компонента>;
var <имя массива> : <наименование типа>; Примеры описания массивов:
type mass = array[1 .. 10] of real; var f : mass;
var a : array[1 .. 10] of integer;
const n = 15;
var massiv : array[1 .. n] of integer; Для того чтобы обратиться к элементу этого массива, необходимо указать имя массива и в квадратных скобках – номер элемента. Например, первый элемент массива А – A[1], а пятый – A[5]. Задание на отработку умения обращения к элементам массива:
Количество жильцов в 7 квартире равно 3 a[7] := 3 Температура в первый день месяца была -25°С m[1] := -25 В футбольной команде под номером 6 играет футболист по фамилии Иванов
zenith[6] := 'Иванов'
На 25 странице в книге начинается глава 1 kniga[25] := 'глава1'
|
|
|
|
| Рассмотрим основные алгоритмы при работе с массивами (все алгоритмы проецируются на экран с помощью мультимедийного проектора и подробно объясняются учителем, как они работают)
Заполнениеэлементоммассива
Для ввода данных в память необходимо организовать цикл. Поскольку число повторений ввода данных известно, удобно использовать цикл прямого пересчета.
for i := 1 to n do read(a[i]); writeln; вводимые значения набираются на клавиатуре в одну строку через пробел, после этого нажимается ENTER
ввод с помощью случайного выбора данных for i := 1 to n do a[i] := random(10);
Для этого используется генератор случайных чисел RANDOM(N), который выбирает случайным образом числа от 0 до N – 1.
Если требуется, чтобы значения элементов массива выбирались из определенного интервала [a,b], то m[i]
:= a + Random(b –a+ 1);
|
|
|
|
| с помощью оператора присваивания по заданному выражению
for i := 1 to n do a[i] := sqr(i);
ввод массива в разделе констант:
const n = 10; a : array[1 .. n] of integer = (1, 0, -2, 3, 8,
-10, 9, 8, 17, 0);
Выводэлементовмассива
вывод элементов массива в строку for i := 1 to n do write(a[i], ' '); writeln;
вывод элементов массива в столбец for i := 1 to n do writeln(a[i]);
Суммированиеэлементовмассива
нахождение суммы всех элементов массива s := 0;
for i := 1 to n do s := s + a[i];
нахождение суммы элементов массива по условию s := 0;
for i := 1 to n do
if <условие поиска> then s := s +
a[i];
Заменаэлементовмассива
Суть замены элементов массива состоит в том, что
элементы, удовлетворяющие условию замены,
|
|
|
|
| заменяются на новые в соответствии с правилом замены for i := 1 to n do
if <условие для замены> then a[i]
:= <выражение>;
Определение количества элементов массива,удовлетворяющих условию
k := 0;
for i := 1 to n do
if <условие поиска> then k := k + 1;
Нахождениенаибольшегоэлементамассива
max := a[1];
for i := 2 to n do
if a[i] > max then max := a[i];
Самостоятельная работа в группах
В программе Pascal заготовлены шаблоны для всех задач, которые необходимо заполнить. Выдаются распечатанные шаблоны, которые ученики заполняют при решении задач на компьютере. После урока шаблоны остаются у них. Учитель должен дать краткие комментарии по каждой задаче, обратить внимание учащихся, что решение задач сводится к типовым задачам – нахождение максимального или минимального элементов массива, нахождению количества элементов массива, обладающих некоторым свойством, и т.д. 1 На крыше дома жило 10 семей ласточек. В первой семье ласточка была одна, во второй – 4, в третьей – 9 и т.д. Подсчитайте общее количество ласточек. Выведите на экран номера семей, где
|
|
|
|
| количество ласточек кратно 4. Откройте файл VAR1_ ZADACHA 1. PAS и в готовом шаблоне допишите недостающие операторы.
program lastochka;
var l:array[1.. ] of ; begin for i:=1 to do begin writeln ('l[',i,']=',l[i]);
end;
writeln ('s=',s);
for i:=1 to 10 do begin if
writeln ('i=',i);
end. Решение:
program lastochka;
var l:array[1..10] of integer; s,i:integer;
begin
s:=0;
for i:=1 to 10 do
begin
l[i]:=i*i;
writeln ('l[',i,']=',l[i]); s:=s+l[i];
end; writeln ('s=',s); for i:=1 to 10 do
|
|
|
|
| begin
if l[i] mod 4=0 then writeln ('i=',i);
end;
readln;
end. 1. Во время субботника учащиеся школы вышли на посадку деревьев. Директором были собраны сведения о количестве деревьев, посаженных каждым классом. Определить наилучший результат и количество классов, добившихся его. Откройте файл VAR1_ ZADACHA 2. PAS и в готовом шаблоне допишите недостающие операторы.
program derevo;
var d:array[1..] of integer; begin
randomize;
for i:=1 to do
begin
d[i]:= ;
writeln ('d[',i,']=',d[i]);
end; for i:= to do
if then writeln ('max=',max); for i:= to do
if then ;
writeln ( );
end. Решение.
|
|
|
|
| program derevo;
var d:array[1..25] of integer; max,i,k:integer;
begin
randomize;
for i:=1 to 25 do
begin
d[i]:=random(25)+5; writeln ('d[',i,']=',d[i]);
end; max:=d[1];
for i:=2 to 25 do
if d[i]>max then max:=d[i]; writeln ('max=',max);
for i:=1 to 25 do
if d[i]=max then k:=k+1; writeln('k=',k);
readln;
end. 2. Сестра братишки-шалунишки в октябре ежедневно аккуратно записывает показания температур в дневник наблюдений. Однажды братишка-шалунишка сделал в записях температур небольшие исправления, дописав к отрицательной температуре, справа ноль, перед неотрицательной добавил знак «минус», а перед нулем дописал 5. Что увидит сестренка после исправлений? Вывести исходные и полученные данные. Откройте файл VAR1_ ZADACHA 3. PAS и в готовом шаблоне допишите недостающие операторы.
program bratishka ;
var t:array[1.. ]of ; i:integer;
begin
randomize;
|
|
|
|
| writeln('sestrichka'); for to do
begin
t[i]:= ;
write(' t[',i,']=',t[i]);
end; writeln; writeln('bratishka'); for to do
begin
if t[i]<0 then else
if t[i]>0 then
else ;
write ;
end; end. Решение
program derevo;
var t:array[1..31]of integer; i:integer;
begin
randomize; writeln('sestrichka'); for i:=1 to 31 do
begin
t[i]:=random(10)-5; write(' t[',i,']=',t[i]);
end; writeln; writeln('bratishka'); for i:=1 to 31 do
begin
|
|
|
|
| if t[i]<0 then t[i]:=t[i]*10
else
if t[i]>0 then t[i]:=t[i]*(-1)
else t[i]:=t[i]+50;
write(' t[',i,']=',t[i]);
end;
readln;
end. 2 В деревенском доме жило 15 мышиных семей. В первой семье мышонок был один, во второй – 3, в третьей – 5, в четвертой – 7, и т.д. Подсчитайте общее количество мышат. Выведите на экран номера семей, где количество мышат кратно 5. Откройте файл VAR2_ Z 1.
PAS и в готовом шаблоне допишите недостающие операторы.
program myska;
var m:array[1.. ] of ; begin for i:=1 to do
begin
m[i]:=;
writeln ( ); s:=
end; writeln ('s=',s); for i:=1 to do
begin
if then end;
|
|
|
|
| end. Решение
program myska;
var m:array[1..15] of integer; s,i:integer;
begin
s:=0;
for i:=1 to 15 do
begin
m[i]:=2*i-1;
writeln ('m[',i,']=',m[i]); s:=s+m[i];
end; writeln ('s=',s);
for i:=1 to 15 do
begin
if m[i] mod 5=0 then writeln ('i=',i);
end;
readln;
end. 1. Во время субботника учащиеся школы собирали макулатуру. Директором были собраны сведения о количестве макулатуры, собранной каждым классом. Определить наилучший результат и количество классов, добившихся его. Откройте файл V2_ Z 2. PAS и в готовом шаблоне допишите недостающие операторы.
program makulatura;
var m:array[1. ]of ; max,i: ;
|
|
|
|
| begin for i:=1 to do
begin
m[i]:= ;
writeln('m[',i,']=',m[i]);
end;
max:=
for i:= to do if
writeln ('max=',max); for i:=1 to 37 do
if then writeln('i=',i);
end. Решение
program makulatura;
var m:array[1..37]of integer; max,i:integer;
begin
randomize;
for i:=1 to 37 do
begin
m[i]:=random(100)*5; writeln('m[',i,']=',m[i]);
end;
max:=m[1];
for i:=2 to 31 do
if m[i]>max then max:=m[i]; writeln ('max=',max);
for i:=1 to 37 do
if m[i]=max then writeln('i=',i);
readln;
|
|
|
|
| end.
|
|
|
| Рефлексия
| Повторить формулы и определения по теме: «Погрешности» В конце урока учащиеся проводят рефлексию:
что узнал, чему научился что осталось непонятным над чем необходимо работать
| Учащиеся подытоживают свои знания по изучаемой теме.
|
|
| 0> |