Методика изучения темы «Обработка массивов» при подготовке к ЕГЭ по информатике и ИКТ

Раздел Информатика
Класс 9 класс
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ Государственное БЮДЖЕТНОЕ

образовательное учреждение

высшего профессионального образования

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»


Факультет повышения квалификации преподавателей


Кафедра геометрии и компьютерных наук





ИТОГОВАЯ АТТЕСТАЦИОННАЯ РАБОТА


Методика изучения темы «Обработка массивов»

при подготовке к ЕГЭ по информатике и ИКТ




Дополнительная образовательная программа

«Методика подготовки к ЕГЭ по информатике»




Руководитель

к.п.н, доцент кафедры геометрии и компьютерных наук Морковина Э. Ф.

Слушатель

учитель информатики
муниципальное бюджетноеобщеобразовательное учреждение
«Грачевская средняя общеобразовательная школа »

Концевая Елена Валерьевна



Оренбург 2015


Содержание

Введение 3

1. Теоретические основы решения задач на тему «Обработка массивов» 4

2. Аналитический обзор изложения темы «Обработка массива» 9

3. Конспект урока по решению задач на тему «Обработка массива» 11

4. Примеры задач на тему «Обработка массива» 16

Заключение 24

Список использованных источников 26









































Введение

Раздел «Основы алгоритмизации и программирования» (ОАиП) имеет явно выраженную практическую направленность, что способствует усилению связи обучения с жизнью. В этом разделе, как ни в одном другом, большое внимание должно уделяться решению задач и выполнению упражнений.

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

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

При изучении программирования школьника надо приучить абсолютно точно по определенным фиксированным правилам записывать алгоритм. Поэтому с самого начала необходимо привить школьникам такие качества, как четкость, ясность, аккуратность в записях, предельную внимательность и сосредоточенность, особенно при работе на ЭВМ.

В настоящее время все большее распространение во всех отраслях экономики и народного хозяйства приобретают решения на платформе «1С:Предприятие».Старшим школьникам, с целью способствования их профессиональному выбору, было бы полезно познакомиться с языком программирования Pascal и приобрести навыки решения задач практического характера.

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

Все выше сказанное определяет актуальность темы работы«Методика изучения темы «Обработка массивов» при подготовке к ЕГЭ по информатике и ИКТ»

Целью работы является совершенствование методики преподавания темы «Обработка массивов» в школьном курсе информатика и ИКТ и при подготовки к ЕГЭ.

Задачи:

  • изучить теоретические основы решения задач

  • провести анализ изложения темы в современных школьных учебниках

  • разработка конспекта урока по решению задач по теме «Обработка массивов»

  • разработка комплекта задач на тему «Обработка массивов»


1. Теоретические основы решения задач на тему «Обработка массивов»

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

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

Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] . . . A[n]



Рис. 1

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

Количество элементов в массиве называется его размерностью.

Каждый элемент массива имеет:

1.имя

2.индекс

3. значение.

Например, на рис.2 массив А состоит из 9 элементов ( т.е. размерность массива равна 9).

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] А[9]

5

2

9

10

1

7

19

8

4

Рис. 2

Рассмотрим 1-ый элемент массива и дадим ему характеристику:

имяА

индекс1

значение5

Массивы могут быть одномерные (векторы) и двумерные (матрицы). Элементы вектора имеют один индекс, а элементы матрицы имеют два индекса - номер строки и номер столбца, на пересечении которых находится данный элемент:


А 12345678

7

4

А [ 1 , 5 ] - элемент, расположенный в 1-ой строке и в 5-ом столбце

имеет значение 7

A [ 5 , 1 ]- элемент, расположенный в 5-ой строке и в 1-ом столбце

имет значение 4

Описание массива в Паскале задается в разделе переменных var и

включает в себя:

1. Имя массива.

2. Ключевое слово ARRAY (т.е. массив).

3. Диапазон изменения индексов, определяемый граничной парой:

1..40 1..N 5..20

где 1, 1 и 5 - наименьшее возможное значение индекса

40, N и 20 - наибольшее возможное значение индекса

4. Тип элементов массива.

var имя1, имя2: array [граничная пара] of тип элементов;

Например:

var x1,x2: array[1..60] of real;

Здесь объявлены два массива х1 и х2 из 60 элементов типа real.

Последовательность действий при обработке массивов:

1.массив должен быть объявлен

2.массив должен быть заполнен данными (обычно это делается в цикле)

3.вывести на экран исходный массив

4.обработать массив, указанным в задании образом

5.вывести на экран результаты работы

Обработка одномерного массива.

Пример : вычислить сумму элементов массива А, имеющих

четные индексы.

Programexample;

const n=10; {кол-во элементов в массиве}

var

a:array[1..n] ofinteger;

i:integer; {параметрцикла}

s:real; {сумма}

begin

randomize; {подключениегенератораслучайныхчисел}

for i:=1 to 10 do

a[i]:=random(50); {задание исходного массива}

writeln('исходный массив');

i:=1 to n do

rite( a [ i ], '' ); {распечатка исходного массива}

