Урок Действия с массивами

Тема урока: Массивы.
Определение массива. Доступ к элементам массива.
Тип урока: Комбинированный.
Цели и задачи урока:
Образовательные: Закреплять знания и умения, полученные на предыдущих уроках. Усвоить понятие массива, как нового структурированного типа данных. Ознакомиться с терминологией. Раскрыть значение каждого термина. Показать распространённость использования массивов. Овладеть основными приёмами работы с массивами: создание массива, ввод значений с клавиатуры, определение значений с помощью оператора присваивания, вывод элементов массива в заданном виде. Заложить прочную основу к дальнейшему изучению материала.
Воспитательные: Воспитание познавательной активности. Создать доброжелательную, рабочую обстановку, побуждающую к творческой работе. Побудить желание к изучению этой темы на следующих уроках.
Развивающие: Развивать умение применять полученные знания для решения практических задач. Развивать логическое мышление, умение анализировать, сравнивать, делать выводы. Приучать детей к самостоятельной работе, умению планировать свою деятельность в будущем.
Материалы и оборудование: Раздаточный материал – карточки с объяснением материала по теме урока и проверочными заданиями.
Хронометраж:
Организационный момент – 1-2 мин.
Опрос пройденного материала, необходимого для новой темы – 5 мин.
Объяснение нового материала – 20 мин.
Практическая работа за компьютером – 15 мин.
Домашнее задание – 2 мин.
Подведение итогов - -2 мин.
























Ход урока
Содержание
Теоретическое
обоснование

1.Организационный момент.
После приветствия сообщаю тему и цель урока:
Сегодня мы начинаем новую тему «Массивы». Цель нашего урока: получить общее представление о массивах, как нового способа организации данных; научиться использовать массивы в программе: создавать одномерный массив, овладеть различными способами задания значений элементам массива.
2. Повторение пройденного материала.
Учитель: Перед тем как приступить к новому материалу вспомним, что такое величина переменная.
ПОУ (предполагаемый ответ ученика): Это – величина, значение которой может изменяться в процессе выполнения программы. Для обозначения переменных в языке Бейсик используются имена, называемые идентификаторами.
Учитель: Что характеризует величину переменную?
ПОУ: Имя, тип, значение.
Учитель: Какие типы переменных величин мы с вами используем в языке программирования Бейсик?
ПОУ: Числовые целые, числовые вещественные, строковые.
Учитель: Для чего служит имя переменной величины?
ПОУ: Имя переменной служит как бы адресом ячейки, в которой хранится значение переменной.
Учитель: Как может обозначаться переменная величин в языке программирования Бейсик?
ПОУ: Одной латинской буквой или латинской буквой, за которой следует цифра. Имя может заканчиваться суффиксом- указателем на тип переменной. Суффикс % указывает на числовую целую, $ - на строковую величину переменную. Если же после имени нет указанных символов, то это переменная величина вещественного типа.
Учитель: Например.
ПОУ: A, P2 – имена вещественных переменных; В%, С5% - целых; S$, W7$ – строковых.
3. Объяснение нового материала.
Запишите себе в тетради тему: Массивы. Запишите определение: Массив – упорядоченный набор однородных элементов, имеющий одно общее имя.
Сейчас мы с вами выясним, что можно подвести под это определение. Возьмите карточки. Внимание на здание 1.
Учитель: В школьный двор привезли для посадки несколько ёлочек. В каком случае можно будет сказать. Что наши ёлочки образуют массив?
ПОУ: Когда мы их пронумеруем и дадим общее имя.
Учитель: В каком пункте а) или б) задания 1 есть массив, в каком нет и почему? Смотри Приложение 1).
ПОУ: В пункте а) есть массив, т.к. есть всё, что требуется для массива: одинаковый тип, нумерация и у них есть общее имя А. В пункте б) нет массива, т.к. среди ёлочек есть другое дерево – нет однотипности и нет имени.
Учитель: Что можно привести в качестве примера массива?
ПОУ: Список фамилий в школьном журнале; пронумерованные места в автобусе.
Если есть затруднения с примерами, то немного подсказать наводящими вопросами.
Вернёмся к карточкам, задание 1.
Задание №1
А(1)А(2)А(3)А(4)А(5)
А 2 5 0 -12 2

