Тип урока: Практическая работа
Программно-дидактическое обеспечение: ПК. Локальная сеть. ОС Windows XP.Turbo Pascal.
Цели и задачи:
- познакомить учащихся с понятием массивов, одномерных массивов;
- научить работать с одномерными массивами по основным алгоритмам;
- провести проверочную работу по пройденному материалу;
- закрепить полученные знания и навыки при выполнении практических упражнений.
Требования к знаниям и умениям:
Учащиеся должны знать: алгоритм по обработке одномерного массива.
Учащиеся должны уметь:
- выполнять разработку алгоритма (программы) по обработке одномерного массива;
- применять свои знания на практике.
План занятия
- Организационный момент.1 мин
- Постановка целей и задач занятия. Ознакомление с планом занятия. 1 мин
- Объяснение нового материала. 10 мин
- Решение задач основных типов. 15 мин
- Практическая работа на закрепление одномерных массивов (самостоятельное выполнение): 15 мин
- Подведение итогов. Выставление оценок. 3 мин
Ход урока
Презентация к уроку (приложение)
- Объяснение нового материала.
Массивом называется совокупность элементов одинакового типа. Число элементов в массиве называется размерностью массива; каждый элемент массива задается своим порядковым номером в массиве – так называемым индексом. (слайд 1,2,3)
Примером массива может являться список фамилий учащихся одного класса, где каждый ученик однозначно определяется своим порядковым номером в списке (индексом в массиве).
Для создания типа массивов в языке Pascal используются служебные слова TYPE и ARRAY, позволяющие создать пользовательский тип данных «Массив». Каждому типу массивов присваивается собственное имя; элементы, относящиеся к данному массиву, описываются в операторе VAR как переменные его типа. (слайд 4)
Ввод и вывод элементов массива осуществляется в циклах. Индексы элементов массивов записываются в квадратных скобках.
Массивы, элементы которых однозначно определяются одним индексом, называются одномерными. В виде одномерного массива можно представить, например, урожайности различных полей одного хозяйства, где первому полю соответствует первое значение урожайности, второму полю – второе и т.д.; показатели успеваемости различных групп одного курса по определенному предмету, где каждой из групп соответствует свое значение среднего балла по результатам экзамена и др.
Язык Pascal допускает описание в программах одномерных массивов в следующем виде:
TYPE <Имя_типа_массива>=ARRAY [<Диапазон_индексов>] OF <Тип>,
где TYPE - служебное слово, используемое для создания пользовательского типа данных;
ARRAY … OF - служебные слова для описания массивов (“Массив…из”); (слайд 4)
<Имя_типа_массива> - задаваемое пользователем имя типа массива (требования к именам типов совпадают с требованиями к именам переменных);
<Диапазон_индексов> – диапазон изменения индексов массива. В качестве данного диапазона может выступить любой порядковый тип, кроме LONGINT. Чаще всего используют тип-диапазон, в котором задают границы изменения индексов;
<Тип> - тип элементов массива, например, REAL, INTEGER, CHAR и др.
Примеры описания типа массивов:
TYPE М=ARRAY [1..10] OF INTEGER;
TYPE AR=ARRAY [0..15] OF REAL;
TYPE VТ=ARRAY [-5..5] OF SINGLE;
TYPE GRUP=ARRAY [1..27] OF STRING[10].
Переменные, относящиеся к тому или иному типу массивов, должны быть соответственно объявлены в разделе описания переменных.
Например:
VAR REZ:M;
VAR P:AR;
VAR A:VТ;
VAR FIO:GRUP.
Можно также описать переменную как непосредственно имеющую тип массива, например:
VAR REZ:ARRAY [1..10] OF INTEGER;
При обращении к элементам массива в тексте программы обязательно требуется указывать их порядковый номер в массиве, например, REZ[1], POLE[0], A[5], FIO[i] (где i принадлежит диапазону изменения индексов массива).
Основные задачи по работе с одномерными массивами:
- Нахождение минимального (максимального) элемента массива;
- Нахождение суммы (произведения) элементов массива;
- Нахождение количества элементов массива по определенному условию;
- Упорядочивание элементов массива по убыванию (возрастанию).
- Решение задач основных типов.
Рассмотрим перечисленные типы задач на следующих примерах.
Пример 1. Заполнить массив случайным образом. (слайд 8).
Пример 2. Нахождение наибольшего элемента в массиве
Известно, что 16 детишек ясельной группы разобрали все кубики. Определить у какого ребенка наибольшее количество кубиков.
Для описания списка количества кубиков у детишек воспользуемся типом массива KUB, для задания количества кубиков каждого из ребенка – переменной SOTR. Количество кубиков вводиться с клавиатуры.
Текст программы к приведенному примеру:
Program pr2;
Type KUB=array[1..16] of real;
Var i:integer;sotr:KUB;
Max: real;Begin
For i:=1 to 16 do
Begin
Writeln (‘Введите количество кубиков ’, i,’ –го ребенка, шт.’);
Readln(sotr[i]);
End;
Max:=sotr[1];
For i:=2 to 16 do if max<sotr[i] then max:=sotr[i];
Writeln(‘Наибольшее количество кубиков=’,max:10:2,’ шт.’);
End.
В данной программе реализован следующий алгоритм. В начальный момент предполагается, что наибольшее количество кубиков у первого из ребят. Далее эта величина сравнивается с количеством кубиков остальных ребят, и, если найдется количество, превосходящее, чем предполагаемый максимум, то переменной Мах присваивается это значение.
Аналогично может быть найден и наименьший элемент в массиве. Для этого достаточно заменить в изложенной программе условие max<sotr[i] на условие min>sotr[i], где i меняется от 1 до 1 до 16, min – переменная типа REAL.
Пример 3. Дан одномерный массив. Найти количество элементов массива, равных заданному k. (Приложение 1)
Посмотрим, что получилось. (Приложение 3)
Пример 4. Дан одномерный массив. Упорядочить его элементы в порядке возрастания. {Сортировка массива выбором (в порядке возрастания). Идея решения: пусть часть массива (по K-й элемент включительно) отсортирована. Нужно найти в неотсортированной части массива минимальный элемент и поменять местами с (K+1)-м}
Program Sortirovka;
Var N, I, J, K, Pr : Integer; A : Array [1..30] Of Integer;
Begin
Write('Введите количество элементов: ');
ReadLn(N);
For I := 1 To N Do
Begin
Write('Введите A[', I, '] ');
Readln(A[I]);
End;
WriteLn;
For I := 1 To N - 1 Do
Begin
K:= I;
For J := I + 1 To N Do
If A[J] ;
Pr := A[I];
A[I] := A[K];
A[K] := Pr;
End;
For I := 1 To N Do
Write(A[I], ' ');
End.
Тест: N = 10; элементы массива - 1, 2, 2, 2, -1, 1, 0, 14, 5, 3.
Ответ: -1, -1, 0, 1, 2, 2, 2, 3, 5, 14.
- Практическая работа на закрепление одномерных массивов.
Задание 1: Определить результат выполнения алгоритма, представленного в виде блок-схемы:
Всем учащимся раздаются карточки (приложение 2) .
Задание 2:Найти ошибки в написании программы:
Program pr_2:
Var mas:array[1..13] of real;I:integer;
Min:real;Begin
For I:=1 to 13 do
Begin Write(‘введите элемент массива’);
Readln(mas[i]);
End:
Max:=mas[6]; min:=mas[12];
For I:=7 to 8 do
If max<mas[i] then max:=mas[i];
For I:=1 to 2 do
If min>mas[i] then min:=mas[i];
Writeln(‘самая высокая температура летом’, max);
Writeln(‘самая низкая температура зимой’, min);
End.
Задание 3: Дан одномерный массив А(N), N=25, заданный случайным образом. Вычислить сумму положительных элементов данного массива.
- Подведение итогов. Выставление оценок.