writeln; {перевод курсора на новую строку}

s:=0; i:=2;

repeat

s:=s+a[i]; {подсчет суммы}

i:=i+2;

untili>n;

write('сумма=',s); {вывод результата}

end.

Алгоритмы сортировки одномерных массивов.

Сортировка - один из наиболее распространённых процессов современной обработки данных. Сортировкой называется распределение элементов массива в соответствии с определёнными правилами. Например, сортировка массива по возрастанию или убыванию его элементов. Обменная сортировка (метод "пузырька"). Алгоритм начинается со сравнения 1-го и 2-го элементов массива.

Если 2-й элемент меньше 1-го, то они меняются местами. Этот процесс повторяется для каждой пары соседних элементов массива, пока все N элементов не будут обработаны. За один "проход" массива самый большой элемент встанет на старшее (N-е) место. Далее алгоритм повторяется, причем например "проходе" первые (N-p) элементов сравниваются со своими правыми соседями. Если на очередном "проходе" перестановок не было, то алгоритм свою работу закончил. Таким образом, самые "легкие" элементы в процессе исполнения алгоритма постепенно "всплывают".

Сортировка вставками. Вначале упорядочиваются два первых элемента массива. Они образуют начальное упорядоченное множество S. Далее на каждом шаге берется следующий по порядку элемент и вставляется в уже упорядоченное множество S так, чтобы слева от него все элементы были не больше, а справа не меньше обрабатываемого. Место для вставки текущего элемента в упорядоченное множество S ищется методом деления пополам. Алгоритм сортировки заканчивает свою работу, когда элемент, стоящий на N-м месте, будет обработан. (Именно таким образом игроки в бридж обычно упорядочивают свои карты).

Сортировка выбором. Находится наибольший элемент в массиве из N элементов (пусть он имеет номер р) и меняется местами с элементом, стоящим на N-м месте, при условии, что N<>p. Из оставшихся (N-1) элементов снова выделяется наибольший и меняется местами с элементом, стоящим на (N-1)-м месте и т. д. Алгоритм заканчивает свою работу, когда элементы, стоящие на 1-м и 2-м местах в массиве, будут упорядочены (для этого понадобится N-1 "проход" алгоритма). Аналогично данный алгоритм можно применять и к наименьшим элементам.

Рассмотрим работу с массивами на примере следующей задачи: Даны два массива целых чисел. Вычислить произведение максимального элемента первого массива на минимальный элемент второго массива. Удалить максимальный элемент из первого массива и добавить его во второй массив после минимального.

program mass;

typemassiv=array [1..40] of integer;

var a, b: massiv;

i, n, k, p, j, min, Imin, max, Imax: integer;

begin

{ввод массива с клавиатуры}

write('Введите размерность массива А n=');

readln(n);

writeln('Введите элементы массива А');

for i:=1 to n do begin

write('a[',i,']=');

readln(a[i]);

end;

{ввод массива случайным образом}

write('Введите размерность массива В k=');

readln(k);

randomize; {подключение генератора случайный чисел}

fori:=1 tokdo

b[i]:=random(16); {заполнение массива случайными числами от 0 до 15}

{Вывод массива на экран}

Writeln('МассивВ');

for i:=1 to k do write(b[i],' ');

writeln; {пустой оператор вывода}

{Поиск максимального элемента}

max:=a[1];

Imax:=1;

for i:=2 to n do

if a[i]>max then begin

max:=a[i]; {максимальный элемент}

Imax:=i; {индекс максимального элемента}

end;

{Поиск минимального элемента}

min:=b[1];

Imin:=1;

for i:=2 to n do

if b[i]

min:=b[i]; {минимальный элемент}

Imin:=i; {индекс минимального элемента}

end;

{вычисление произведения и его вывод на экран}

p:=min*max;

writeln('Произведение max и min равно ',p);

{Удаление элемента из массива с позиции Imax}

for i:=Imax to n-1 do

a[i]:=a[i+1];

n:=n-1; {Уменьшение количества элементов массива на 1}

{Вставка элемента в массив после элемента равного min}

i:=1;

while i

begin

if b[i]=min then begin

forj:=k+1 downtoi+1 dob[j]:=b[j-1]; {смещение элементов на один вправо, начиная с последнего}

k:=k+1; {Увеличение количества элементов на один}

b[i+1]:=max; {Вставка элемента на позицию i+1}

end;

i:=i+1; {Увеличение счетчика итераций}

end;

{Вывод массивов А и В на экран в строку}

writeln('МассивА: ');

for i:=1 to n do write(a[i],' ');

writeln;

writeln('МассивВ: ');

for i:=1 to k do write(b[i],' ');

end.





2. Аналитический обзор изложения темы «Обработка массива»

Из Стандарта Основного Общего образования по информатике и ИКТ - 2004 года следует содержание темы «Алгоритмизация и программирование»:

Обработка информации. Алгоритм, свойства алгоритмов. Способы записи алгоритмов; блок-схемы. Алгоритмические конструкции. Логические значения, операции, выражения. Разбиение задачи на подзадачи, вспомогательный алгоритм.