А(2) = 5
Значение элемента
Размер массива – количество элементов в массиве.

А(2) Обращение к
элементу массива
Имя индекс
массива А(J) (номер) А(J) – J –ый
элемент массива
Учитель: У нас есть числовой массив именем А. Сосредоточим наше внимание не на массиве в целом, а на отдельном элементе массива. Выделим, что принадлежит только этому элементу. Как вы считаете?
Примечание: Если первый ответ будет тип или имя, то указать на общность этих понятий и ещё раз повторить вопрос: чем отличается один элемент от другого?
ПОУ: Номером.
Учитель: Совершенно верно. Этот номер принято называть индексом. Что ещё принадлежит одному элементу? Например, что можно сказать об элементе массива с индексом 3?
ПОУ: Он равен 0.
Учитель: А элемент с номером 2 равен
ПОУ: 5.
Учитель: Т.е. каждый элемент имеет своё
ПОУ: значение.
Учитель: Что ещё? Как обратиться к конкретному элементу массива? Нужно записать имя массива, а в скобках его индекс. Поэтому массив часто называют переменными с индексами. Обращение к элементу массива, значение которого равно –12
ПОУ: А(4)
Учитель: Чему равно значение элемента А(5)?
ПОУ: 2
Учитель: Сколько элементов в массиве А? 5. запишите себе Размер массива – количество элементов в массиве.
Теперь посмотрим, как удобнее нумеровать последовательность. Допустим, какой-то шутник в театре пронумеровал все места подряд от 1 до 1000. Как долго вы будете искать своё 817 место? Как исправить положение?
ПОУ: Пронумеровать ряды и места.
На доске записываю Т (ряд, место).
Учитель: Сколько индексов нужно указать для обозначения одного места?
ПОУ: Два.
Т.е. в массиве А одна мера, а в массиве Т уже две. Одна мера – массив одномерный, две – двумерный.
Запишем: Количество индексов, необходимых для обращения к элементу массива указывает на его размерность.
По своей организации массивы могут быть одномерными и многомерными. Двумерные массивы иначе называют матрицами.

Задание № 2
В(1,1)
В(1,2)
В(1,3)

В(2,1)



В(3,1)



В(4,1)




Столбцы

строка столбец

В(I,J)
Задание: Записать обращение к заштрихованным элементам.

Теперь небольшая работа с карточкой. Занесите себе в тетради пункты №1 и №2. В п. №2 есть задание. Выполните его самостоятельно. Объясните соседу, как строится обращение к элементу двумерного массива. Проверка задание осуществляется на местах. Особое внимание обращаю на детей слабых. При затруднениях у детей тут же объясняю, как строится обращение к элементу двумерного массива, добиваюсь того, чтобы каждый ученик понял.
Закрепление пройденного.
Подведём итог урока. Мы должны были получить общее представление о массивах, как нового способа организации данных, т.е. узнать. Понять, запомнить основные термины и понятия, относящиеся к массивам. Ответьте с места на следующие вопросы:
Учитель: Какие переменные могут быть объединены в массив?
ПОУ: Однотипные.
Учитель: Какого типа будет массив, содержащий список учеников вашего класса?
ПОУ: Строковой.
Учитель: Каков будет размер этого массива?
ПОУ: 31.
Учитель: Какой размерности будет этот массив?
ПОУ: Одномерный.
Учитель: Какой индекс будет иметь элемент этого массива, имеющий значение « Швецов Павел»? Почему?
ПОУ: 31, т.к. эта фамилия последняя в списке.
Учитель: Другой хорошо известный вам пример двумерного массива – таблица Пифагора (Приложение №2).

1 2 3 4 5 6 7 8 9


