Действия с одномерными массивами

При обработке массивов часто требуется вычислить сумму элементов массива, их среднее арифметическое значение или найти значение и номер максимального и минимального элементов, а также изменить значения элементов массива.

Условимся, что в векторе a содержится n элементов.

{Вычислим сумму элементов:}

s:= 0;

for i:= 1 to n do

s:= s + a[i];

{Вычислим произведение элементов:}

р:= 1;

for i:= 1 to n do

р:= р*a[i];

{Подсчитаем количество четных элементов:}

k:= 0;

for i:= 1 to n do

if a[i] mod 2 = 0 then

k:= k + 1;

{Найдем номер первого из элементов массива, имеющего нулевое значение. Если такого элемента нет, то выведем соответствующее сообщение:}

i:= 0;

repeat

i:= i+ 1;

until (a[i] = 0) or (i = n);

if a[i] = 0 then writeln('Номер нулевого элемента = ', i)

else

writeln('Таких элементов нет');

{Если требуется найти номера всех нулевых элементов, то лучше применить оператор FOR:}

for i:= 1 to n do

if a[i] = 0 then write(i, ' ');

{Поиск максимального элемента и его номера. Переменная max хранит максимальное значение элемента, а k – его номер.}

max:= a[i];

k:= 1;

for i:= 2 to n do

if a[i] > max then

begin

max:= a[i];

k:= i;

end;

Многомерные массивы (матрицы).

Организация доступа к элементам двумерного массива

Для описания многомерных массивов в Pascal существует целый ряд способов. Следующие группы операторов задают описание одного и того же двумерного массива А, представляющего собой таблицу размером 2´3 (2 строки, 3 столбца)

Первый способ:

Type

Stroka = array [1..3] of real;

Matr = array [1..2] of stroka;

Var

V: stroka;

A: matr ;

Второй способ:

Type

Matr= array [1..2] of array [1..3] of real;

Var

A: matr;

Третий способ:

Type

Matr = array [1..2,1..3] of real;

Var

A: matr;

Четвёртый способ:

Var

A: array [1..2,1..3] of real;

В первом способе описания переменная V объявлена как одномерный массив из трёх элементов вещественного типа. Переменная А имеет смысл двумерного массива из двух строк, в каждую из которых включено по три элемента.

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

Задание значений элементам массива может выполняться при помощи операторов присваивания:

A [1, 2] := 2.3 + P1

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

Действия с двумерными массивами

Для обработки двумерных массивов применяются вложенные циклы FOR. Рассмотрим примеры обработки двумерных массивов.

Пример 1.

Поиск минимального (максимального) элемента матрицы и индексов его строки и столбца.

uses crt;

var

min,i,j,k,m: integer;

a: array [1..5,1..5] of integer;

begin

clrscr;

randomize;

for i:= 1 to 5 do

begin

for j:= 1 to 5 do

begin

a[i,j]:= random(100);

write(a[i,j]:4);

end;

writeln;

end;

min:= a[1,1];

for i:= 1 to 5 do

for j:= 1 to 5 do

if min > a[i,j] then

begin

min:= a[i,j];

k:= i;

m:= j;

end;

writeln;

writeln('min = ', a[k,m], ' str = ',k:2,' stolb = ',m:2);

readln

end.

Пример 2.

Программа заполнения двумерного массива змейкой.

при n=6 и m=8:

Решение

Для того чтобы заполнить массив указанным об­разом, надо вывести правило заполнения. В данном случае правило будет таким: если ряд нечетный (то есть когда номер строки − нечетное число), то А[i,j] = (i-1)*m+j, иначе (т.е. когда строка чет­ная) A[i,j] = i*m-j+1.

uses crt;

const

n = 6;

m = 8;

var

a: array[1..n,1..m] of integer;

i,j,k: integer;

begin

for i:= 1 to n do

begin

for j:= 1 to m do

begin

if i mod 2 = 0 then

a[i,j]:= i*m - j + 1

else

a[i,j]:= (i-1)*m + j;

write(a[i,j]:3);

end;

writeln;

end;

readln

end.

Сортировка массивов

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

Сортировка массивов –одно из наиболее важных действий над массивами в системах сбора и поиска информации, т.к. в отсортированных массивах гораздо легче можно найти нужную информацию. Существуют множества способов сортировки массивов. Один из способов сортировки массивов:

Наши рекомендации