Реализация основной образовательной программы основного общего образования являются:

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

Изучая «Основы алгоритмической культуры» выпускник научится:

  • понимать термины «исполнитель», «состояние исполнителя», «система команд»; понимать различие между непосредственным и программным управлением исполнителем;

  • строить модели различных устройств и объектов в виде исполнителей, описывать возможные состояния и системы команд этих исполнителей;

  • понимать термин «алгоритм»; знать основные свойства алгоритмов (фиксированная система команд, пошаговое выполнение, детерминированность, возможность возникновения отказа при выполнении команды);

  • составлять неветвящиеся (линейные) алгоритмы управления

  • исполнителями и записывать их на выбранном алгоритмическом языке (языке программирования);

  • использовать логические значения, операции и выражения с ними;

  • понимать (формально выполнять) алгоритмы, описанные с

  • использованием конструкций ветвления (условные операторы) и повторения (циклы), вспомогательных алгоритмов, простых и табличных величин;

  • создавать алгоритмы для решения несложных задач, используя

  • конструкции ветвления (условные операторы) и повторения (циклы), вспомогательные алгоритмы и простые величины;

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

Выпускник получит возможность:

  • познакомиться с использованием строк, деревьев, графов и с

  • простейшими операциями с этими структурами;

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

Исходя из выше сказанного, анализ учебников покажет на сколько они соответствуют Стандарту Основного Общего образования по информатике и ИКТ - 2004 года и основной образовательной программе основного общего образования.

Мною были проанализированы 4 учебника по «Информатике и ИКТ» авторов: Н. Д. Угриновича, Л. Л. Босовой А. Ю. Босовой, Ю.А, Быкадорова и И. Г., Семакина Л. А. Залогова по следующим критериям:

  1. Соответствие стандарту основного образования - 2004 года;

  2. Количество часов в календарно-тематическом планирование;

  3. Количество параграфов отведенных на тему «Обработка массивов»;

  4. Доступность изложения материала темы;

  5. Наглядность;

  6. Среда программирования;

  7. Подбор заданий, учитывающий дифференциальный подход к учащимся;

  8. Наличие УМК, ЦОР;

  9. Наличие контрольно - измерительных материалов;

  10. Результативность в ЕГЭ и ГИА.

Сводная таблица «Аналитический обзор изложения темы «Обработка массивов» в современных школьных учебниках»

Критерии

Н. Д. Угриновича

Л. Л. Босовой

А. Ю. Босовой

Ю.А Быкадорова

И. Г., Семакина Л. А. Залогова

1

Соответствие стандарту основного образования 2004 года

+

+

+

+

2

Количество часов в календарно - тематическом планирование

-

4

3

2

3

Количество параграфов отведенных на тему «Обработка массивов»

0

6

2

3

4

Доступность изложения материала темы

-

+

+

+

5

Наглядность

-

Наличие ОК в презентациях к уроку

Наличие ОК в конце главы

-

6

Среда программирования

Visual Basic

АВС Pascal

Pascal

Pascal

7

Подбор заданий, учитывающий дифференциальный подход к учащимся

-

+

+

+

8

Наличие УМК, ЦОР

+

+

+

+

9

Наличие контрольно - измерительных материалов;

+

+

Не знаю

+

10

Результативность в ЕГЭ и ГИА.

-

+

-

+

Из анализа можно сделать вывод, что все рассмотренные мною учебники отражают стандарт основного образования 2004 года и обеспечивают планированные результаты по теме «Обработка массивов». Однако учебники авторов Н. Д. Угриновича, Ю.А Быкадорова не дают возможность подготовки учащихся к сдачи ЕГЭ и ОГЭ.


3. Конспект урока по решению задач на тему «Обработка массива»

Урок по теме «Массивы. Одномерные массивы» 9 класс

Цель урока:

  • Образовательная: Создание условий для формирования понятия массива, основных алгоритмов обработки массива.

  • Развивающая: формирование умения описывать массив, выделять элементы массивы и обрабатывать одномерные массивы на Паскале.

  • Воспитательная: Воспитание потребности обосновывать свою точку зрения, задавать вопросы, слушать и слышать окружающих.

  • Задачи урока:

  • Повторить особенности работы с циклами.

  • Познакомить уч-ся с понятием «массивы», «одномерные массивы», изучить свойства массива.

  • Научить уч-ся формировать массивы в программах; применять их при составлении программ

Оборудование: проектор, ПК.

Тип урока: изучение нового материала.

Ход урока


  1. Организационный момент. (1 минуты)

  2. Актуализация знаний. (9 минут)

Работа происходит в гетерогенных группах (смешанных) группах. Разделение происходит путем вытягивания жетона определенного цвета (к,с,ж,з), после чего образуются команды, участникам которой достались жетоны соответствующих цветов. Каждая команда состоит из 4-5 человек. Учитель следит за тем, чтобы в каждой группе присутствовали учащиеся с разными когнитивными стилями и при необходимости может изменить состав групп. Результаты работы каждой группы мы зафиксируем в таблице, а затем постараемся выбрать победителя.

