РАЗРАБОТКИ
|
Методика изложения темы "Массивы"«Методика изложения темы курса Информатики – одномерные массивы» «Методика преподавания углубленного курса алгоритмики и программирования с учетом требований новых образовательных стандартов и внешней оценки качества подготовки выпускников по информатике (ЕГЭ)» Королева Марина Михайловна, учитель информатики и ИКТ МОУ гимназия г.Фрязино Московской области Введение Тема работы: методические и практические рекомендации в изучении массивов в старшей школе. Данная тема вызывает сложности в изучении у старшеклассников. Моя методика изложения материала основана на сравнительном анализе, тех объектов, с которыми учащиеся встречаются в быту, в жизни. Это способствует более быстрому усвоению довольно сложной темы в курсе программирования. Такая работа позволяет научить учащихся преобразовывать информацию из образного мышления на язык программирования и более легко подходить к экзамену по информатике и ИКТ. Основная часть Изучением массивов необходимо начать с философской беседы на тему : «таблицы во круг нас» Вы мне скажите: «Да мы не знаем, что такое массив». Да знаете Вы все. Это честно говоря, на нашем простом языке – есть не что иное как таблица, которую вы используете в математике, физике…Да практически на каждом предмете в школе, а в жизни? Да и в жизни: это информация вокруг нас. Ваш дневник- таблица. Школьный журнал – таблица. Расписание поездов, самолетов – таблица. А теперь давайте разбираться Вспомним, ребята 1 класс, вы сидите на уроке и вам Мария Ивановна задала домашнее задание измерить температуру каждого дня и занести в табличку. И вот что вышло у Никиты. понедельник вторник среда четверг пятница суббота воскресен -12 -5 -5 0 +4 -10 -5 Или можно сделать и так, если договориться, что пусть 1 – это будет понедельник,2-вторник и т.д. 1 2 3 4 5 6 7 -12 -5 -5 0 +4 -10 -5 Что же мы можем узнать из этой таблички? Говорят учащиеся: 1. В какой день недели был самым холодным? 2.Какая самая низкая температура недели? 2.А какой день был самым теплым? 4. А какая температура при этом была? 3. Какая была средняя температура недели? И т.д. Это табличка, в которой содержимое ячейки имеет свой номер. Как почтовый ящик ( у него есть номер и есть содержимое, которое мы не видим) И номер у ячейки только один – поэтому он называется «одномерный» массив. Удобно по табличке находить информацию? Или шахматная доска. Как вы записываете ходы? Например: Пешка Е2. Что это означает? (Дети должны ответить) А игра «Морской бой» Правильно. У шахматной доски есть строки и ряды. Каждая клетка имеет 2 номера – один по строке, другой по столбцу. 2 меры – двумерный массив. А многомерные? Взлет самолета. Он имеет три координаты: x, y, z. А кристаллическая решетка поваренной соли или кристаллическая решетка льда, в которых молекулы находятся в пространстве и имеют также 3 координаты. Современное программное обеспечение учитывает многомерность при создании 3D картинок. А как заставить машину искать нужную информацию? Оказывается машина хотя и «слепая»,но умеет запоминать ,хранить любого рода информацию. Для этого необходимо PASCAL сказать, что она будет работать с таблицей. Массив относится к такой категории типов данных - структурированным типам, когда имени переменной соответствуют несколько значений. Например водном подъезде каждый почтовый ящик имеет свой номер и почтальон кладет газету, используя номер, т.е. адрес. 1 минус любого массива в том, что в каждом массиве могут лежать данные только одного типа и машине надо сказать какого. 2 минус что массив занимает место в памяти машины, что не приветствуется в ЕГЭ. Необходимо учесть , что существует ограничения оперативной памяти на все переменные - 64 килобайта. Совокупность ячеек обозначается групповым именем, а доступ к конкретному элементу(ячейке) осуществляется путем указания группового имени и порядкового номера (индекса) необходимого элемента, т. е. необходимо указать адрес ячейки. Вычисление адреса элемента выполняется в два этапа: Операции с массивами:
Type M1=Array[1..10] of real; M2=Array[Char] of Boolean; Matrix=Array[1..10] of Array[1..20] of Integer; Или Matrix=Array[1..10,1..20] of Integer; Var Vector:M1; Sym_Table:M2; Arr1,Arr2:Matrix; S:Arrray[(Red,Yellow,Green)] of Boolean; Наиболее типичные ошибки при работе с массивами 1. Выход индекса за установленные пределы. Пример: Var Vector:Array[0..10] of Real Обращение Vector[11]:=0.5 вызовет ошибку трансляции, т.к. машина в памяти зарезервировала 11 элементов, а мы хотим 12-ый, а такого нет. Если в процессе выполнения программы значение выйдет за пределы 0..10 - может возникнуть ошибка времени исполнения ( а может и нет). При трансляции подобных операторов транслятор вставляет в объектный код программы динамические проверки индексов, если была установлена директива{$R+} (если было {$R-} - проверки нет). Это увеличивает размер кода и снижает скорость работы программы, но повышает надежность программы. Обычно при тестировании устанавливается {$R+}, а после отладки -{$R-}. Можно, однако, сохранить {$R+} на ”опасных” участках. 2. Попытка использования имени массивов процедурах ввода/вывода как целого, а не как элемента - переменной с индексами (кроме одномерных символьных массивов). 3. Присваивание не идентичных массивов. Пример: Правильно Var A:Array[1..15] of Real; B:Array[1..15] of Real; Begin A:=B; Не правильно Var A:Array[1..15] of Real; B:Array[1..15] of integer; Begin A:=B; Алгоритм решения задач с массивами
1 2 3 4 5 34 -2 -40 5 123 Формирование массива (заполнение ячеек содержимым) происходят по следующим правилам: А) заполняем сами (ввод с клавиатуры) Выглядит следующим образом: в 1-ую положили, во 2-ую положили, в 3-ю положили и так до ? Да N ячейки. Следовательно ячеек N. Const n=9; Var mas:array[1..N] of integer; { машина в памяти последовательно резервирует 9 ячеек, с которыми и будет работать} I:integer; Begin Repet Writeln(‘ сколько ячеек в массиве?’); Readln(n); Until n<=9; For i:=1 to n do Begin Writeln(‘ введи ’,I,’элемент массива’); {ввод массива через enter} Readln(mas[i]); End; Readln; …………………. 2 вариант тоже ввод с клавиатуры, но выглядит более качественно Const n=9; Var mas:array[1..N] of integer; I:integer; Begin Repet Writeln(‘ сколько ячеек в массиве?’); Readln(n); Until n<=9; For i:=1 to n do Begin Read(mas[i]); {ввод с клавиатуры, но через пробел. Массив перед вами} End; Readln;……… Б) Ввод для лентяев, при помощи датчика случайного числа. У данного способа есть один существенный недостаток – он не позволяет проверить работоспособность программы в различных ситуациях. Const n=9; Var mas:array[1..N] of integer; I:integer; Begin Randomize; Repet Writeln(‘ сколько ячеек в массиве?’); Readln(n); Until n<=9; For i:=1 to n do Begin A[i]:=(10*random(21)); {заполнение ячеек числами от -10 до 10)} Write(a[i],’ ‘); {вывод содержимого каждой ячейки на экран} End; Readln;… В) Заполнение массива по закономерности. Например - необходимо создать массив следующего вида: 1 2 3 4 5 6 1 0 1 0 1 0 Для этого используем закономерность: в ячейку, стоящую под четным номером заполним 0, а под нечетным 1. Не только заполним, но и сразу напечатаем. For i:=1 to 6 do begin If i mod 2=0 then a[i]:=0 else a[i]:=1; Write(a[i],’ ‘); End; Работа с массивом заключается в исследовании содержимого ячейки, возможно номера. Все зависит от выполняемой задачи. Вывод результата и массива на экран. Этап обязательный, т.к. по результату можно судить о правильности написания программы. Алгоритм работы дан. А теперь за задачи! 1. Решение задач на поиск элемента, обладающих необходимым условием Задача №1 Постройте алгоритм(анализ, блок-схема, программа) решения задачи. В одномерном целочисленном массиве размерностью N. Определить каких чисел больше- положительных или отрицательных? Program zad1; Uses crt; Const n=20; Var A:array[1..N] of integer; I, ko,kp:integer; Begin Clrscr; ko:=0; kp:=0; Repet Writeln(‘ сколько ячеек в массиве?’); Readln(n); Until n<=20; For i:=1 to n do Begin Read(A[i]); If A[i]>0 then kp:=kp+1 Else If A[i] <0 then ko:=ko+1; End; Readln;……… If kp=ko then writeln(‘их равное кол-во’) else if kp>ko then writeln(‘больше положительных’) else writeln (‘больше отрицательных’); Readln; End. После разбора данной задачи необходимо еще раз обратить внимание на такое понятие как «содержимое ячейки» - обращение к ячейке по адресу-А[i]) и порядковый номер i. Далее решаем задачи следующего содержания:
Дать самостоятельную работу. Удостовериться, что тема понята. 2. Следующая тема: «Поиск максимального и минимального элементов в массиве» Теория. К данному моментуобучающиеся к этому времени уже знают алгоритм нахождения минимального и максимального, но повторить необходимо. Обратить внимание что за начальное значение максимального и минимального необходимо брать значение, вытекающее из условия задачи. Итак, объяснение происходит через решение и анализ нескольких задач, которые необходимо решить совместно с учениками. Задача 1. В одномерном целочисленном массиве размерностью N определить максимальный элемент и его порядковый номер. Начинаем с анализа. Что на входе и что на выходе? Program zad1; Uses crt; Const n=20; Var A:array[1..N] of integer; i, max, bmax :integer; Begin Clrscr; Repet Writeln(‘ сколько ячеек в массиве?’); Readln(n); Until n<=20; For i:=1 to n do Read(A[i]); { Что же взять за начальный max? Здесь необходимо рассмотреть все случаи, в которых исследуется местонахождение максимального элемента и обратить внимание на порядковый номер) Max:=a[1]; bmax:=1; For i:=1 to n do If A[i]>max then begin Max:=a[i]); Bmax:=I; End; Writeln(‘max=’,max); Writeln(‘егономер’,bmax); Readln;……… Readln; End. Вторая задача. Найти максимальное число из отрицательных элементов. Третья задача из ЕГЭ. Дан целочисленный массив из 30 элементов, все элементы которого – неотрицательные числа, не превосходящие 10000. Опишите алгоритм, который позволяет определить и вывести на экран наибольшее число, десятичная запись которого заканчивается цифрой 3, записанное в этом массиве. Если в массиве нет таких чисел, программа должна вывести сообщение «Таких чисел нет». Далее идет индивидуально-практическая работа по усвоению этой темы, для этого предлагаются следующие задачи:
Тема 3. Создание нового массива из существующего. Объяснение начинаем с задачи: Дан одномерный массив А, состоящий из целых чисел. Сформировать массив В, в который должны входить положительные элементы массива А. Делаем анализ, рисуя на доске массив А с элементами. Задаем вопросы:
Program zad1; Uses crt; Const n=20; Var A,B:array[1..n] of integer; i, k :integer; Begin Clrscr; Repet Writeln(‘ сколько ячеек в массивe A? ’); Readln(n); Until n<=20; K:=0; For i:=1 to n do Read(A[i]); Readln; For i:=1 to n do If A[i]>0 then begin k:=k+1; B[k]:=A[i]; End; For i:=1 to k do Write(B[i],’ ‘); Readln; End. Далее практическая работа. Решение задачи типа:
Тема 4. Работа с несколькими массивами одновременно. Опять объяснение начинаем с задачи. Известны названия каждого продукта и его цена. Какой продукт самый дорогой? На доске рисуем два массива: один с названием продукта, другой под тем же номером с его ценой. 1 2 3 4 5 6 молоко сахар батон чипсы сок шоколад 1 2 3 4 5 6 30,7 28,3 21,4 78 54 44,9 Какой продукт самый дорогой? Как определили? А теперь напишем программу: Program zad1; Uses crt; Const n=20; Var pr:array[1..n] of string; Сn:array[1..n] of real; i, k,xx:integer; max:real;{либо xx:string} Begin Clrscr; Repet Writeln(‘ сколько продуктов ? ’); Readln(n); Until n<=20; K:=0; Writeln(‘введи наименование продукта и его цену’); For i:=1 to n do Readln(pr[i],сn[i]); Max:=0; For i:=1 to n do If cn[i]>max then begin Max:=cn[i]; xx:=i; End; Write(‘самый дорогой –‘, pr[xx]); Readln; End. Второй способ выделенной части: Max:=0; For i:=1 to n do If cn[i]>max then begin Max:=cn[i]; xx:=pr[i]; End; Write(‘самый дорогой –‘, xx); Далее практическая работа Решение задач типа:
И т.д. Творческая работа по теме в обязательном порядке. Тема 5. Сортировка массива. Одна из самых трудных тем. Но если все проанализировать, то вполне решаема. Как вы понимаете фразу «числа расположены по возрастанию»? А как «видит» машина, если у нее «глазиков» нет. Дети говорят- это и есть отправная точка для решщениязадачи. Итак. Дан массив А. Придумайте способы сортировки по возрастанию. Что могут придумать учащиеся:
Таким образом, обратите внимание, что на первом месте оказался самое маленькое число. Все это демонстрируем на доске. Отсортировали? Нет. А что потом. Правильно, берем 2-ой сравниваем с 3 и т.д., если необходимо меняем местами. Пишем программу. ……… For i:=1 to n-1 do For j:=i+1 to n do If a[i]>a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c; end; for i:=1 to n do write(a[i],’ ‘); 4 способ Сравниваем 1 с 2, 2 с 3, 3 с 4 и т.д. при этом меняем их местами, если предыдущий больше текущего. За один проход отсортируем? Нет. А сколько проходов необходимо сделать. Дети говорят. После этого пишем программу. Необходимо сказать, что методов сортировки очень много. Необходимо выбрать тот, который больше приглянулся, но в то же время необходимо, что бы ребенок все основные способы разобрал. Далее решаем задачи на упорядочение типа.
Творческая работа в обязательном порядке. Не забывать, что после каждой темы проводятся не только творческие работы, но конечно и самостоятельные, чтобы удостовериться, что обучающиеся понимают смысл темы. Заключение. При таком расположении материала вырабатывается представление у детей о том, что с массивами легко и просто работать. Что они необходимы в жизни. Что компьютер работает с любой информацией. Самое главное, чтобы перевести эту информацию на язык понятный машине, т.е. на язык программирования. При практической работе каждому из учащихся подбираются задачи по уровню, тем самым с каждым разом усложняя мыслительный процесс. И если что-то не получается, не надо подсказывать, а необходимо смоделировать задачу, похожую в жизни. И тогда все легко удается сделать! Практика и опыт изложения данного материала, показали, что учащиеся, решая многообразные задачи, в конце темы начинают понимать, что любую жизненную задачу можно смоделировать на компьютере, а это важно в век информатизации. Литература 1. Лекции доцента, канд. п.н. Кащея В.В. 2. В.Н. Пильщиков Сборник упражнений по языку Паскаль. М.:Наука,1989г 3. Статград. 2012г. Материалы экзаменационной работы по информатике 4.В.Б. Попов TURBO PASCAL для школьников, Москва, «Финансы и статистика» 2006г. 5.Информатика: пособие для подготовки к ЕГЭ ( под редакцией Е.Т.Вовк) Кудиц ПРЕСС 2009 6.Д.М. Златопольский Я иду на урок информатики Москва, «Первое сентября» 2001г.
Всего комментариев: 0
Новые статьи
Игровое спортивное мероприятие «Здравствуй, Зимушка-зима» Важность моторного планирования у младших школьников Формирование ключевых компетенций в процессе обучения математике Приемы активизации познавательной и творческой деятельности обучающихся на уроках математики Наставничество как важная часть воспитательного процесса классного руководителя Последние новости образования
Оценивание ОГЭ может быть переведено на 100-балльную систему Сергей Кравцов представил проект расходов по госпрограмме «Развитие образования» на 2025-2027 годы В России предложили ввести штрафы за оскорбление учителей Примерный календарный план воспитательной работы на 2024-2025 учебный год В помощь учителю
Уважаемые коллеги! Опубликуйте свою педагогическую статью или сценарий мероприятия на Учительском портале и получите свидетельство о публикации методического материала в международном СМИ. Для добавления статьи на портал необходимо зарегистрироваться.
|
Конкурсы
Диплом и справка о публикации каждому участнику! Лучшие статьи
Как побороть подростковую агрессию О мотивах учения и как выработать мотивацию к учёбе Поддержка ребёнка — важный инструмент в работе учителя Наставничество как важная часть воспитательного процесса классного руководителя |
© 2007 - 2024 Сообщество учителей-предметников "Учительский портал"
Свидетельство о регистрации СМИ: Эл № ФС77-64383 выдано 31.12.2015 г. Роскомнадзором.
Территория распространения: Российская Федерация, зарубежные страны.
Учредитель / главный редактор: Никитенко Е.И.
Сайт является информационным посредником и предоставляет возможность пользователям размещать свои материалы на его страницах.
Публикуя материалы на сайте, пользователи берут на себя всю ответственность за содержание этих материалов и разрешение любых спорных вопросов с третьими лицами.
При этом администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта.
Если вы обнаружили, что на сайте незаконно используются материалы, сообщите администратору через форму обратной связи — материалы будут удалены.
Все материалы, размещенные на сайте, созданы пользователями сайта и представлены исключительно в ознакомительных целях. Использование материалов сайта возможно только с разрешения администрации портала.
Фотографии предоставлены