Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
111
Добавлен:
04.03.2014
Размер:
381.95 Кб
Скачать

9

  1. Массивы

Массив - это упорядоченная совокупность однотипных данных, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Индексы определяют положение элемента в массиве.

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

  1. Однотипная обработка массивов

А) Поэлементная обработка .

Б) Выборочная обработка элементов массива

  1. Переформирование массива

А) Без изменения исходных размеров массива

Б) С изменением размеров исходного массива.

  1. Одновременная обработка нескольких массивов или подмассивов.

А) С синхронным изменением индексов.

Б) С произвольным изменением индексов

  1. Поисковые задачи.

Выделение перечисленных классов обусловлено тем, что каждый из них имеет определенную методику обработки, получившую название приемов программирования данного класса задач. Как правило, в реальной жизни эти задачи в чистом виде встречаются довольно редко (в практикумах по программированию и в лабораторных работах). Однако, любая сложная задача может быть разбита методом пошаговой детализации на более простые задачи, для которых уже известны приемы программирования. Кроме того, специфика реализации всех классов задач зависит от количества индексов массивов.

    1. Основные приемы программирования обработки одномерных массивов.

Одномерными называются массивы, имеющие один тип индексов. Описание массива может быть выполнено в разделе описания переменных в разделе VAR:

VAR A,B:array [1..10] of real; {массив из 10 вещественных чисел}

C:array[BOOLEAN] of char; {массив символов из двух значений}

d:array [char] of integer; {массив целых чисел на 256 значений}

или с предварительным описанием типа в разделе TYPE:

TYPE Bmas=array[BOOLEAN] of char; { тип - массив символов из двух значений}

Cmas= array [char] of integer; {тип - массив целых чисел на 256 значений}

Rmas= array [1..10] of real; { тип - массив из 10 вещественных чисел}

VAR A,B:Rmas;

C:Bmas;

d:Cmas;

Рассмотрим наиболее распространенные приемы программирования обработки одномерных массивов.

      1. Первый класс задач

Примерами подобного класса обработок служат: нахождение суммы элементов, произведения элементов, среднего арифметического, среднего геометрического, подсчет количества элементов, отвечающих определенному условию или обладающих некоторыми признаками, а также их суммы, произведения и т.д. Кроме того, к этой группе могут быть отнесены задачи ввода и вывода массивов. Особенностью задач класса является то, что количество обрабатываемых элементов массива известно. Это позволяет использовать счетные циклы, параметр которых обеспечивает доступ к элементам. Однако, возможно применение и других типов циклов.

Рассмотрим некоторые типовые алгоритмы задач первого типа.

Пример1. Пусть необходимо ввести или вывести массив. Для этого нужно последовательно перебрать все элементы массива. Если количество вводимых элементов известно заранее, то для этой операции удобно использовать счетные циклы. При неизвестном количестве элементов лучше использовать циклы с пред или пост условиями.. При выводе количество элементов известно всегда. Алгоритм, при помощи которого осуществляется ввод и вывод одномерного массива A(n) представлен на рис. 4.1.

Рис. 4.1

Рис. 4.2

Пример 2. Часто возникает задача нахождения наибольшего или наименьшего элемента массива (например, при построении графика функции). Здесь, можно использовать следующий прием (см. рис. 4.2). Пусть нам нужно найти наибольший элемент массива. Вспомогательной переменной max присваивается значение первого элемента массива, затем последовательно все элементы массива сравниваются с переменной max, если max оказывается больше, чем очередной элемент, то max присваивается новое значение.

Пример 3. Пусть необходимо найти среднее арифметическое значение положительных элементов целочисленного массива, кратных трем. Для решения этой задачи необходимо двум вспомогательным переменным Sum и Kol, которые будут использоваться для накопления суммы требуемых элементов и их количества, присвоить нулевые значения. После этого осуществляется перебор всех элементов и, если очередной удовлетворяет условию, его значение добавляется к содержимому переменной Sum, а значение переменной Kol увеличивается на единицу. В конце просмотра всего массива среднее арифметическое может быть определено путем деления накопленной суммы на количество найденных элементов. Алгоритм решения задачи представлен на рис. 4.3.

Рис.4.3

Соседние файлы в папке Методичка С++