Таблица 1

Характеристика

Для всех элементов 

Для части элементов

Сумма

s

s:=0;

for i:=1 to n do

s:=s+A[i];

s:=0;

for i:=1 to n do

if A[i]>z then

  s:=s+A[i];

Количество

k

k:=n;

k:=0;

for i:=1 to n do

if A[i]>z then

  k:=k+1;

Произведение

p

p:=1;

for i:=1 to n do

p:=p*A[i];

p:=1;

for i:=1 to n do

if A[i]>z then

  p:=p*A[i];

Максимальное значение

max

max:=A[1];

for i:=2 to n do

if A[i]>max then

  max:=A[i];

max:=-1E10;

for i:=1 to n do

if (A[i]>max) and (A[i]>z) then

  max:=A[i];

Минимальное значение

min

min:=A[1];

for i:=2 to n do

if A[i]<min then

  min:=A[i];

min:=1E10;

for i:=1 to n do

if (A[i]<min) and (A[i]>z) then

  min:=A[i];

Среднее значение

sr

s:=0;

for i:=1 to n do

s:=s+A[i];

sr:=s/n;

s:=0;

k:=0;

for i:=1 to n do

if A[i]>z then

  begin

  s:=s+A[i];

  k:=k+1;

  end;

sr:=s/k;

Фрагменты операций с одномерными массивами

Рассмотрим фрагменты программ в таблице 2.

Таблица 2

Операция

Фрагмент программы

Ввод элементов массива

for i:=1 to n do

read(A[i]);

Вывод элементов массива

for i:=1 to n do

writeln(A[i]);

Замена элементов массива на величину z

for i:=1 to n do

A[i]:=z;

Увеличение элементов массива на величину z

(аналогично уменьшение, умножение, деление)

for i:=1 to n do

A[i]:=A[i]+z;

Вычисление элементов массива B прибавлением к элементам массива A величины z

(аналогично вычитанием, умножением, делением)

for i:=1 to n do

B[i]:=A[i]+z;

Вычисление индекса максимального элемента imax

(аналогично минимального)

max:=A[1];

imax:=1;

for i:=2 to n do

if A[i]>max then

  begin

  max:=A[i];

  imax:=i;

  end;

Вывод индексов для части элементов

for i:=1 to n do

if A[i]>z then

  writeln(i);

Перестановка 1-го и 2-го элементов одномерного массива

c:=A[1];

A[1]:=A[2];

A[2]:=c;

Особенности элементов одномерного массива

Рассмотрим одномерный массив . Элементы ai этого массива имеют такие особенности:

НЕ нашли? Не то? Что вы ищете?
Элементы положительные, если . Элементы отрицательные, если . Элементы нулевые, если . Элементы ненулевые, если . Элементы находятся в диапазоне от x до y, если и . Элементы не находятся в диапазоне от x до y, если или . Элементы чётные, если . Элементы нечётные, если или . Элементы на чётных местах, если или . Элементы на нечётных местах, если или . Элементы кратны x, если . Элементы на местах, кратных x, если .

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

Двумерный массив (матрица) – массив, элементы которого имеют два номера (номер строки и номер столбца).

Индекс двумерного массива – порядковый номер строки или столбца в двумерном массиве.

Описание двумерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:

Mas : array [ IMin.. IMax, JMin.. JMax ] of T ;

где  array  – массив,  of  – из, Mas  – имя массива,  IMin  – минимальное значение индекса строки, IMax  – максимальное значение индекса строки, JMin  – минимальное значение индекса столбца, JMax  – максимальное значение индекса столбца, T  – тип элементов.

Это означает, что переменная Mas является массивом, который может иметь индексы строк от IMin до IMax, индексы столбцов от JMin до JMax  у элементов типа T.

Пример.

Var A : array [1..10,1..15] of real;

Это означает, что переменная A – массив, который может содержать от 1 до 10 строк, от 1 до 15 столбцов из элементов вещественного типа.

Доступ к элементу двумерного массива на языке Pascal имеет вид:

Mas [ Ind1 , Ind2 ]

где  Mas  – имя массива,  Ind1  – индекс строки,  Ind2  – индекс столбца.

Это означает доступ к элементу массива Mas, находящемуся в строке с индексом Ind1 и в столбце с индексом Ind2 .

Пример.

A[1,1]

