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

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

Пример 6.1. Ввести значения элементов массива Обработка одномерных массивов. - student2.ru (размерностью 10) с клавиатуры. Составить программу для нахождения:

1) суммы элементов массива;

2) среднего арифметического значения элементов массива Обработка одномерных массивов. - student2.ru ;

3) произведения элементов массива;

4) количества отрицательных элементов массива;

5) максимального элемента массива;

program prog;

uses crt;

var a:array[1..10] of real;

s,p,max,sr:real; k,n:integer;

begin

clrscr;

//Ввод элементов одномерного массива с клавиатуры

for k:=1 to 10 do

begin

write('Введите a[',k:2,']=');

read(a[k]);

end;

//Вывод элементов одномерного массива на экран

writeln('Массива:');

for k:= to 10 do

write(a[k]:8:2,'');

writeln;

//суммаэлементовмассива

s:=0;

for k:=1 to 10 do

s:=s+a[k];

writeln('s=',s);

//среднеарифметическое значение элементов массива}

sr:=s/10;{s – сумма элементов массива,

10 – количество элементов массива}

//произведение элементов массива

p:=1;

for k:=1 to 10 do

p:=p*a[k];

writeln('p=',p);

//количество отрицательных элементов массива

n:=0;

for k:=1 to 10 do

if a[k]<0 then n:=n+1;

writeln('n=',n);

//максимальный элемент массива

max:=a[1];

for k:=1 to 10 do

if a[k]>max then

max:=a[k];

writeln('max=',max);

end.

Если необходимо найти сумму только положительных элементов массива:

s:=0;

for k:=1 to 10 do

if a[k]>0 then s:=s+a[k];

Если кроме самого максимального элемента массива необходимо найти его номер:

nmax:=1;

max:=a[1];

for k:=1 to 10 do

if a[k]>max then

begin

nmax:=k;

max:=a[k];

end;

Пример 6.2. Заполнить одномерный целочисленный массив Обработка одномерных массивов. - student2.ru (размерностью 10) с помощью генератора псевдослучайных чисел из интервала от –25 до 25. Составить программу для нахождения количества элементов массива кратных пяти.

program prog;

uses crt;

type mas=array[1..10] of integer;

var а:mas;

k,n:integer;

begin

clrscr;

randomize;

{Заполнение одномерного массива псевдослучайными числами}

for k:=1 to 100 do

a[k]:=random(50)+(-25);

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

writeln('Массива:');

for k:=to 100 do

write(a[k]:8:2,'');

writeln;

{количество элементов массива кратных пяти}

n:=0;

for k:=1 to 10 do

if (a[k] mod 5)=0 then n:=n+1;

writeln('n=',n);

end.

Если необходимо найти количество нечетных элементов целочисленного массива:

n:=0;

for k:=1 to 10 do

if (a[k] mod 2)<>0 then n:=n+1;

Пример 6.3. Даны два вектора Обработка одномерных массивов. - student2.ru и Обработка одномерных массивов. - student2.ru (размерностью 12). Составить программу для нахождения:

1) скалярного произведения векторов Обработка одномерных массивов. - student2.ru и Обработка одномерных массивов. - student2.ru Обработка одномерных массивов. - student2.ru ;

2) длины вектора Обработка одномерных массивов. - student2.ru Обработка одномерных массивов. - student2.ru .

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

P:=0;

for k:=1 to 12 do

p:=p+c[k]*b[k];

writeln('p=',p);

{длинавектора}

s:=0;

for k:=1 to 12 do

s:=s+sqr(a[k]);

d:=sqrt(s);

writeln('d=',d);

Пример 6.4. Дан массив натуральных чисел a(4,2,1,5,8,13,7,3). Сформировать новый массив cпо следующему правилу:

Обработка одномерных массивов. - student2.ru

В массиве c найти значение пятого элемента.

program pr7;

const a:array[1..8] of byte=(4,2,1,5,8,13,7,3);

var c:array[1..8] of real; i,j:integer;

begin

for i:= 1 to 8 do

if (a[i] mod 2)=0 then c[i]:=sqr(a[i])

else c[i]:=exp(3*ln(a[i]))/2;

write('массива:');for i:=1 to 8 dowrite(a[i]:3);writeln;write('массив c:');for i:=1 to 8 dowrite(c[i]:8:2);writeln;for i:=1 to 8 doif i=5 then write('c[',i:2,']=',c[i]);

end.

Пример 6.5. Дан массив с(12), сформировать из его элементов массив b(12) по следующему правилу: Обработка одномерных массивов. - student2.ru

program prog;

uses crt;

var b,c:array[1..12] of real;

i:integer;

begin

clrscr;

{Ввод элементов одномерного массива с клавиатуры}

for i:=1 to 12 do

begin

write('Введите c[',i:2,']=');

read(c[i]);

end;

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

writeln('Массив c:');

for i:= to 10 do

write(c[i]:8:2,'');

writeln;

{новыймассив}

for i:=1 to 12 do

if c[i]>0 then b[i]:=c[i]+1;

elseb[i]:=c[i]-1;

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

writeln('Массив b:');

for i:= to 10 do

write(b[i]:8:2,'');

writeln;

end.

Двумерные массивы

Двумерные массивы используются для работы с матрицами, состоящими из нескольких строк и столбцов.

В случае двумерного массива для нумерации элементов массива используются два индекса. Первый (левый) индекс соответствует номеру строки в массиве, второй индекс (правый) – номеру столбца. Индексы элементов двумерного массива заключаются в квадратные скобки и разделяются между собой запятой. К элементу массива обращаются, указывая номер строки и столбца, на пересечении которых он находится, например, a14→a[1,4], a21→а[2,1] (рис. 6.4).

a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34

Рис. 6.4. Матрица из 3 строк и 4 столбцов

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