Базовые алгоритмы обработки массивов — КиберПедия 

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Базовые алгоритмы обработки массивов

2017-11-17 409
Базовые алгоритмы обработки массивов 0.00 из 5.00 0 оценок
Заказать работу

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

Вычисление суммы и произведения элементов массива. При нахождении суммы:

1) переменной суммирования S присваивается начальное значение, равное нулю;

2) при первом выполнении тела цикла к текущему значению переменной суммирования S прибавляется первое слагаемое суммы, и результат присваивается переменной суммирования S, т. е.

S:=S+< слагаемое >;

3) при каждом следующем выполнении тела цикла производится аналогичное действие.

Данный алгоритм при вычислении суммы элементов одномерного массива D размера n реализуется в виде следующего кода:

S:=0; {начальное значение суммы}

for i:=1 to n do S:=S+D[i]; {вычисление суммы}

writeln('S=',S); {вывод суммы}

Для программирования нахождения произведения:

1) переменной произведения P присваивается начальное значение, равное единице;

2) при первом выполнении тела цикла текущее значение переменной произведения P умножается на первый сомножитель произведения, и результат присваивается переменной произведения P, т. е.

P:=P*< множитель >;

3) при каждом следующем выполнении тела цикла производится аналогичное действие.

Данный алгоритм при вычислении произведения значений элементов одномерного массива D размера n реализуется в виде следующего кода:

P:=1; {начальное значение произведения}

for i:=1 to n do P:=P*D[i]; {вычисление произведения}

writeln('P=',P); {вывод произведения}

Более сложный код применяется для вычисления произведения элементов двумерного массива W размером n × m:

P:=1; {начальное значение произведения}

for i:=1 to n do

for j:=1 to m do P:=P*W[i,j]; { вычисление произведения}

writeln('P=',P); {вывод произведения}

Поиск максимального и минимального элементов массива. При нахождении минимального элемента массива:

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

2) в цикле текущее значение переменной сравнивается с каждым элементом массива и переопределяется, если рассматриваемый элемент массива меньше текущего значения переменной минимума.

Код, реализующий данный алгоритм для одномерного массива D, состоящего из n элементов, имеет вид:

min:=D[1]; {первый элемент массива назначается минимальным}

for i:=2 to n do

if D[i]<min then min:=D[i];

{текущий минимальный элемент сравнивается с каждым элементом

массива и переопределяется при выполнении условия}

writeln('min=',min); {вывод минимального элемента}

При нахождении максимального элемента массива:

1) скалярной переменной максимума, предназначенной для хранения максимального значения, присваивается значение первого элемента массива;

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

Программный код, реализующий данный алгоритм для одномерного массива D, состоящего из n элементов, имеет вид:

max:=D[1]; {первый элемент массива назначается минимальным}

for i:=2 to n do

if D[i]>max then max:=D[i]; {текущий максимальный элемент сравнивается с каждым элементом массива и переопределяется при выполнении условия}

writeln('max=',max); {вывод максимального элемента}

Максимальный элемент двумерного массива W, состоящего из n × m элементов, определяется с использованием вложенного цикла:

max:=W[1, 1];{первый элемент массива назначается максимальным}

for i:=1 to n do

for j:=1 to m do

if W[i, j]>max then max:=W[i, j]; {текущий максимальный элемент сравнивается с каждым элементом массива и переопределяется при выполнении условия}

writeln('max=',max); {вывод максимального элемента}

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

1) переменной-счетчику k присвоить начальное значение, равное нулю (k:=0);

2) в цикле вычислить значение логического выражения. Если это значение равно True, увеличить значение счетчика на единицу, т. е. выполнить оператор k:=k+1 или inc(k).

Данный алгоритм реализуется кодом

k:=0;

if < условие > then k:=k+1;

где < условие > − условие, которому должны соответствовать элементы массива.

Программа, определяющая количество элементов одномерного массива, модуль которых не превосходит числа 3, представлена ниже.

Program count1;

Var

D: array [1..10] of integer;

{описание одномерного массива из десяти целых чисел}

i, k: integer;

Begin

for i:=1 to 10 do readln(D[i]);

{ввод десяти элементов одномерного массива}

k:=0; {начальное значение счетчика}

for i:=1 to 10 do

if abs(D[i])<=3 then k:=k+1;

{значение счетчика увеличивается на единицу при выполнении условия}

writeln('k=',k);

{количество элементов, соответствующих условию}

End.


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.