b[i, j]

Это означает элемент массива A в 1-й строке и 1-м столбце, и т. д.

Задача 2.

Условие задачи. Дан двумерный массив A из m строк и n столбцов (m ≤ 10; n ≤ 15). Найти сумму положительных элементов в массиве A.

Блок-схема.


Программа.

Program z2;

Var

A:array[1..10,1..15] of real;

i, j,m, n:integer;

s:real;

Begin

read(m, n);

s:=0;

for i:=1 to m do

  for j:=1 to n do

  begin

  read(A[i, j]);

  if A[i, j]>0 then s:=s+A[i, j];

  end;

writeln(s);

End.

Пусть A - двумерный массив, m - количество строк, n - количество столбцов, i - индекс строки, j - индекс столбца. Рассмотрим следующие фрагменты программ.

Фрагменты вычисления характеристик двумерного массива

Рассмотрим фрагменты программ в таблице 3.

Таблица 3

Характеристика

Для всех элементов 

Для части элементов

Сумма

s

s:=0;

for i:=1 to m do

for j:=1 to n do

  s:=s+A[i, j];

s:=0;

for i:=1 to m do

for j:=1 to n do

  if A[i, j]>z then

  s:=s+A[i, j];

Количество

k

k:=m*n;

k:=0;

for i:=1 to m do

for j:=1 to n do

  if A[i, j]>z then

  k:=k+1;

Произведение

p

p:=1;

for i:=1 to m do

for j:=1 to n do

  p:=p*A[i, j];

p:=1;

for i:=1 to m do

for j:=1 to n do

  if A[i, j]>z then

  p:=p*A[i, j];

Максимальное значение

max

max:=A[1,1];

for i:=1 to m do

for j:=1 to n do

  if A[i, j]>max then

  max:=A[i, j];

max:=-1E10;

for i:=1 to m do

for j:=1 to n do

  if (A[i, j]>max) and (A[i, j]>z)

  then max:=A[i, j];

Минимальное значение

min

min:=A[1,1];

for i:=1 to m do

for j:=1 to n do

  if A[i, j]<min then

  min:=A[i, j];

min:=1E10;

for i:=1 to m do

for j:=1 to n do

  if (A[i, j]<min) and (A[i, j]>z)

  then min:=A[i, j];

Среднее значение

sr

s:=0;

for i:=1 to m do

for j:=1 to n do

  s:=s+A[i, j];

sr:=s/(m*n);

s:=0;

k:=0;

for i:=1 to m do

for j:=1 to n do

  if A[i, j]>z then

  begin

  s:=s+A[i, j];

  k:=k+1;

  end;

sr:=s/k;

Фрагменты вычисления характеристик строк и столбцов двумерного массива

Рассмотрим фрагменты программ в таблице 4.

Таблица 4

Характеристика

Для каждой строки

Для каждого столбца

Сумма

s

for i:=1 to m do

begin

  s[i]:=0;

  for j:=1 to n do

  s[i]:=s[i]+A[i, j];

end;

for j:=1 to n do

begin

  s[j]:=0;

  for i:=1 to m do

  s[j]:=s[j]+A[i, j];

end;

Произведение

p

for i:=1 to m do

begin

  p[i]:=1;

  for j:=1 to n do

  p[i]:=p[i]*A[i, j];

end;

for j:=1 to n do

begin

  p[j]:=1;

  for i:=1 to m do

  p[j]:=p[j]*A[i, j];

end;

Максимальное значение

max

for i:=1 to m do

begin

  max[i]:=A[i,1];

  for j:=1 to n do

  if A[i, j]>max[i] then

  max[i]:=A[i, j];

end;

for j:=1 to n do

begin

  max[j]:=A[1,j];

  for i:=1 to m do

  if A[i, j]>max[j] then

  max[j]:=A[i, j];

end;

Минимальное значение

min

for i:=1 to m do

begin

  min[i]:=A[i,1];

  for j:=1 to n do

  if A[i, j]<min[i] then

  min[i]:=A[i, j];

end;

for j:=1 to n do

begin

  min[j]:=A[1,j];

  for i:=1 to m do

  if A[i, j]<min[j] then

  min[j]:=A[i, j];

end;

Фрагменты операций с двумерными массивами

Рассмотрим фрагменты программ в таблице 5.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13