1
2
3
4
5
6
7
8
9

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Если имя этого массива будет Р, то как обратиться к элементу массива, значение которого равно 24?
ПОУ: Р(3,8) или Р(4,6) или Р(6,4) или Р(8,3).
Учитель: Чему будет равно значение элемента Р(7,3)?
ПОУ: 21.
Учитель: Есть ли вопросы?
После примера обычно следует вопрос – есть ли трёхмерные массивы.
Пример: Адрес: первый индекс – номер дома;
второй – корпус;
третий – номер квартиры;
4. Переходим ко второй части урока: Использование массивов в программе, создание одномерного массива, способы задания значений элементам.
Использование массивов в программах облегчает обработку данных (статистическую, поисковую), поэтому, если есть группа связанных данных, то целесообразно объединять их в массив. Если в программе используется массив. То он должен быть предварительно описан. Это значит, что машине должна быть дана информация о структуре и размере массива, т.е. какое имя будет у массива, тип элементов массива и количество элементов в массиве. Имя массива строится по тем же правилам, что и имя простой переменной. Для описания массива в языке программирования БЕЙСИК используется оператор DIM(сокращение слова dimension – размерность). Этим оператором даётся указание ЭВМ зарезервировать необходимое количество ячеек памяти для хранения указанных в операторе DIM массивов.
Например, опишем массивы из заданий №1 и №2 (Приложение 1) DIM A(5), B(4,3).
Под одномерный массив А будет выделено 5 подряд идущих ячеек памяти для элементов А(1), А(2), А(3), А(4), А(5). Одномерный массив представляет собой линейную последовательность;
под двумерный массив В –12 подряд идущих ячеек памяти для элементов В(1,1), В(1,2), В(1,3), В(2,1), В(2,2), В(2,3), В(3,1), В(3,2), В(3,3), В(4,1), В(4,2), В(4,3).
В языке БЕЙСИК двумерный массив размещается в памяти по строкам: сначала первая строка, затем вторая и т.д.
1. Сразу поставить задачу перед классом на весь урок, чтобы дети в конце урока сами могли определить, выполнена поставленная задача или нет, что создаст в них уверенность в себе, если цель будет достигнута.
2. Проверка прошедшего материала перед ново темой даёт возможность учителю проверить прочность знаний учащихся, а у детей создать ощущение цельности курса, что создаёт мотивацию для дальнейшего изучения курса.






Выделение нужного учит детей сосредоточенности, концентрации внимания на поставленной задаче, что важно не только в программировании, но и во многих областях жизнедеятельности человека.
















3. Для детей гуманитарного склада все примеры взяты непосредственно из повседневной жизни, чтобы, переходя от конкретного к абстрактному, быстрее и прочнее усвоить новое, довольно сложное понятие.












Важно научить детей не только выделять главное, но и закреплять новые знания. Особо значение имеет наглядность и простота способа запоминания.
Примеры, приводимые самими детьми, показывают, что они понимают суть определения нового типа данных.
Когда усвоено понятие массива, можно переходить от конкретных примеров, взятых непосредственно из жизни, к абстрактному примеру, конкретизировать и углублять знания, приблизиться к языку программирования.










Здесь важно, чтобы дети сами поправили себя, используя только что полученные знания, учитель только направляет.

Объяснение нового материала идёт в виде беседы, что держит внимание учеников и даёт возможность учителю спрашивать тут же с места, если он заметил, что кто-то отвлекся, (это могут быть ученики с неустойчивым вниманием). Для учеников участие в такой беседе облегчает восприятие нового, даёт уверенность в том, что они сами до всего додумались, создаёт положительный настрой, что немаловажно для детей с повышенным уровнем тревожности и эмоционально неустойчивым. В этой части урока беседа опирается на знание пройденного материал (величины переменные), повторяемого в начале урока.






Переход к двумерным массивам естественно предлагается самими учениками как удобство, а не просто как абстрактно понятие. Что особенно важно для учеников гуманитарного класса, обладающих мышлением более наглядно-образным, чем абстрактно-логическим.






