Одномерные массивы.
Тип урока: объяснение нового материала и практическая отработка умений.
Цели урока:
Образовательные:
Развивающие:
Воспитательные:
Необходимое оборудование и материалы: компьютер, проектор, Microsoft Office PowerPoint, среда программирования QBasic.
План урока:
Ход урока
I. Актуализация знаний.
(Приложение)
ЗАДАЧА. Составьте алгоритм и программу нахождения суммы 10 произвольных чисел.
Ответьте на вопросы:
Решение.

В цикле программы по запросу INPUT вводится число, которое помещается в область памяти с именем X и прибавляет его к текущему значению суммы S. Цикл повторяется 10 раз. Но программа не сохраняет все заданные значения X! Если в программе необходимо сохранить эти значения, то понадобится использовать столько переменных, сколько вводится значений. Это не очень удобно:
CLS
INPUT X1
INPUT X2
…
INPUT X10
S=X1 +X2+…+X10
PRINT “S=“; S
END
В подобной ситуации можно воспользоваться переменными с индексами. Такие переменные имеют одно и тоже имя, но разные индексы: X(1), X(2), X(3) …
II. Новый материал:
Наглядно такие переменные можно представить в виде таблицы:
Пример 1.
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
15 |
-2 |
16 |
19 |
0 |
3 |
-7 |
10 |
Это линейная таблица, где заданы значения переменных и каждой переменной поставлен в соответствие его порядковый номер (индекс).
Пример 2. На метеостанции измеряли температуру воздуха каждый час в течении суток:
|
0 |
1 |
2 |
3 |
… |
22 |
23 |
|
17 |
16 |
15,5 |
14 |
… |
18 |
17,5 |
Это линейная таблица, где каждому элементу соответствует свой порядковый номер или индекс. Такую таблицу можно назвать массив.
МАССИВ – это упорядоченная совокупность однотипных данных, каждому из которых соответствует свой порядковый номер (индекс).
Массив характеризуется именем, размерностью и размером.
Итак, имя массиву даете вы!
Для описания массива языке QBasic существует оператор
DIM имя (верхняя граница)
Например,
DIM B(7) или DIM B(8)
DIM temp(23)
В памяти компьютера:
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Оператор DIM пишется в начале программы!
Если в задаче используются несколько массивов, то их можно описать в одном операторе DIM через запятую.
Наша задача – сумма 10 чисел будет решаться так:
|
|
CLS |
III. Закрепление темы.
Дана задача (составляем блок-схемы вместе с детьми на уроке и решаем ее на компьютерах):
Дан массив В(20). Найти произведение отрицательных элементов массива, если таковых не было, то напечатать сообщение об этом.
IV. Домашнее задание:
V. Итог урока:
Сегодня мы с вами познакомились с новым понятием программирования – массивы, научились решать некоторые стандартные задачи на одномерные массивы. Задач на обработку массивов данных встречается очень много и мы должны научится решать эти задачи, в том числе и с помощью языков программирования.
Оценки за урок.
Типовые задачи обработки массивов
Заполнение массива
Значения массива могут задаваться вводом с клавиатуры, чтением из файла или вычислением в программе. В некоторых задачах статистического характера требуется заполнять массивы случайными числами.
Пример 1. Заполнить массив равномерно распределенными целыми случайными числами в диапазоне от 0 до 100.

Со стандартной функцией Random (x) вы уже знакомы. Напомним, что она возвращает псевдослучайное целое число в диапазоне от 0 до х - 1.
Если требуется изменить диапазон случайных чисел, то это всегда можно сделать путем сдвига. Например, если нужно получить числа в диапазоне от -50 до 50, то в программе пишется оператор присваивания:
![]()
Для получения вещественных случайных чисел используется функция Random без аргумента. Она возвращает случайные дробные значения в диапазоне [О,1). С помощью сдвига и множителя эти значения можно привести к любому диапазону. Например, следующее выражение будет вычислять случайное вещественное число в диапазоне значений от —5 до 5: 10*Random-5.
Пример 2. Заполнить верхнетреугольную матрицу указанного вида и вывести ее на экран.

Пояснение: для элементов M[i, j] матрицы M, расположенных в верхнем треугольнике (включая диагональ), выполняется следующее соотношение между индексами: j ≤ i.
Пример 3. Выбор максимального элемента. В одномерном массиве X из примера 1 требуется определить наибольшее значение среди значений элементов и его порядковый номер (индекс).
Идея алгоритма решения этой задачи следующая: чтобы в переменной Хтах получить максимальное значение массива X, сначала в нее заносится первое значение массива Х[1]. Затем значение Хmах поочередно сравнивается с остальными элементами массива, и каждое значение, большее Хmах, присваивается этой переменной. Для получения номера максимального элемента массива в целочисленной переменной imax следует записывать в нее номер элемента массива X одновременно с занесением значения в Хmах. На Алгоритмическом языке это запишется так:

Заметим, что если в массиве X несколько значений, равных максимальному, то в imax будет получен первый номер из этих элементов. Чтобы получить номер последнего элемента, равного максимальному, нужно в ветвлении если заменить знак отношения > на >=. Для нахождение минимального элемента массива достаточно заменить знак отношения «больше» на «меньше».
Оформим в виде процедуры на Паскале подпрограмму поиска максимального элемента в одномерном массиве. Заполним одномерный массив случайными числами (как в примере 1). С помощью процедуры найдем в нем максимальное значение и индекс его первого вхождения в массив.

Процедура MaxArray имеет три параметра: исходный массив А, МахА — переменную для найденного максимального значения, k — переменную для индекса максимального значения. При обращении к процедуре им соответствуют фактические параметры: X, Хmax, imax. Размер массива определяется глобальной константой n, значение которой используется как в основной программе, так и в процедуре.
Пример 4. Сортировка массива. В одномерном массиве X из N элементов требуется произвести перестановку значений так, чтобы они расположились по возрастанию, т. е. X1 ≤ Х2 ≤ ... ≤ XN.
Существует целый класс алгоритмов сортировки. Ниже описан алгоритм, который называется методом пузырька.
Идея алгоритма: производится последовательное упорядочивание смежных пар элементов массива: Х1 и Х2, Х2 и Х3, . . ., ХN-1 и XN. В итоге максимальное значение переместится в XN. Затем ту же процедуру повторяют до ХN-1 и т. д., вплоть до цепочки из двух элементов Х1 и Х2. Такой алгоритм будет иметь структуру двух вложенных циклов, причем внутренний цикл переменной (сокращающейся) длины.

Для сортировки массива по убыванию значений достаточно заменить знак отношения «больше» на «меньше».
Запрограммируем на Паскале процедуру сортировки массива по возрастанию методом пузырька.


Пример 5.
В § 24 было рассмотрено описание двумерного массива, содержащего среднемесячные температуры за 10 лет, с 2001 по 2010 год. Определить, в каком году за этот период было самое теплое лето, т. е. в каком году была наибольшая средняя температура летних месяцев.
Идея решения: в одномерном массиве S получить средние температуры летних месяцев за каждый год из 10 лет. Затем найти номер наибольшего элемента в этом массиве, это и будет искомый год.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.