Планирование уроков на учебный год (ФГОС)



Урок 12
§8. Структурированные типы данных. Массивы




Содержание урока:

8.1. Общие сведения об одномерных массивах
8.2. Задачи поиска элемента с заданными свойствами
8.3. Проверка соответствия элементов массива некоторому условию. 8.4. Удаление и вставка элементов массива
8.5. Перестановка всёх элементов массива в обратном порядке. 8.6. Сортировка массива
САМОЕ ГЛАВНОЕ. Вопросы и задания
Материалы к уроку


liniya

8.3. Проверка соответствия элементов массива некоторому условию


Пример 5. Подсчёт количества элементов, удовлетворяющих некоторому условию.

Зачастую бывает важно выяснить, сколько элементов, обладающих определённым свойством, содержится в массиве. Для решения этой задачи следует:

1) присвоить нулевое значение переменной, введённой для подсчёта количества элементов, удовлетворяющих заданному условию (k := 0);
2) организовать просмотр всех элементов массива: если просматриваемый элемент удовлетворяет заданному условию, значение переменной k увеличивать на 1.

Фрагмент программы подсчёта количества элементов массива, например больших некоторого числа р, имеет вид:

Запишите полный текст программы и выполните её на компьютере для рассматриваемого в примере 8 массива а, состоящего из семи элементов, и числа р = 15.

Как модифицировать программу, чтобы можно было вычислить сумму элементов массива, ббльших некоторого числа р?

Пример 6. Проверка соответствия всех элементов массива некоторому условию.

Для того чтобы установить факт соответствия всех элементов массива некоторому условию, достаточно:

1) подсчитать количество элементов массива, соответствующих заданному условию;
2) сравнить найденное количество с общим числом элементов массива и вывести соответствующий результат.

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

Пример 7. Проверка массива на упорядоченность.

Рассмотрим алгоритм, позволяющий определить, упорядочены ли элементы массива а[1..n] по неубыванию, т. е. каждый элемент массива с 1-го по (n - 1)-й не больше последующего.

Самый простой путь решения этой задачи — проверить, есть ли в массиве такие пары элементов, что a[i] > a[i + 1]. Если подобные пары элементов есть, то массив не упорядочен по неубыванию, а если таких пар нет, то упорядочен.

В программе будем использовать логическую переменную flag:

• если flag = true, то массив упорядочен;
• если flag = false, то массив неупорядочен.

Ниже представлен фрагмент программы, реализующей этот алгоритм:

Запишите полный текст программы и выполните её на компьютере для рассматриваемого в примере 8 массива а, состоящего из семи элементов.

Как можно решить эту же задачу путём подсчёта количества пар элементов массива, таких что a[i] > a[i + 1] (a[i] <= a[i + 1])?

8.4. Удаление и вставка элементов массива


Пример 8. Удаление из массива элемента с индексом к.

Имеется одномерный целочисленный массив из семи элементов:

Удалим из массива элемент с индексом k = 4, а все элементы, расположенные справа от него, сдвинем на одну позицию влево. Получим следующий целочисленный массив из шести элементов:

При удалении из массива любого из элементов размерность массива уменьшается на 1.

Мы видим, что элементы с индексами от 1 до k - 1 не изменились. На место элемента с индексом k (4) переместился элемент, имевший индекс k + 1 (5), на место элемента с индексом k + 1 (5) переместился элемент, имевший индекс k + 2 (6) и т. д.

В общем случае, фрагмент программы удаления из массива а[1..n] элемента с индексом k и последующим сдвигом всех расположенных справа от него элементов на одну позицию влево имеет вид:

Запишите полный текст программы и выполните её на компьютере для рассмотренного выше массива а.

Пример 9. Вставка в массив элемента на место с индексом k.

Будем работать с тем же массивом из семи элементов. Но теперь наша задача будет состоять в том, чтобы вставить в массив на место с индексом k = 4 (т. е. после элемента с индексом k - 1) ещё один элемент, имеющий значение 11.

Получим следующий целочисленный массив из восьми элементов:

При вставке в массив ещё одного элемента размерность массива увеличивается на 1. Это надо учесть при описании массива.

Итак, а[4] := 11. Элементу а[5] следует присвоить то значение, которое было у а[4], элементу а[6] — значение, которое было у а[5], и т. д. В общем случае, элементу a[k + 1] следует присвоить то значение, которое было у a[k].

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

1) а[4]:=11; а[5]:=а [ 4]; а[б]:=а [ 5] ; а[7]:=а[6]; а[8]:=а[7];

2) а[8]:=а[7] ; а[7]:=а[б]; а[6]:=а[5] ; а[5]:=а[4]; а[4]:=11;

В общем случае, фрагмент программы вставки в массив а[1..n - 1] элемента на место с индексом k и сдвигом k-гo, (k + 1)-го, ..., (n - 1)-го элементов на одну позицию вправо имеет вид:

В общем случае, меняются местами элементы a[i] и а[n -i+1].

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

Cкачать материалы урока





Наверх