А) Задания командам (2 минуты):

  • Придумать название команды, девиз

  • На листе регистрации вписать участников каждой команды под соответствующим номером

Представление команд-участников (2 минуты)

У вас на столах имеются карточки с заданиями, которые вы должны выполнить.

B) Задание на циклы (7 минут)

  • Установите соответствие (за каждое правильное соответствие - 1 балл)

Цикл с предусловием

Методика изучения темы «Обработка массивов» при подготовке к ЕГЭ по информатике и ИКТ

Цикл с постусловием



Методика изучения темы «Обработка массивов» при подготовке к ЕГЭ по информатике и ИКТ

Цикл с параметром

Методика изучения темы «Обработка массивов» при подготовке к ЕГЭ по информатике и ИКТ


  • Определите значение целочисленной переменной S после выполнения операторов (2 балла):

S:=128;

for i:=1 to 4 do

S:=S div 2;

Writeln (s);

Ответ. S=8

Постройте блок-схему к этой части программы.

  • Найдите ошибки в программе

Вывести четные числа из заданного промежутка [a,b] (каждую правильно найденную ошибку 1 балл, всего - 3 балла)

Program 2pr;
Vara,b: integer;
Begin
Writeln ( 'Введитеграницыпромежутка, a<b:');

readln (a,b);
repeat

If a mod 2=1 then write (i:5);
a:=a+1;
Until aReadln;
End.

  1. Выход на тему урока, целеполагание (3 минуты)

Итак, ребята, у нас имеется несколько команд, которые образуют массивы, элементами которых являетесь вы, как участники.

  • Ребята, а вы встречались с этим понятием на каком -либо предмете или в жизни?

  • (В географии, например жилой массив, горный массив, лесной массив, информационный массив).

  • А сегодня на уроке, мы узнаем как связано понятие «массив» с предметом информатика. Давайте вместе попробуем сформулировать те вопросы, на которые нам предстоит найти ответы в течение урока

  • Что такое массив в языке программирования?

  • Какие характеристики имеет массив?

  • Как описать массив на языке Паскаль?

  • Какие операции можно производить с элементами массива?

  1. Изучение нового материала (15 минут)

Записываем в тетрадях дату и тему урока «Массивы»

Массив - множество однотипных элементов, объединенных общим именем и занимающим в компьютере определенную область памяти.

Массив имеет следующие свойства (презентация):

Свойства массива:

  • Массив имеет имя - по правилам языка;

  • Массив имеет размер - кол-во элементов в массиве;

  • Массив имеет размерность - кол-во индексов, необходимых для однозначной идентификации элементов массива;

Массивы, элементы которых определяет один индекс, называют одномерными.

Обращение к элементам массива: Имя [номер элемента в массиве]

Приведите примеры массива (полка с книгами, телефонный справочник, список класса в журнале и т.д.)

  • Почему данные последовательности можно назвать массивом (содержат однотипные элементы)

  • Какими свойствами обладают массивы (имя, тип элементов, размер, размерность )

  • Какую алгоритмическую конструкцию используют при обработке массива?

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

Обратитесь к опорному листу. Внимательно изучите таблицу условных обозначений элементов массива в Pascal и попытайтесь самостоятельно описать массивы (время выполнения 3-4 минуты).

Условные обозначения элементов массива на языке Pascal

Обозначение

Смысл

А[1..10]

Массив с именем А и размером 10

ST[1..R], R=7

Массив с именем ST, состоящий из 7 элементов

A[3]

Третий элемент массива А

B23[6]

Шестой элемент массива В23

A[3]:=7

Третьему элементу массива А присвоено значение 7

L[2]:=0

Значение второго элемента массива L равно 0

F[I]

I - тый элемент массива F

Описание массива на языке Паскаль.

Вспомните, в каком разделе программы описываются переменные, константы? (в разделе Var).

Массив также задаётся в разделе Var. Запишите формат описания:

Имя массива: array [размер]ofтип данных;

(гдеarray и of - ключевые слова, размер: [начальный индекс. . конечный индекс ])

Пример:spisok:array [1..5] ofstring; (массив с именем spisok может вместить 5 элементов строкового типа).

  1. Закрепление материала. Работа с ПК. (5-7 минут)

Задание: запустите Pascal АВС и откройте файл по адресу shar:\учебная\9 класс\sorevn.pas. Измените программу таким образом, чтобы она стала работоспособной

(Текст программы на языке Pascal:

program basket;

usescrt;

var

N,i,k:integer;

BEGIN

Clrscr;

writeln('Введите количество учеников');

readln(N);

writeln('Введите фамилию и рост ученика');

for i:=1 to N do

begin

write('fam[',i,']= ');

read(fam[i]);

write('rost[',i,']= ');

readln(rost[i]);

end;

k:=0;

for i:=1 to N do

ifrost[i]>=170 then begin

k:=k+1;

kom[k]:=fam[i];

end;

if k=0 then

writeln('кандидатовнет')

else

writeln('Список претендентов в сборную школы');

Writeln;

for i:=1 to k do

writeln(kom[i]);

readln

end. )

