- Дайте определение массива.
- Что такое размерность массива?
- Что такое индекс элемента массива?
- Как в разделе var описывается массив? (А: array[1. .n] of integer;)
Учитель. Один из учащихся приготовил для нас все переводы слова array. Он поможет нам разобраться с вопросом о том, почему именно слово arrayприменяется для описания массива в разделе var. (Демонстрируется слайд с переводами слова array.)
Какие задачи на одномерные массивы мы умеем решать? (Суммирование элементов массива; нахождение произведения элементов; нахождение количества элементов; нахождение минимального (максимального) элемента и его индекса; обмен местами элементов массива.)
Ребята называют задачи, затем на доске четверо учащихся записывают предложенные учителем фрагменты программ.
Суммирование положительных элементов массива:
s:=0;
for i:=1 to n do
if a[i]>0 then s:=s+a[i];
Поиск количест ва четных элементов массива:
k:=0;
for i:=l to n do
if a[i] mod 2=0 then k:=k+l;
Поиск минимального элемента массива и его номера:
min:=a[l] ;
for i:=l to n do
if a[i]<=min then
begin
min:=a[i];
t:=i;
end;
Обмен местами двух элементов массива с номерами k1 и k2 с помощью третьей переменной t:
t:=a[kl];
a[kl]:=a[k2];
a[k2]:=t.
На экран проецируются задания на работу с элементами массива.
Задание 1 (ЕГЭ А6).
Дан фрагмент программы, обрабатывающий массив А из п элементов (известно, что в массиве имеются положительные элементы):
S:=0;
k:=0;
for i:=l to n do
if A[i]>0 then
begin
S:=S+A[i];
k:=k+l;
end;
S:=S/k.
Чему будет равно значение переменной Sпосле выполнения данного алгоритма?
A) Среднему значению всех элементов массива А
Б) Среднему значению положительных элементов массива А
B) Количеству положительных элементов массива А
Г) Значению последнего положительного элемента
Номер ответа: Б.
Задание 2 (ЕГЭ А6).
В программе описан одномерный массив с целочисленными элементами с индексами от 0 до 10. Представлен фрагмент программы, в котором значения элементов сначала задаются, а затем меняются:
for i:=0 to 10 do
A[i]:=i+l;
for i:=l to 10 do
A[i]:=A[i-l];
Как меняются элементы этого массива?
А) Все элементы, кроме последнего, сдвигаются на элемент вправо
Б) Все элементы, кроме первого, сдвигаются на один элемент влево
В) Все элементы окажутся равными 1
Г) Все элементы окажутся равными своему индексу
Номер ответа: В.
3. Работа в группах
Каждой группе выдается карточка и предлагается выполнить задание для следующих данных:
Ученики
- отвечают на поставленные в задании вопросы;
- пишут программу для решения поставленной задачи и заносят ее в модуль (см. приложение).
Задание для группы 1.
Удаление элементов из массива.
Задан одномерный массив размера 10. Необходимо удалить его третий элемент.
- Сколько элементов в массиве? (10.)
- Сколько элементов станет в массиве после удаления третьего элемента? (9.)
- Что должно произойти с элементами с первого по второй? (Они не должны измениться.)
- Какой элемент должен быть помещен на третье место? (На третье место должен быть помещен четвертый элемент исходного массива.)
- На четвертое? На пятое? (На четвертое место — пятый. На пятое — шестой.)
- Какую закономерность вы можете указать? (На текущее место в массиве должен быть помещен элемент, следующий за текущим, из исходного массива.)
- Элементы с какими индексами останутся неизменными, а с какими — будут изменены? (Неизменными останутся элементы, с индексами 1 и 2, а остальные элементы должны измениться.)
- Начиная с какого индекса элементы должны перемещаться? (Начиная с четвертого.)
- Необходимо перемещать элементы вправо или влево? (Перемещаться элементы должны влево.)
10) Какой элемент должен быть перемещен на место элемента A[i]? (A[i] :=A[i+1].)
for i:=3 to 9 do
A[i]:=A[i+l].
Задание для группы 2. Вставка элементов в массив.
Задан одномерный массив размера 10. Необходимо вставить число 5 после третьего элемента.
- Сколько элементов в массиве? (10.)
- Сколько элементов станет в массиве в результате вставки числа 5 после третьего элемента? (11.)
- Какой индекс будет у вставленного элемента? (4.)
- Что должно произойти с элементами с первого по третий? (Эти элементы не должны измениться.)
- Какой элемент должен быть помещен на пятое место? (На пятое место должен переместиться четвертый элемент.)
- На шестое? На седьмое? (На шестое — пятый. На седьмое — шестой.)
- Какую закономерность вы можете указать? (Элементы сдвигаются вправо.)
- Элементы с какими индексами останутся неизменными, а с какими будут изменены? (Неизменными останутся элементы с индексами 1—3, на четвертое место помещается число 5, а изменяются все остальные.)
- Начиная с какого индекса элементы должны перемещаться? (Перемещаться должны элементы с четвертого.)
- Необходимо перемещать элементы вправо или влево? (Вправо.)
- Если на четвертое место поместить пятерку, что произойдет с тем элементом, который находился до этого на четвертом месте? (Его значение потеряется.)
- Перемещение лучше начать с четвертого или с последнего элемента? (С последнего.)
- Какой элемент должен быть перемещен на место элемента A[i]? (A[i] :=A[i — 1].)
for i:=11 downto 5 do
A[i]:=A[i-l];
A[4]:=5.
Задание для группы 3. Перемещение элементов в массиве.
Задан одномерный массив размера 10. Осуществить перемещение элементов массива следующим образом: последний элемент записать на место первого, при этом сдвинув первый, второй, ..., предпоследний элементы на одну позицию вправо.
- Сколько элементов в массиве? (10.)
- Изменится ли количество элементов в массиве после перемещения? (Нет.)
- Какой элемент должен оказаться на месте первого? На месте второго? На месте третьего? (Десятый. Первый. Второй.)
- Можно ли последний элемент сразу поместить на место первого? Что станет в этом случае с первым элементом? (Нет. Его значение будет потеряно.)
- Можно ли сначала переместить поочередно все элементы вправо, начиная с первого, а затем последний элемент поместить на место первого? Что станет в этом случае с последним элементом? (Нет. Его значение будет утеряно.)
- Можно ли этого избежать, заведя дополнительную переменную? (Да. В дополнительную переменную можно поместить значение последнего элемента. Затем переместить элементы с девятого до первого вправо. Далее на первое место поместить значение десятого элемента из дополнительной переменной.)
t:=A[10];
for i:=10 downto 2 do
A[i]:=A[i-l];
A[l]:=t.
4. Эстетическая пауза.
Демонстрируется слайд-шоу с видами озер под звуки воды.
5. Закрепление изученного материала
Задача 1.
В одномерном массиве удалить максимальный элемент.
Решение.
program zadachal;
const n=10;
var
A: array[l..n] of integer;
max, i, k: integer;
begin
randomize;
for i:=l to n do
A[i]:= -20+random(60);
for i:=l to n do
write(A[i]:4);
writeln;
max:=A[1];
for i:=l to n do
if A[i]>=max then
begin
max:=A[i] ;
k:=i;
end;
for i:=k to 9 do
A[i]:=A[i+l];
for i:=l to n-1 do
write(A[i]:4);
writeln;
end.
Задача 2.
В одномерном массиве вставить после минимального элемента число 10.
Решение.
program zadacha2;
const n=10;
var
A: array[l..n+1] of integer;
min, i, k: integer;
begin
randomize;
for i:=l to n do
A[i]:=-20+random(60);
for i:=l to n do
write(A[i]:4);
writeln;
min:=A[l];
for i:=l to n do
if A[i]<=min then
begin
min:=A[i];
k:=i;
end;
for i:=n+l downto k+2 do
A[i]:=A[i-l];
A[k+1]:=10;
for i:=l to n+1 do
write(A[i]:4);
writeln;
end.
Задача 3.
Дан одномерный массив из четного количества элементов. Поменять местами первый элемент со вторым, третий с четвертым и т. д.
Решение.
program zadacha3;
conet n=10;
var
A: array[1..П] of integer;
t, i: integer;
begin
randomize;
for i:=l to n do
A[i]:=-20+random(60);
for i:=l to n do
write(A[i]:4);
writeln;
for i:=l to n do
begin
t:=A[i];
A[i]:=A[i+l];
A[i+1]:=t;
i:=i+l;
end;
for i:=l to n do
write(A[i]:4);
writeln;
end.
6. Физкультминутка
7. Дополнительные задания
Задача 4.
В одномерном массиве вставить число 100 перед первым отрицательным элементом.
Решение.
program zadacha4;
const n=10;
var
A: array[1..n+1] of integer;
i, k: integer;
begin
randomize;
for i:=l to n do
A[i]:=-20+random(60);
for i:=l to n do
if A[i]<0 then
begin
k:=i;
i:=n;
end;
for i:=n+l downto k+1 do
A[i]:=A[i-l];
A[k]:=100;
for i:=l to n+1 do
write(A[i]:4);
writeln;
end.
Задача 5.
Удалить из массива все элементы, стоящие перед максимальным элементом.
Решение.
program zadacha5;
const n=10;
var
A: array[l..n] of integer;
max, i, k: integer;
begin
randomize;
for i:=l to n do
A[i]:=-20+random(60);
max:=A[1];
for i:=l to n do
if A[i]>=max then
begin
max:=A[i];
k:=i;
end;
for i:=l to n-k+1 do
A[i]:=A[i+k-l];
for i:=l to n-k+1 do
write(A[i]:4);
writeln;
end.
8. Домашнее задание
Задание. Изменить порядок элементов на противоположный между максимальным и минимальным элементами в одномерном массиве.
9. Подведение итогов урока
Учитель. Какие базовые задачи мы с вами сегодня решали? (Удаление, вставка и перемещение элементов одномерного массива.) Эти задачи помогут нам на следующих занятиях рассмотреть алгоритм сортировки массива.
10. Рефлексия
Учитель. В модуле в последнем столбце напротив каждого задания поставьте знаки:
« + » — все усвоено;
«−» — не усвоено;
«?» — есть вопросы (напишите, какие именно).
__________________________________________________________________________________________________________________
Приложение
Модуль для урока
Тема урока: Работа с элементами одномерного массива: вставка, удаление, перемещение.
ФИО, класс____________________________________________________
п/п |
Задача |
Программа |
+ − ? |
1 |
Базовые задачи на удаление, вставку и перемещение элементов одномерного массива |
|
Удаление элементов из массива. Задан одномерный массив размера 10. Необходимо удалить его третий элемент |
|
|
|
Вставка элементов в массив. Задан одномерный массив размера 10. Необходимо вставить число 5 после третьего элемента |
|
|
|
Перемещение элементов массива. Задан одномерный массив размера 10. Осуществить перемещение элементов массива следующим образом: последний элемент записать на место первого, при этом сдвинув первый, второй, ..., предпоследний элементы на одну позицию вправо |
|
|
2 |
Решение задач |
|
Задача 1. В одномерном массиве удалить максимальный элемент |
|
|
|
Задача 2. В одномерном массиве вставить после минимального элемента число 10 |
|
|
|
Задача 3. Дан одномерный массив из четного количества элементов. Поменять местами первый элемент со вторым, третий с четвертым и т. д. |
|
|
3 |
Дополнительные задачи |
|
Задача 4. В одномерном массиве вставить число 100 перед первым отрицательным элементом |
|
|
|
Задача 5. Удалить из массива все элементы, стоящие перед максимальным элементом |
|
|
4 |
Домашнее задание
Задание. Изменить порядок элементов на противоположный между максимальным и минимальным элементами в одномерном массиве |
вернуться на страницу Фестиваль педагогических идей в Эвенкии
на страницу Год учителя