Методическая разработка урока по информатике 11 класса на тему: « Структурированные данные (переменные). Линейные массивы».
Разработал:
Тема урока: Структурированные данные (переменные). Линейные массивы. Основные приемы обработки массивов.
Цель урока: познакомить учащихся с понятием структурированных переменных, их особенностями, ввести понятие массива, рассмотреть приемы работы с данными типа массив, познакомить учащихся с типовыми способами обработки массивов.
Ход урока:
Урок начинаем с объяснения понятия структурированных данных.
Структурированными данными называют такие данные, которые состоят из других типов данных, то есть структурированные данные имеют в своем составе некоторые компоненты.
К ним относятся, в частности, переменные типов:
Array – массивы (табличные данные);
String – строковые величины;
Record – данные типа множество;
Set – данные типа множество;
File – данные типа файл.
Более подробно с этими типами данных мы познакомимся на дальнейших уроках.
Нужно кратко объяснить учащимся, что такие переменные могут создаваться по очень сложным формулам, поэтому для них нужно различать такие понятия, как:
Переменная – целая – воспринимается как нечто целое, то есть как совокупность всех компонентов.
Переменная – составляющая – переменные, входящие в переменную целую как ее компоненты, но могут вызываться и обрабатываться самостоятельно. Такие компоненты используются в типах Array и Record.
Затем переходим к введению типа данных – массив.
Массив можно назвать совокупностью фиксированного числа одинаковых компонентов, каждый из которых снабжается индексом. Для того чтобы описать массив, необходимо задать тип компонента и тип индекса (индекс целого типа).
Существуют несколько видов массива. Обычно говорят о линейных (одномерных) массивах – компоненты в таких массивах имеют 1 индекс.
Двумерные (прямоугольные) массивы – компоненты таких массивов определяются двумя индексами.
Многомерные – компоненты таких массивов определяются тремя и более индексами.
Мы с вами будем рассматривать только линейные и двумерные массивы.
Затем переходим к описанию массивов и рассмотрению способов их обработки, а также общей структуры программы работы с массивами.
А) Линейные (одномерные) массивы
Итак, как мы уже говорили, линейным (одномерным) массивом можно назвать совокупность одинаковых компонентов, имеющих один индекс.
Для обозначения типа данных – массив в Паскале есть специальное служебное слово Array.
Описание линейного массива может быть выполнено двумя способами:
Описание через введение типа данных пользователя:
Type наименование типа = array [диапазон индекса]
of тип компонента;
Var имя массива: наименование типа;
Например:
Type mass = array [1…10] of real;
Var f: mass;
var a: array [1…15] of integer;
В практике работы по обработке массивов могут встречаться различные задачи, которые могут быть сведены в несколько наиболее характерных групп:
поиск элементов;
математическая обработка элементов (суммирование и т. д.);
замена или преобразование элементов массива по какому – то правилу;
преобразование массива;
удаление или вставка элементов массива и некоторые другие задачи.
Все эти типы задач относятся как к линейным, так и к многомерным массивам, с некоторыми исключениями.
Общая схема (структура) программы для обработки массива в целом одинакова для задачи любого типа. Она состоит из следующих основных блоков:
Б [pic] лок ввода значений элементов массива.
Объясняем, как осуществляется ввод данных.
Так как элементы массива имеют индексы, то мы можем использовать оператор цикла для автоматической смены индекса массива.
Тогда блок ввода может выглядеть так:
Begin
{** Ввод размера массива **}
write (‘Введите размер массива’);
readln(n);
{** Ввод значений элементов массива**}
for I:=1 to n do
begin
write(‘Введите a[‘,I,’]’);
read(a[I]);
clrscr;
end;
Рассматриваем работу этого блока. Сообщаем учащимся, что для заполнения массива может быть также использовано какое – либо правило (формула) или генератор случайных чисел. Ввод данных, таким, образом мы рассмотрим позже, при решении задач.
Б [pic] лок обработки массива – это основной блок, в котором производится обработка данных массива, то есть решение одной из перечисленных выше задач. Например:
for I:= 1 to n do
if a[I] mod 2 = 0 then {** вывод результатов на печать**}
writeln(‘a[‘,I,’]=’,a[I]:8, ‘I=’,I);
Б [pic] лок вывода результатов обработки – в зависимости от того, что нужно вывести на экран, может быть аналогичен выводу исходного массива или каким – либо иным.
После того как выяснена структура программы и разобрана работа всех ее блоков, приводим программу в целом.
Найти все четные по значению элементы массива из n целых чисел. Вывести на печать значения элементов и их индекс. Ввод элементов массива производится с клавиатуры.
Program massiv (input, jutput);
Uses crt;
Var a: array [1…1000] of integer; I, n: integer;
Begin
{** Ввод размера массива **}
write (‘Введите размер массива’);
readln (n)
{** Ввод значений элементов массива**}
for I:=1 to n do
begin
write(‘Введите a[‘,I,’]’);
read(a[I]);
clrscr;
end;
{**Поиск нужных элементов **}
for I:=1 to n do
if a[I] mod 2 = 0 then {** вывод результатов на печать**}
writeln(‘a[‘,I,’]=’,a[I]:8, ‘I=’,I);
{** организация задержки окна вывода**}
repeat until keypressed;
end.
Примечание:
Пустой оператор – Repeat в связке с процедурой keypressed используется для того, чтобы предотвратить переход в окно редактирования после выполнения программы.
Алгоритм довольно прост. Ввод данных (элементов массива) производится с клавиатуры. В цикле заполняется массив, и затем в цикле последовательно просматриваются все элементы массива, с помощью операции определения остатка от деления mod определяется четность элемента (остатка от деления на 2=0) и найденные четные по значению элементы выводятся на печать (экран).
Далее задаем учащимся вопрос: « как нужно изменить программу, для того чтобы выдать на печать все четные по номеру элементы массива?»
Рассматриваем предлагаемые варианты. Исследуем достоинства и недостатки. В заключение, если нет правильного варианта, можно привести свой вариант
{Поиск нужных элементов и вывод их на печать}
I:=2;
While I<=n do
begin
Writeln (‘I=’,I:5,’b[‘,I,’]=’,b[I]:8:2);
I:=I+2;
end;
{организация задержки окна вывода}
Четность номера элемента задается с помощью приращения номера элемента на 2 в цикле с предусловием. У этой задачи могут быть и другие решения, с использованием других операторов и процедур.
Домашнее задание: конспект урока, выполнить задачу:
Найти наибольший элемент массива вещественных чисел а(n)