(ученики, советуясь и помогая друг другу, дописывают недостающие строки программы в раздел var

fam:array[1..10] of string;

rost:array[1..10] of integer;

kom:array[1..10] of string; ,

вводят данные и получают результат)

Так почему не работала программа? (учащиеся отвечают) Правильно. Потому что в ней не были описаны массивы.

  1. Итог урока (2 - 3 минуты)

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

  1. Постановка Д/З. (1-2 минуты)

  • Прочитать конспект, разобраться и запомнить определение массива, его свойства, описание в программе.

  • Составить 5 вопросов по данной теме (знать ответ на каждый вопрос).


4. Примеры задач на тему «Обработка массива»

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

Задание_1.Заполнить массив А размером 10 с помощью оператора ввода данных с клавиатуры

Programp1;

Заголовок программы.

VAR A: array [1..10] OF INTEGER;

Описание массива целых чисел.

I: INTEGER;

Описание счетчика цикла.

BEGIN

Начало блока операторов.

FOR I:=1 TO 10 DO begin

Организация цикла.

write ('Введите', I , '-й элемент');

Сообщение на экране дисплея.

readln (A[I]);

Оператор ввода элемента массива.

end;

Конец цикла.

Readln;

Задержка изображения на экране.

END.

Конец программы.

Задание_2. Заполнить массив с помощью датчика случайных чисел и вывести элементов в строку.

Program p2;

VAR A: array [1..10] OF INTEGER;

I: INTEGER;

BEGIN

RANDOMIZE;

FOR I:=1 TO 10 DO begin

A[I]:= RANDOM(90)+10;

WRITE (A[I], ' ');

end;

Writeln; {переводкурсора}

Readln;

END.

Заголовокпрограммы.

Описаниемассивацелыхчисел.

Описаниесчетчикацикла.

Начало блока операторов.

Инициализация генератора случайных чисел.

Организация цикла.

Присвоение элементу массива случ.числа.

Вывод эл. массива (курсор остается в строке)

Конец цикла

Перевод курсора на новую строку

Задержка изображения на экране.

Конец программы.

На следующем этапе учащиеся разбирают готовые программы и отвечают на поставленный в задании вопрос. Несколько заданий разбираем вместе с учащимися.

Задание_4. Сколько элементов массива B будут иметь положительные значения?

for n:=1 to 100 do
A[n]:=n-10;
for n:=1 to 100 do
B[n]:=A[n]*n;



  1. 10 2) 50 3) 90 4) 100

Алгоритм решения (устно):

  1. Составим частичную трассировочную таблицу для первого цикла:

А={-9, -8, …-1, 0, 1, 2, ….90}- массив содержит 90 положительных чисел.

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

  2. Ответ = 3

Задание_5.Чему будут равны элементы этого массива после выполнения фрагмента

программы?

for i:=0 to 9 do A[i]:=9-i;

for i:=0 to 4 do begin

k:=A[i];

A[i]:=A[9-i];

A[9-i]:=k; end;

Ответ: 0 1 2 3 4 5 6 7 8 9

Алгоритм решения:

Составим трассировочную таблицу. Во второй строке таблицы запишем исходное состояние массива. В третьей строке - новое значение массива после выполнение второго цикла. Вспомогательная переменная k используется для хранения текущего элемента массива во время обмена значениями двух переменных.

I=0

1

2

3

4

5

6

7

8

9

A[i]=9

8

7

6

5

4

3

2

1

0

A[i]=0

1

2

3

4

5

6

7

8

9

Задание_6.Значения элементов массива A[1..15] задаются с помощью следующего фрагмента программы. Какиезначениябудутприсвоеныэлементам A[5], A[8]?

for n:=1 to 15 do
A[n]:=sqr(n);
for n:=1 to 15 do begin

if n mod 2<>0

then А[n] := sqrt(A[n])

else A[n] := A[1];

end;

Алгоритм решения:

Составим частичную трассировочную таблицу.

N=1

2

3

4

5

6

7

8

A[n]=1

4

9

16

25

36

49

64

A[n]=1




5



1

Если индекс элемента является нечетным числом, то новое значение элемента - квадратный корень из исходного элемента массива, в противном случае - становится равным первому элементу(1).

Ответ A[5]=5, A[8]=1

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

Задание_7.Найти среднее значение элементов массива.

Алгоритм:

  1. Введем переменную Sum, которая будет хранить сумму элементов массива. До выполнения цикла эта переменная должна быть равна 0.

  2. Затем в цикле просуммируем элементы массива.

  3. И когда цикл отработает, разделим полученное значение суммы на количество элементов массива. Полученное значение присвоим переменной Sred.

Program pr_7;

VAR A:array [1..10] OF REAL;

I: INTEGER;

sum, sred : real;

BEGIN

for i:=1 to 10 do read(A[i]);

Sum:=0;

fori:=1 TO 10 DO

sum:=sum+A[i];

Sred:=sum/10;

Writeln("Среднееарифм.=",sred:8:2);

