Содержание урока:
8.1. Общие сведения об одномерных массивах
8.2. Задачи поиска элемента с заданными свойствами
8.3. Проверка соответствия элементов массива некоторому условию. 8.4. Удаление и вставка элементов массива
8.5. Перестановка всёх элементов массива в обратном порядке. 8.6. Сортировка массива
САМОЕ ГЛАВНОЕ. Вопросы и задания
Материалы к уроку
Мы повторили основные приёмы работы с простыми типами данных. Из элементов простых типов в языке Pascal можно образовывать составные типы данных (структуры данных). Примером таких структур являются одномерные массивы.
Массив — это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.
Массив в языке Pascal — это набор однотипных данных, причём количество этих данных фиксировано и определяется при описании массива. Все переменные, входящие в массив, имеют одно и то же имя — имя массива, а различаются они по индексу — номеру (месту) в массиве.
Описание массива выглядит так:
array [<тип индекса>] of <тип компонент>
Здесь:
• array и of — служебные слова («массив» и «из»);
• <тип индекса> — описание индексации компонент (элементов) массива;
• <тип компонент> — тип величин, составляющих массив. Например:
• var day: array [1..365] of integer — 365 целочисленных элементов пронумерованы от 1 до 365;
• var tern: array [1..12] of real — 12 вещественных элементов пронумерованы от 1 до 12;
• var ocenka: array [2..5] of integer — 4 целочисленных элемента пронумерованы от 2 до 5;
• const n = 10; var slovo: array [1..n] of string — n строковых величин пронумерованы от 1 до n.
Вспомним основные приёмы работы с массивами.
Пример 1. Имеются сведения о количестве ежедневных осадков в течение июня месяца в некотором регионе. Требуется найти среднее количество осадков и вывести таблицу, в которой для каждого дня месяца указать количество осадков в этот день и его отклонение от среднемесячного значения.
Для решения этой задачи данные о количестве ежедневных осадков в течение месяца будут просмотрены дважды:
1) при поиске среднего значения;
2) при расчёте отклонения.
Для решения задачи нам понадобится массив из 30 вещественных чисел. Назовём его osad. В программе будет два цикла. В первом цикле мы введём значения элементов массива и сразу же подсчитаем их сумму — по завершении цикла мы получим сумму осадков, выпавших в течение месяца. Во втором цикле мы выведем строки таблицы и вычислим значения отклонений.
При работе с элементами массива воспользуемся переменной osad[i], значение индекса i при этом будет изменяться от 1 до 30 с шагом 1. Для вычисления среднего значения задействуем вещественную переменную sred, присвоив ей начальное значение 0 и последовательно накапливая в ней сумму осадков, выпавших в течение месяца. Разделив по завершении цикла полученное значение на 30, вычислим требуемое среднемесячное количество осадков и присвоим результат этой же переменной.
Найдите в Интернете информацию о количестве ежедневных осадков, выпавших в течение месяца, в вашем регионе. Используя эти данные, выполните программу в среде программирования Pascal.
Выполните аналогичные расчёты с помощью электронных таблиц.
Чаще всего массив обрабатывается в цикле for. Но при работе с массивами можно использовать и другие циклы.
Пример 2. Имеется массив символов. Требуется вывести на экран элементы данного массива в обратном порядке.
Элементами массива символов могут быть любые символы, имеющиеся на клавиатуре, причём каждому элементу соответствует именно один символ. Если в качестве элементов нашего массива рассматривать последовательности букв, образующие некоторое слово или фразу на естественном языке, то, решив поставленную задачу, мы научимся строить «перевёртыши» слов.
Будем рассматривать слова и фразы не более чем из 20 символов, задав соответствующую размерность массива:
simbol: array [1..20] of char;
Если какое-то слово или фраза будут короче, то часть массива окажется не занятой, но это не повлияет на работу программы. Договоримся признаком конца слова считать точку — ввод символов продолжается, пока не введена точка; после ввода точки ввод символов прекращается.
Запустите программу в среде программирования Pascal.
Модифицируйте программу так, чтобы в начале её работы пользователю задавался вопрос о количестве символов, которые он будет вводить. Какой цикл при этом лучше использовать?
Как изменить программу, чтобы она выводила на экран в обратном порядке элементы целочисленного массива?
К типовым задачам обработки одномерных массивов, решаемым в процессе их однократного просмотра, относятся:
• задачи поиска элементов с заданными свойствами, в том числе максимумов и минимумов;
• проверка соответствия элементов массива некоторому условию (подсчёт количества или суммы элементов, удовлетворяющих некоторому условию;
• проверка соответствия всех элементов массива некоторому условию;
• проверка массива на упорядоченность и др.);
• задачи на удаление и вставку элементов массива;
• задачи на перестановку всех элементов массива в обратном порядке и т. д.