Анализ элементов массива

Рассмотрим в качестве примера программу, которая вычисляет среднеарифметическое элементов каждой строки двумерного массива.

Первая часть алгоритма, представленного на рисунке 21 (блоки 2, 3, 4), предназначена для ввода элементов массива. Счётчик внешнего цикла (блок 2) задаёт номер столбца, после этого внутренний цикл (блок 3) обеспечивает перебор всех элементов текущего столбца. Таким образом, эта часть алгоритма обеспечивает ввод массива по столбцам.

Далее, в обрабатывающей части алгоритма, внешний цикл (блок 5) задаёт значение счётчика j, который определяет номер обрабатываемой строки. Внутри данного цикла находится алгоритм вычисления суммы элементов одномерного массива (блоки 6, 7, 8). После этого значение переменной S, в которой сохранено значение суммы элементов строки, будет поделено на количество столбцов массива (блок 9) и полученное среднеарифметическое будет выведено на экран (блок 10).

 

 

Рисунок 21 – Блок-схема алгоритма вычисления среднеарифметического значения элементов каждой строки двумерного массива

 

Приведём трассировку обрабатывающей части представленного алгоритма (таблица 12).

Таблица 12 – Трассировка алгоритма вычисления среднеарифметического значения элементов каждой строки двумерного массива

№ блока j i A[i,j] S A
- - -  
индексы

 

- -
9, 10
- -
индексы

 

- -
9, 10
- -
индексы

 

- -
9, 10
- -  
- - -  

 

Реализация алгоритма в программу выглядит следующим образом:

 

program sort2;

uses crt;

const n=5; m=4;

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

j,i:integer;

s:real;

Begin

for i:=1 to n do

for j:=1 to m do

Begin

write('A[' , i , ' , ' , j , ' ] = ' );

read(a[i, j]);

end;

for j:=1 to m do

Begin

s:=0;

for i:=1 to n do

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

s:=s/n;

writeln('среднеарифметическое в строке №',j,' = ', s);

end;

End.

 

Записи

Запись – конечное множество поименованных элементов произвольного типа.

Элементы, из которых состоит запись, называют полями.

Синтаксис описания типа запись:

Record

Ид_поля1, Ид_поля2...: описание_типа|ид_типа;

...

End;

Запись удобно представлять в виде строки в таблице. Таким образом, множество записей представляет собой непосредственно таблицу. Средствами языка Pascal таблица может быть организована как одномерный массив с элементом типа запись.

 

Пример описаний структур данных типа запись:

type

{описание нового пользовательского типа PhRec}

PhRec = record

No: integer;

Name : string [20];

Phone : string [18];

end;

var

{описание двух переменных типа PhRec}

Zap1, Zap2: PhRec;

{описание массива из 20-ти элементов типа PhRec}

Tab: array [1..20] of PhRec;

 

В данном примере переменные Zap1 и Zap2 представляются отдельными строками, а переменная Tab – таблицей, состоящей из 20-ти строк (рис. 22).

 

 

Название поля No Name Phone
Содержимое      
  запись Zap1
Название поля No Name Phone
Содержимое      
  запись Zap2
 
Название поля No Name Phone
  индексы      
Содержимое        
     
     
...      
     
     
  массив Tab

 

Рисунок 22 – Структура записей и массива записей