END.

Задание_8.Подсчитать количество отрицательных элементов массива.

Алгоритм:

  1. Введем переменную kol, которую будем использовать для подсчета количества отрицательных элементов массива. До выполнения цикла эта переменная должна быть равна 0.

  2. Затем в цикле проверяем элементы массива, и если очередной элемент отрицательный, то переменную kol увеличиваем на 1.

  3. Когда цикл завершит свою работу, выведем значение переменной kol на экран дисплея.

Program pr_8;

VAR A:array [1..10] OF REAL;

Kol, I: INTEGER;

BEGIN

for i:=1 to 10 do read(A[i]);

kol:=0;

FOR I:=1 TO 10 DO

If A[i]<0 then kol:=kol+1;

Writeln("Кол. отриц=", kol);

END.

Задание_9.Найти максимальный элемент массива и его порядковый номер.

Program pr_9;

const N=10;

var A:array[1..N] of integer;

i, max:integer;

begin

writeln("Введитеэлементы:");

for i:=1 to N do read(A[i]);

max:=a[1];

while (i

i:= i + 1;

if max < a[i] then max:=a[i];

end;

writeln("max=",maх);

end.

Алгоритм поиска максимального элемента в неупорядоченном массиве:

  • Установить счетчик равным 1 (i = 1).

  • Положим значение текущего максимума равным первому исследуемому элементу (max = a1).

  • Если исследованы еще не все элементы (i < n), то перейти к шагу 4, иначе перейти к шагу 7 .

  • Перейти к следующему элементу (увеличить i на единицу).

  • Если рассматриваемый элемент больше, чем текущий максимум (ai > max), то значение ai присвоить max.

  • Перейти к шагу 3.

  • Вывести max.

Задание_10.Найти в массиве элемент, равный числу К, которое вводится с клавиатуры. Вывести номер элемента или сообщение, что такого числа нет в массиве.

Алгоритм:

  1. Введем переменную nom, в которой запомним номер элемента, равный K.

  2. Затем в цикле будем проверять каждый элемент, и если он равен K, то сохраним его индекс в переменной nom.

  3. После завершения работы цикла необходимо проверить значение в переменной nom. Если оно осталось равным 0, то такого числа мы не встретили, иначе переменная хранит номер элемента массива. Выведем соответствующее сообщение.

Program pr_10;

var A:array[1..10] of integer;

i, k, nom: integer;

begin

writeln("Введитеэлементы:");

for i:=1 to 10 do read(A[i]);

writeln("ВведитеК "); readln(k);

nom:=0;

for i:=1 to N do

if a[i]=k then nom:=I;

if nom=0 then

writeln("Нетэлемента")

else

writeln(«Номер=», nom);

end.

Задание_11.Найти минимальный четный элемент в целочисленном массиве размера 15.

Program pr_11;

var A:array[1..15] of integer;

i, flag, min: integer;

begin

writeln("Введитеэлементы:");

for i:=1 to 15 do read(A[i]);

flag:=0;

for i:=1 to 15 do

if A[i] mod 2=0 then

if flag=0 then begin

min:=A[i];

flag:=1;

end

else

if A[i] < min then min:=A[i];

if flag=0 then

writeln("Нетчетных")

else writeln(min);

end.

Обычно для инициализации переменных минимума/ максимума выбирают первый элемент массива, но в предложенной задаче это правило не работает. Поэтому будем использовать переменную flag, которая позволит отследить ситуацию «встретилось четное число или нет».

Алгоритм:

  1. Присвоим переменной flag значение 0.

  2. В цикле будем осуществлять поиск четных элементов. Если такой элемент встретился, то проверим состояние переменной flag.

  3. Если flag=0, то мы встретили первое четное число, которое надо запомнить в переменной min и переменной flag присвоить значение 1(в переменной min уже есть значение для сравнения).

Если flag = 1, то сравниваем элемент массива с переменной min и, если элемент меньше, чем значение min, запоминаем его в переменной min.

  1. После завершения цикла проверяем переменную flag и, в зависимости от ее значения, выводим минимум или сообщение, что четных чисел в массиве нет.

Задание_12.Осуществить циклический сдвиг элементов массива вправо на k элементов. K - вводится с клавиатуры.

Пример:

Исходные данные: А={2_13_5_ 67_ 4_ 9_ 23}, k=2

Результат: А={9_ 23_ 2_ 13_ 5_ 67_ 4 }

Алгоритм:

НеобходимоК раз выполнить следующие действия:

  • Запомнить в переменной rab последний элемент массива.

  • Сдвинуть все элементы вправо на одну позицию, для этого организуем цикл с 15 до 2, и присваиваем очередному элементу значение предыдущего.

  • По завершению цикла необходимо первому элементу присвоить значение переменной rab.

Program pr_12;

var A:array[1..15] of integer;

i, k, t, rab: integer;

begin

writeln("Введитеэлементы:");

for i:=1 to 15 do readln(A[i]);

writeln("Введите K:"); readln(k);

for i:=1 to k do begin

rab:= A[15];

for t:=15 downto 2 do

A[t]:=A[t-1];

A[1]:=rab;

end;

for i:=1 to 15 do write(A[i],"_");

End.

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

Задание_14. Дан целочисленный массив из 65 элементов, которые могут принимать значения от -3000 до 3000.

Допишите фрагмент программы вместо многоточия, который позволит найти и вывести максимальное значение среди элементов массива, которые делятся на 3 или 7. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого кратно 3 или 7. Запрещается использовать переменные, не объявленные в программе, но разрешается не использовать часть из них.

Const N=65;

Var a: array[1..N] of integer;

i, j, max: integer;

Begin

For i:=1 to N do readln(a[i]);

………….

End.

Алгоритм:

При решении задачи можно воспользуемся типовым алгоритмом обработки массива: поиск максимального элемента. Однако необходимо правильно инициализировать начальное значение максимума: это число должно делиться на 3 или 7.

Так как нам известны границы значений элементов и гарантируется, что хотя бы один такой элемент есть в массиве, то за начальное значение можно взять нижнюю границу(-3000).

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

Решение:

Max:= - 3000;

For i := 1 to N do

If ((a[i] mod 3=0) or (a[i] mod 7=0))

and (max

then max:=a[i];

Writeln(max);

Задание_15. Опишите алгоритм поиска трех последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов.

Алгоритм решения задачи:

  • Введем числовые переменные Max и Trio, в которые занесем сумму первых трех элементов массива.

  • Затем в цикле, начиная с 4-го элемента, до конца массива выполняем следующие действия:

    • прибавляем к переменной Trio очередной элемент массива,

    • вычитаем из нее первый элемент четверки, сумму которой она содержит,

    • сравниваем результат со значением переменной Max; если он больше, то заносим его в переменную Max.

    • По окончании работы алгоритма выводим переменную Max.

Решение:

Program z15;

const N=30;

var a: array[1..N] of integer;

Max, Trio, I : integer;

begin

Trio:=a[1]+a[2]+a[3]; Max:=Trio;

for i := 4 to N do begin

Trio:=Trio+a[i]-a[i-3];

if Trio>Max then

Max:=Trio; end;

writeln(Max); end.

Задание_16. Дан массив, содержащий 2014 неотрицательных целых чисел, не превышающих 10 000. Допишите фрагмент программы вместо многоточия, который позволит найти и вывести сумму всех содержащихся в массиве трёхзначных чисел, десятичная запись которых оканчивается на 9, но не на 99. Если таких чисел в массиве нет, программа должна вывести число -1. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

const N=2014;

var a: array [1..N] of integer;

i, j, s: integer;

begin

for i:=1 to N do readln(a[i]);

end.

Алгоритм решения задачи:

    • Введем числовую переменную S, в которой будем накапливать сумму подходящих под условие элементов массива. Начальное значение суммы=0.

    • Далее в цикле необходимо проверить, является ли число трехзначным и , если «да», то проверить следующие условия; оканчивается на 9, но не на 99. Для осуществления проверок необходимо использовать операцию нахождения остатка от деления.

    • После завершения работы цикла следует посмотреть на значение суммы. Если оно равно 0, то таких чисел не встретилось, а следовательно Sприсваиваем значение -1. Выводим ответ.

Решение:

s:=0;

for i:=1 to N do begin

if (100<=a[i]) and (a[i]<=999)

and (a[i] mod 10 = 9)

and (a[i] mod 100 <> 99)

then s := s + a[i]; end;

if s=0 then s:=-1; writeln(s);

Задание_17. Опишите на русском языке или на одном из языков программирования алгоритм поиска второго по величине (т.е. следующего по величине за максимальным) элемента в числовом массиве из 30 различных элементов.

Алгоритм решения задачи:

    • Введем числовые переменные Max1 и Max2, в которых будем хранить соответственно максимальный и следующий за максимальным элемент в уже просмотренной части массива.

    • Присвоим переменной Max1 большее из двух первых элементов массива, а Max2 - меньшее.

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

    • По окончании цикла переменная Max2 содержит второй по величине элемент массива.

Решение:

const N=30;

var a : array[1..N] of real;

Max1, Max2, i : real;

begin

Max1:=a[1]; Max2:=a[1];

if a[2]>Max1 then Max1:=a[2]

else Max2:=a[2];

for i:=3 to N do begin

if a[i] >Max1 then

begin

Max2:=Max1; Max1:=a[i];

end

else

if a[i]>Max2 then Max2:=a[i];

end;

writeln(Max2); end.

Задание_18. Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.

Program z18;

var a: array[1..30] of integer;

i, k, kMax: integer;

begin

for i:=1 to 30 do readln(A[i]);

k := 1; {число элементов в цепочке}

kMax := 1; {макс. кол-во в цепочке}

for i:=2 to 30 do begin

if A[i] = A[i-1] then k := k + 1

else {цепочка закончилась }

begin if k > kMax

then kMax := k;

k := 1;

end; end;

if k > kMax then

kMax := k; { если цепочка стоит в конце}

writeln(kMax);

end.



Заключение

В процессе выполнения работы была достигнута цель: совершенствование методики преподавания темы «Обработка массивов» в школьном курсе информатика и ИКТ через основные задачи: изучение теоретических основ решения задач, анализ изложения темы четырех учебников, разработка урока по теме «Массивы. Одномерные массивы» 9 класс и структурирование комплекта задач на тему.

В ходе работы была рассмотрена теория по теме «Обработка массивов». Следует обратить внимание на то, что изучая тему, учащиеся воспринимают данный материал тяжело и без желания, поэтому подробно необходимо изучать только сильным учащимся и тем, кто собирается сдавать ЕГЭ и ОГЭ. При изучении программирования необходимо приучить учащихся абсолютно точно по определенным фиксированным правилам записывать алгоритм. Поэтому с самого начала необходимо привить такие качества, как четкость, ясность, аккуратность в записях, предельную внимательность и сосредоточенность, особенно при работе на ЭВМ.

Мною были проанализированы 4 учебника по «Информатике и ИКТ 9 класс» авторов: Н. Д. Угриновича, Л. Л. Босовой А. Ю. Босовой, Ю.А, Быкадорова и И. Г. Семакина, Л. А. Залогова. Анализ показал, что в учебниках авторов Н. Д. Угриновича и Н. Д. Быкадорова тема «Обработка массивов» раскрыта не полностью или не изучается вовсе. Авторы учебников Семакин Л. А и Босова А. Ю рассматривают большое количество задач, как в учебнике, так и в рабочей тетради для отработки основных понятий и алгоритмов темы, что позволяет подготовиться к ЕГЭ и ОГЭ по информатике и ИКТ. К этим учебникам разработаны замечательные УМК и ЦОР, представлен наглядный материал в виде опорных конспектов. Доступность, логичность, последовательность изложения материала позволяет сильным ученикам познакомиться с ним и отработать все необходимые умения при составлении программ в среде программирования Pascal.

В работе представлен урок на тему «Массивы. Одномерные массивы» 9 класс. На этапе актуальность знаний ребята повторяют изученный ранее материал, работая в группах. Затем идет ввод понятия массив в информатике и ИКТ, опираясь на жизненный опыт ребят. После знакомства с основными свойствами массива идет закрепление материала, который предполагает изменить программу таким образом, чтобы она стала работоспособной. В итоге ребята находят ошибку и тестируют программу в среде ABCPascal. В ходе урока была достигнута цель урока: Создание условий для формирования понятия массива, основных алгоритмов обработки массивов.

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

В заключении хочется отметить, что данная работа поможет многим учителям совершенствовать методику обучения школьников по обработке массивов в языке программирования Pascal и подготовки к ЕГЭ и ОГЭ.















Список использованных источников


  1. Федеральный государственный образовательный стандарт среднего (полного) общего образования [Электронный ресурс] // Режим доступа standart.edu.ru/catalog.aspx?CatalogId=6408

  2. Лапчик М.П. и др. Методика преподавания информатики: Учеб. пособие для студ. пед. Вузов [Текст] / М.П. Лапчик, И.Г. Семакин, Е.К. Хеннер; Под общей ред. М. П. Лапчика. - М.: Издательский центр «Академия», 2012. Режим доступа businessfor.ru/m/frtyh/metodika_prepodavanija_informatiki_-_lapchik.html

  3. Андреева Е. В., Босова Л. Л., Фалина И. Н Математические основы информатики. Элективный курс: Учебное пособие - М.: БИНОМ. Лаборатория знаний, 2005. - 328 с.

  4. Бешенков С.А. Информатика. Систематический курс: учебник для 10 класса / С.А. Бешенков, Е.А. Ракитина. - М.: БИНОМ. Лаборатория знаний, 2006. - 432 с.

  5. Угринович Н.Д. Информатика и ИКТ. Базовый уровень: учебник для 9 класса / Н.Д. Угринович. - М.: БИНОМ. Лаборатория знаний, 2010. - 295 с.

  6. Л. Л. Босова Информатика и ИКТ. 9 кл.: учеб. для общеобразоват. учреждений . - М.: Бином, Лаборатория знаний, 2013.- 336с.: ил.

  7. Быкадоров Ю. А. Информатика и ИКТ. 9 кл.: учеб. для общеобразоват. Учреждений/Ю. А. Быкадоров. - М.: Дрофа, 2013.-336с.: ил.

  8. Семакин И. Г. Информатика и ИКТ: учебник для 9 класса / И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова. -5-е изд. - М.: БИНОМ. Лаборатория знаний, 2012. - 341 с.: ил.

  9. Босова Л.Л. Информатика и ИКТ: учебник для 9 класса часть 1 - М.: БИНОМ. Лаборатория знаний, 2012. - 244 с.: ил.

  10. Босова Л.Л. Уроки информатики в 9 классе: методическое пособие / Л.Л. Босова, А.Ю. Босова. - 2-е изд. - М.: БИНОМ. Лаборатория знаний, 2012. - 264 с.: ил.



© 2010-2022