Переключение внимания с одного вида деятельности на другой даёт возможность небольшого отдыха при высоко работоспособности. Запись в тетрадь даёт возможность запомнить материал быстрее тем ученикам, у которых развита более моторная память, нежели другие виды памяти (словесно-логическая или зрительно-слуховая).








Задание в п. №2 не случайно опережает объяснение. Оно даёт возможность ученикам с высокой концентрацией внимания и творческим мышлением самостоятельно разобраться в материале без помощи учителя, проявить себя; у
·ченикам не обладающим такими качествами всё равно даётся возможность в какой-то мере попробовать свои силы. В любом случае самостоятельная работа с печатным материалом развивает детей. При проверке этого задания незаметно для учеников осуществляется индивидуальный подход, выясняются возможности детей, что будет учитываться при составлении индивидуального контрольного задания по прохождении темы.




Постановка задачи в начале урока и подведение итогов в конце учит детей чёткой организации и контролю своей работы, планированию своей деятельности в будущем. Уверенность в том, что работа выполнена, даёт чувство удовлетворения, что является побудительным мотивом для дальнейшей учёбы. И при доброжелательном и уважительном отношении учителя в учениках закрепляется желание идти на урок. Помимо познавательных задач, таким образом, на уроке решаются и воспитательные. А это, учитывая максимализм старшеклассников и их критическое отношение к старшему поколению, немаловажно.





































Нумерация элементов с нуля для большинства задач неудобна, поэтому на уроках мы игнорируем нулевые индексы.





















Урок 2
Тема: Формирование массивов.
Цель урока: Повторить и закрепить пройденный материал. Выработать умение составлять
правильно программы с использованием массивов. Закрепить умение
учащихся в составлении программ.
Ход урока: В начале урока идёт фронтальный опрос по пройденному материалу; Для
этого учащимся предлагается устно ответить на следующие вопросы:
Понятие массива
Что такое переменные с индексами
Для чего нужен оператор DIM
Далее идёт изложение нового материала.
Тема урока: Формирование массивов. Массивы могут быть введены в ЭВМ как исходные данные, с помощью операторов READ и INPUT и формироваться в программе как промежуточные или входные результаты. В том и другом случаях все использованные в программе массивы следует описывать в операторах DIM.

Рассмотрим формирование массива на следующем примере:

Пример 1: Вычислить значение первых десяти элементов геометрической прогрессии, если известен её первый элемент а1 = 2 и знаменатель прогрессии q =3
Будем использовать следующую формулу: аn = аn-1 *q – это удобно делать в цикле. Чтобы запомнить значения элементов, их следует объявить как одномерный массив.

10 REM Вычисление элементов прогрессии
20 DIM A (10)
30 LET A (1) = 2
40 PRINT A (1)
50 LET Q = 3
60 LET I = 2
70 LET A (I) = A (I-1)*Q
80 PRINT A (I)
90 LET I = I+1
100 IF I<= 10 THEN 70
110 END
RUN
2
6
18
54
162
486
148
4374
13122
39366




Здесь оператор 20 резервирует 10 ячеек памяти; оператор 30 присваивает значение первому элементу прогрессии; оператор 40 выводит это значение на печать; оператор 50 присваивает значение знаменателю прогрессии; оператор 60 подготавливает значение I=2, для второго элемента массива; оператор 70 в цикле вычисляет значение элементов прогрессии и формирует массив этих значений, последовательно заполняя отведённые ячейки памяти; оператор 80 последовательно выводит на терминал элементы прогрессии, начиная со второго; оператор 90 увеличивает значение индекса для того, чтобы при выяснении очередного значения элемента прогрессии результат был помещён в следующую по порядку ячейку памяти; после вычисления 10 значений оператор 100 передаёт управление на окончание программы.




Пример 2: Сформировать одномерный массив А (9) с помощью оператора READ.

