Обработка одномерных массивов.
Рассмотрим несколько примеров обработки одномерного массива.
Пример 6.1. Ввести значения элементов массива (размерностью 10) с клавиатуры. Составить программу для нахождения:
1) суммы элементов массива;
2) среднего арифметического значения элементов массива ;
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. Заполнить одномерный целочисленный массив (размерностью 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. Даны два вектора и (размерностью 12). Составить программу для нахождения:
1) скалярного произведения векторов и ;
2) длины вектора .
{скалярное произведение векторов}
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по следующему правилу:
В массиве 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) по следующему правилу:
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 столбцов