Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАССИВЫ.doc
Скачиваний:
111
Добавлен:
14.08.2019
Размер:
5 Мб
Скачать
☆

2.2. Решение задач с использованием одномерных массивов

В общем случае алгоритм решения задачи с использованием массивов выглядит так, как показано на рисунке 2. Рассмотрим более подробно шаги этого алгоритма.

Рис.2

2.2.1. Ввод одномерного массива в память компьютера

При вводе массива предлагается, что память для его размещения уже зарезервирована. Количество элементов, под которые зарезервирована память, обозначим константой LEN. Тогда LEN — это максимально возможное для использования количество элементов массива (длина массива). В действительности при решении большинства задач количество требуемых элементов может изменяться от одного запуска программы к другому. Поэтому следует предоставить пользователю возможность заказать требуемое ему в данном конкретном случае число элементов массива, которое обозначим N. Таким образом, первым шагом алгоритма ввода одномерного массива станет ввод переменной N — требуемой длины массива. Напомним, что N всегда меньше либо равна LEN.

В языке Паскаль нет средств ввода-вывода всего массива целиком, поэтому ввод и вывод массивов выполняется поэлементно. Словесно можно описать шаг ввода одномерного массива следующим образом:

ввести элемент А[1];

ввести элемент А[2];

….

ввести элемент А[N].

Таким образом, индекс вводимого элемента изменяется от 1 до N с шагом 1. Очевидно, что для реализации ввода массива необходимо выбрать структуру цикла. Блок-схема ввода массива представлена на рисунке 3.

Рис.3

На языке ТурбоПаскаль ввод одномерного массива реализуется следующим фрагментом программы:

Program ABC;

const

LEN = 100; {максимальная длина массива}

var

А : array [1. .LEN] of real; {объявление массива, состоящего из 100 вещественных чисел}

i,N : integer; {i — индекс, N — требуемая длина массива}

BEGIN

write (‘Введите длину массива N =');

read(N);

for i:=1 to N do

begin

write(‘A[‘ , i , ‘]=' );

read (A [i])

end;

…

END.

В дальнейшем заголовок и раздел описания программы приводить не станем. Фрагменты программ, описанные в примерах, следует располагать в требуемом месте раздела исполняемых операторов приведённой здесь программы.

2.2.2. Вывод массива на экран

Блок-схема алгоритма вывода одномерного массива на экран представлена на рисунке 4. Она очень мало отличается от вышеприведённой блок-схемы алгоритма ввода и построена на основании таких же рассуждений. Единственным принципиальным отличием является то, что не требуется запрашивать у пользователя длину массива, которая к моменту вывода массива на экран уже известна.

Фрагмент программы для вывода одномерного массива на экран:

…

writeln(‘Массив А’);

for i:=1 to N do

write (A[ i ]:6:2);

writeln;

…

Рис.4

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]