10 CLS
20 DIM A (9)
30 DATA 5,-3,0,7,25,6,7,8,9
40 FOR I = 1 TO 9 STEP 1
50 READ A (I)
60 PRINT A (I)
70 NEXT I
80 END

Пример 3: Сформировать одномерный массив В (1;N( с помощью оператора INPUT.

CLS
20 INPUT « Число элементов»; N
30 DIM B (N)
40 FOR I = 1 TO N STEP 1
50 INPUT A (I)
60 NEXT I
70 END
Пример 4: Сформировать одномерный массив В (1;N( с помощью генератора случайных чисел.

10 CLS
20 INPUT « Число элементов»; N
30 DIM F (N)
40 FOR I = 1 TO N STEP 1
50 LET F (I) = INT (100*RND(1))
60 PRINT F (I)
70 NEXT I
80 END
Вывод: способы задания значений элементов массива отличаются только оператором, с помощью которого производиться задание значений. Таким образом они имеют общий вид ( задание значений всем элементам):
20 DIM A(N)
30 FOR I=1 TO N
40 оператор задания значений элементу A(I)
50 NEXT I

.






Домашнее задание:
Составить программу формирования одномерного массива К$ (1;5(, который содержит имена девочек.
Составить программу формирования одномерного массива через генератор случайных чисел на интервале от –5 до 10.
Составить программу формирования одномерного массива В (1;N( с клавиатуры.





Урок 3
Тема: Контрольная работа.
Цель урока: Проверить и оценить, как учащиеся усвоили теоретический материал и
приобрели навыки в решении задач. Сформировать у учащихся уверенность
в себе и своих знаниях, развить логическое мышление, развить умение
рационально применять знания.

Задача 1: Заполнить массив R 30 – 40 первыми элементами ряда: 1, 1, 2, 2, 3, 3 Вывести массив на экран.
Задача 2: Создать и вывести на экран массив М (30), в котором все элементы с чётными номерами равны 100, а с нечётными –100.
Задача 3: Даны два массива А (20) и В (20). Составить программу, которая находит:

Минимальный элемент массива А
Максимальный элемент массива В
Общую сумму элементов А и В

Массивы А и В ввести с клавиатуры.
Задание на "5":
Задача 4: В массиве Х (1:100) содержатся номера выигрышных лотерейных билетов.
Ввести с клавиатуры номер билета N. Определить является ли этот номер
выигрышным и вывести на экран список номеров таких элементов массива,
которые отличаются от N на 1, т.е. |N –X(I)| = 1.

Итоги контрольной работы: Проанализировать ошибки, допущенные при выполнении тех или иных заданий.
На следующем уроке обратить внимание учащихся на те задания. Где было допущено наибольшее количество ошибок, а также показать ошибки, которые встретились при выполнении заданий.











МБОУ СОШ № 134
Приокского района


Тема: Массивы

Выполнил:
Учитель информатикиБухалова Надежда Михайловна
15 марта 1954 г.
Высшее, Горьковский государственный университет
им. Н. И. Лобачевского, прикладная математика, 1977 год.


Н. Новгород 2015

Приложение 1

Массив

Массив – упорядоченный набор
однородных элементов, имеющий одно
общее имя.


А(1) А(2) А(3) А(4) А(5) A(2)=5 ЗНАЧЕНИЕ ЭЛЕМЕНТА

2
5
0
12
2

1. а)








Размер массива – количество элементов в массиве

Не массив
1 2 3 4 5


б)





нет имени

не однотипные величины
А(2)
имя (номер) обращение к элементу массива
А(J) элемента A(J)- J-ый элемент массива А

Многомерные массивы
2.

В(1,1)
В(1,2)
В(1,3)

В(2,1)



В(3,1)



В(4,1)



В(I,J)

строки
строка столбец

Задание: Записать обращение к
столбцы заштрихованным элементам массива В.

Количество индексов, необходимых для обращения к элементу массива указывает на его размерность.
Вопрос: Сколько элементов в массиве В?
Пример 1: Нумерация кабинетов в школе:
первый индекс – этаж, второй – номер кабинета.
Пример 2: Классный журнал.
Пример 3: Таблица Пифагора – двухмерный массив.
Пример 4: Адрес: первый индекс – номер дома, второй – корпус, третий – номер квартиры; (трёхмерный массив)
































ПРИЛОЖЕНИЕ 4
ПРОГРАММА СОРТИРОВКИ МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ «ПУЗЫРЬКА»
10 CLS
20 INPUT”ВВЕДИТЕ РАЗМЕР МАССИВА”;N
30 DIM A(N)
Заполнить самим 40 DATA
50 FOR L=1 TO N
Ввод массива из блока данных 60 READ A(L)
70 NEXT L
80 PRINT”МАССИВ А”,
Вывод начального массива 90 GOSUB 210
Пропуск строки перед сортировкой 95 PRINT
100 FOR J=1 TO N-1
Внешний Внутренний 110 FOR K=1 TO N-J
IF A(K) > A(K+1) THEN 130 ELSE 160
B=A(K)
A(K)=A(K+1)
A(K+1)=B
NEXT K
170 NEXT J
180 PRINT”МАССИВ А”,
Вывод отсортированного массива 190 GOSUB 210
200 STOP
Подпрограмма 210 REM Подпрограмма вывода массива в строку
220 FOR L=1 TO N
Вывод массива 230 PRINT A(L);
240 NEXT L
Перевод печати на новую строку 250 PRINT
Возврат в основную подпрограмму 260 RETURN
270 END

JJJ
Да 100 FOR J=1 TO N-1


Да 110 FOR K=1 TO N-J

да нет Сравниваем
A(K) И A(K+1) 120 IF A(K)>A(K+1) THEN ELSE

Меняем 130 B=A(K)
Местами 140 A(K)=A(K+1)
A(K) И A(K+1) 150 A(K+1)=B


160 NEXT K


170 NEXT J


СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ «ПУЗЫРЬКА»
ПУСТЬ N=5 (10,5,1,6,0)
J=1

A
10
5
1
6
0
K K+1 FOR K=1 TO 4


K=1

10
5
1
6
0
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)












К=2

5
10
1
6
0
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)












К=3

5
1
10
6
0
Если A(3) > A(4)-----меняем местами элементы А(3) И A(4)












К=4

5
1
6
10
0
Если A(4) > A(5)-----меняем местами элементы А(4) И A(5)











J=2

A
5
1
6
0
10
K K+1 FOR K=1 TO 3


K=1

5
1
6
0
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)












К=2

1
5
6
0
10
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)












К=3

1
5
6
0
10
Если A(3) > A(4)-----меняем местами элементы А(3) И A(4)











J=3

A
1
5
0
6
10
K K+1 FOR K=1 TO 2


K=1

1
5
0
6
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)












К=2

1
5
0
6
10
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)











J=4

A
1
0
5
6
10
K K+1 FOR K=1 TO 1


K=1

1
0
5
6
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)













A
0
1
5
6
10



Лабораторная работа
Наберите программу сортировки на компьютере, заполнив блок data в строке 40 своими значениями, запустите получите правильный результат.
Вставьте промежуточную печать, для этого исправьте строку 160 и добавьте строки 162, 164 и 166 160 PRINT “K=”;K, Печать номера шага внутреннего цикла 162 GOSUB 210 Вывод промежуточного массива 164 NEXT K Конец внутреннего цикла 166 PRINT Пропуск строки между циклами

Домашнее задание
Выполните задание с карточкой, аналогично работе в классе, для сортировки по убыванию того же массива.
Подготовьте программу, выстраивающую в обратном порядке (т.е. по возрастанию) фамилии учеников вашей подгруппы, записанные латинскими буквами; ввод данныхс клавиатуры.










Строки

А

?



KKKK

J



Заголовок 1 Заголовок 2 Заголовок 3 Заголовок 4 Заголовок 5 Заголовок 6 Заголовок 7 Заголовок 815