Тип занятия- комбинированное занятие
Тема занятия- «Удаление заданного элемента массива.
Включение элемента в заданную позицию»
Цели занятия
1.
обучающая
-
систематизировать
знания учащихся;
-
осуществить
контроль за качеством усвоения полученных знаний;
-
изучение
приемов включения заданного элемента в массив и удаления заданного элемента из
массива;
-
закрепление
изученного материала по разделу «Одномерные массивы».
2.
развивающая
-
развитие
мышления - учить анализировать, выделять главное, сравнивать, строить аналогии,
обобщать и систематизировать;
-
развитие
познавательного интереса;
-
развитие
творческих способностей для создания новых програмных продуктов.
3.
воспитательная
- воспитывать
активность;
-
формирование
чувства ответственности
-
формирование
позитивных установок для решения проблем
Методическое оснащение
-
карточки
(см. приложение А,Б,Г).
-
демонстрационные
плакаты (см приложение В);-
ХОД ЗАНЯТИЯ
1. Организационный момент – 2-3 мин. Группа делится на
3 команды (по рядам). Пока преподаватель отмечет отсутствующих, командам
предоставляется возможность дать названия своим командам.
2. Актуализация опорных знаний.
2.1 Тест по ранее
изученной теме (см. приложение А) (15 мин). За каждую оценку «5» команда
зарабатывает один балл.
2.2 Фронтальный
опрос: (12 мин)
В это время 9
студентов (по 3 с каждой команды) работают по индивидуальному заданию (см.
приложение Б). Один человек у доски оформляет домашнее задание.
За каждый правильный ответ команде присуждается один балл. Команда раньше
всех справившаяся со всеми 3 индивидуальными заданиями зарабатывает
дополнительно один балл.
-Что такое массив?
(структура данных,
которую можно рассматривать как набор переменных одинакового типа, имеющих
общее имя)
- Как определить местоположение элемента в массиве?
(по индексу)
-Что такое индекс? Каким критериям он должен
удовлетворять?
(номер
элемента)
- Каким образом задается описание массива, что в нем
указывается?
(Имя:
array [нижний_индекс. .верхний_индекс] of тип)
- каким образом в Паскале задается обращение к
элементу массива?
(надо
указать имя массива и номер элемента (индекс), заключив индекс в квадратные
скобки)
-Что называется сортировкой массива? Какие методы
сортировки вы знаете?
(Под
сортировкой массива подразумевается процесс перестановки элементов массива,
целью которого является размещение элементов массива в определенном порядке)
- Какие методы поиска заданного элемента массива вам
известны?
(простого перебора и бинарный поиск)
- В каких случаях целесообразнее использовать
алгоритм простого перебора и бинарного поиска?
(простой перебор в неупорядоченном массиве, бинарный-
в упорядоченном)
- Программа, вычисляющая произведение элементов
массива, содержит ошибки. Какие?
Program massiv;
const N=5;
Var a: array [1..N] of real;
I,N:real;
P: integer;
BEGIN
Write(‘Введите элементы массива через пробел и
нажмите <Enter>’);
For
I:=1 to N do Read(a[I]);
For
I:=1 to N do P:=P*a[I];
Writeln(‘Р= ’,
P);
END.
(-переменная I- целого типа;
-N- является константой, поэтому ее описывать в
разделе описания переменных Var не надо;
-переменная P вещественного типа, так как элементы массива
вещественного типа;
-
необходимо задать
начальное значение переменной P, иначе программа выдаст значение Р=0 )
2.3 Игра «Отгадайте пословицу» (3 мин)
На доске представлена
блок-схема. Необходимо по ней отгадать пословицу, которая в ней зашифрована.
1. 2.
3.
1. Семь раз отмерь, один раз отрежь.
2. Куй железо пока горячо.
3. Пока гром не грянет, мужик не перекрестится
3. Изучение материала (30 мин)
3.1 Удаление k-ого элемента(12 мин)
При удалении k-ого элемента массива нужно сдвинуть
подмассив ak+1, …, an на одну позицию влево. Имеем
присваивания a[I]:=a[I+1]для всех I=k,n. Размер массива уменьшается
на 1.
n:=n-1;
For I:=k to n do c[I]:=c[I+1]
Пример. Дан массив целых чисел А(10),
в котором все элементы различны. Удалить максимальный элемент.
Program MassivDel;
const N=10;
Var a: array [1..N] of integer;
I, max: integer;
BEGIN
Write(‘Введите элементы массива через пробел и нажмите <Enter>’);
For
I:=1 to N do Read(a[I]);
max:=1;
For
I:=2 to N do if a[I]>a[max] then max:=I;
for
I:=max to n-1 do a[I]:=a[I+1];
writeln(‘Массив после удаления
максимального элемента’);
for
I:=1 to N-1 do write(a[I]:5);
END.
Включение
в k-ую позицию элемента Х (18 мин)
Перед включением
элемента х в k-ую позицию необходимо
раздвинуть массив, т.е. переместить подмассив ak,…, an вправо на одну позицию. Имеем присваивание a[I+1]:=a[I] для всех I=1,k. Перемещения элементов массива нужно выполнять с конца,
иначе весь указанный подмассив будет заполнен только одним элементов a[k]. Размер массива увеличивается на 1.
For I:=n downto k do c[I+1]:=c[I];
c[k]:=X;
n:=n+1;
Пример. Дан массив целых чисел А(10).
Вставить заданное число после первого отрицательного элемента .
Program MassivDel;
const N=10;
Var a: array [1..N] of integer;
I, k,x: integer;
BEGIN
Write(‘Введите элементы массива через пробел и
нажмите <Enter>’);
For
I:=1 to N do Read(a[I]);
Write(‘Введите целое число’);
readln(x);
k:=0;
For
I:=1 to N do if a[I]<0 then k:=I;
if
k<>0 then begin
for
I:=n downto k+1 do a[I]:=a[I+1];
writeln(‘Массив после добавления
заданного элемента’);
for
I:=1 to N+1 do write(a[I]:5);
end else writeln(‘отрицательных элементов в массиве
нет’);
END.
3.3 Обобщение
изученного раздела (10 мин)
В результате изучения раздела
«Одномерные массивы» были изучены следующие типичные операции над элементами
массива:
-
ввод
элементов массива;
-
вывод
элементов массива;
-
поиск
максимального (минимального) элемента массива;
-
поиск
заданного элемента массива;
-
сортировка
элементов массива;
-
удаление
заданного элемента из массива;
-
вставка
заданного элемента в заданную позицию.
4. Подведение итогов (15 мин)
4.1 Самостоятельная работа (См.
приложение В)
4.2 . Подсчет
заработанных баллов команд. Выставление оценок. Краткая беседа по пройденному
материалу
5. Задание на дом - работа с опорным
конспектом, [Л4,
67-77]
6. Используемая литература
1. Гуденко Д, Петроченко Д.,
Сборник задач по программированию, СПб.: Питер, 2003
2. Культин Н., Программирование в Turbo Pascal и Delphi, СПб.: БХВ-Петербург, 2001.
3. Попов В.Б., Turbo Pascal для школьников, М.: Финансы и статистика, 2004
4. О. Зеленяк, Практикум программирования на Turbo Pascal,
К.: ДиаСофт, 2001
5. Самостоятельные работы, тесты и
диктанты по информатике, Серия «Информатика в школе», М.: Информатика и
образование, 2000
Приложение А
ТЕСТ
Вариант 1
1.
Оператор цикла, тело
которого выполняется как минимум один раз независимо от значения параметра
цикла, - это оператор цикла:
А. While…do Б.
Repeat… until В. For…to..do
2.
Верно ли высказывание:
«Любую программу, написанную с использованием оператора цикла с параметром,
можно преобразовать в программу, написанную с использованием операторов цикла с
условием (с предусловием и с постусловием)».
А. Да Б. Нет
3.
Какому оператору цикла соответствует следующая блок-схема:
А. While…do Б.
Repeat… until В. For…to..do
4.
Какие операторы
используется в том случае, если некоторую последовательность действий
(инструкций программы) надо выполнить несколько раз, причем необходимое число
повторений во время разработки программы неизвестно и может быть определено
только во время работы программы
А. While…do, Repeat… until
Б. Repeat… until, For…to..do
В. For…to..do, While…do
5.
Дан фрагмент программы:
Const N=5;
Var c: array [1..N] of integer=(0,-2,5,-8,4);
…
begin
x:=0;
for I:=1 to n do if c[I]>0 then x:=x+1;
Какое значение примет переменная Х?
А. 3 Б.
2 В. –1 Г. 5
Продолжение приложения А
6.
Какие значения получат
элементы массива в результате работы генератора случайных чисел?
For I:=1 to N do c[I]:=random(5)+2;
А. целые значения на интервале [0;4]
Б. вещественные значения на интервале [[0;4]
В. вещественные значения на интервале [2;6]
Г. целые значения на интервале [2;6]
7.
Какое значение получит
переменная m в результате выполнения следующего фрагмента
программы
m:=c[1];
For I:=2 to n do
If c[I]< m then m:=c[I];
А. значение индекса первого максимального элемента;
Б. значение индекса последнего минимального элемента;
В. значение минимального элемента;
Г. значение максимального элемента.
8.
Какое значение получит
переменная m в результате выполнения следующего фрагмента
программы
m:=1;
For I:=2 to n do
If c[I]>= c[m] then m:=I;
А. значение индекса первого минимального элемента;
Б. значение индекса последнего максимального элемента;
В. значение минимального элемента;
Г. значение максимального элемента.
9.
Как правило, поиск
заданного элемента в упорядоченном массиве осуществляется с использованием:
А. алгоритма бинарного поиска Б. алгоритма
простого перебора
10.
Какой способ сортировки использован
в фрагменте программы:
For I:=1 to n-1 do
Begin
min:=I;
For j:=I+1 to n do
If c[j]<c[min] then min:=j;
buf:=c[I];
c[I]:=c[min];
c[min]:=buf;
end;
А. Метод прямого выбора Б. метод «пузырька»
Продолжение приложения А
ТЕСТ
Вариант 2
1.
Оператор цикла, значение
параметра которого изменяется только с единичным шагом, - это оператор цикла:
А. While…do Б.
Repeat… until В. For…to..do
2.
Верно ли высказывание:
«Любую программу, написанную с использованием операторов цикла с условием (с
предусловием и с постусловием), можно преобразовать в программу, написанную с
использованием оператора цикла с параметром».
А. Да Б. Нет
3.
Какому оператору цикла соответствует следующая блок-схема:
А. While…do
Б. Repeat… until
В. For…to..do
4.
Какой оператор
используется, в
том случае, если некоторую последовательность действий (инструкций программы)
надо выполнить несколько раз, причем необходимое число повторений заранее
известно
А. While…do
Б. Repeat… until
В. For…to..do
5.
Дан фрагмент программы:
Const N=5;
Var c: array [1..N] of integer=(0,-2,5,-8,4);
…
begin
x:=0;
for I:=1 to n do if c[I]>=0 then x:=x+1;
Какое значение примет переменная Х?
А. 3 Б.
2 В. –1 Г.5
Продолжение приложения А
6.
Какие значения получат
элементы массива в результате работы генератора случайных чисел?
For I:=1 to N do c[I]:=4*random+2;
А. целые значения на интервале [0;4]
Б. вещественные значения на интервале [[0;4]
В. вещественные значения на интервале [2;6]
Г. целые значения на интервале [2;6]
7.
Какое значение получит
переменная m в результате выполнения следующего фрагмента
программы
m:=c[1];
For I:=2 to n do
If c[I]> m then m:=c[I];
А. значение индекса первого максимального элемента;
Б. значение индекса последнего минимального элемента;
В. значение минимального элемента;
Г. значение максимального элемента.
8.
Какое значение получит
переменная m в результате выполнения следующего фрагмента
программы
m:=1;
For I:=2 to n do
If c[I]< c[m] then m:=I;
А. значение индекса первого минимального элемента;
Б. значение индекса последнего максимального элемента;
В. значение минимального элемента;
Г. значение максимального элемента.
9.
Как правило, поиск
заданного элемента в неупорядоченном массиве осуществляется с использованием:
А. алгоритма бинарного поиска Б. алгоритма простого
перебора
10.
Какой способ сортировки
использован в фрагменте программы:
For I:=1 to n-1 do
Begin
For j:=1 to n-1 do
If c[j]>c[j+1] then
begin
buf:=c[j];
c[j]:=c[j+1];
c[j+1]:=buf;
end;
end;
А. Метод прямого выбора Б. метод «пузырька»
Приложение Б
К-1
Какое
значение будет принимать переменная Y после
выполнения фрагмента программы
Var y: real; k: integer;
.
. .
y:=1; For k:=1 to 3 do
y:=y+k; y:=y*10;
К-2
Какое
значение будет принимать переменная Y после
выполнения фрагмента программы
Var y: real; i: integer;
.
. .
y:=0; For
i:=4 to 6 do y:=y+i; y:=y/10;
К-3
Какое
значение будет принимать переменная Y после
выполнения фрагмента программы
Var y: real; x: integer;
.
. .
y:=0; For
x:=6 downto 2 do y:=y+x; y:=y*2;
К-4
Определить
значение переменной k после выполнения фрагмента программы:
Var k: real;
i: integer;
. . .
k:=2; i:=2;
repeat
i:=2*i; k:= k+i until i>5;
К-5
Определить
значение переменной s после выполнения фрагмента программы:
Var
s: real; i: integer;
. . .
s:=0; i:=5;
while
i>2 do i:=i-1; s:=s+i*i;
К-6
Определить значение переменной m после
выполнения фрагмента программы:
Var m: real; i: integer;
. . .
m:=1; i:=2;
repeat i:=2*i; m:= m+i until i>5;
Продолжение
приложения Б
К-7
Написать программу по заданной блок-схеме
начало
ввод
K,P
Да Нет
вывод
рез-т
не опреде-
лен
вывод вывод
K
больше K
меньше
P
P
конец
К-8
Написать программу по заданной блок-схеме
начало
конец
К-9
Написать программу по заданной
блок-схеме
начало
конец
Приложение В
Вариант 1.
1.
В массиве хранятся
сведения о количестве осадков, выпавших за каждый день сентября. Определить
общее количество осадков выпавших за сентябрь.
2.
Массив вещественных чисел
А, предназначен для хранения информации о стоимости 20 видов товара. Удалить из
массива информацию о самом дешевом товаре.
Вариант 2.
1.
В массиве хранятся сведения
об оценках 25 учеников по химии. Определить количество неуспевающих по химии
учеников.
2.
Заполнить массив из
десяти элементов случайным образом целыми значениями, лежащими в диапазоне
[-5;5]. Вставить число 10 после минимального элемента.
Вариант 3.
1.
В массиве хранятся
сведения об оценках 25 учеников по химии. Определить средний балл по химии
учеников.
2.
Заполнить массив из
пятнадцати элементов случайным образом вещественными значениями, лежащими в
диапазоне [-15;7]. Удалить из массива минимальный элемент.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.