Программная обработка структурных типов.

Организация информации в виде массивов.

Под массивом понимается упорядоченная совокупность однотипных элементов, расположенных в оперативной памяти. Все элементы массива имеют одно имя. Обращение к элементам массива осуществляется с помощью индексов. Индексы могут задаваться в виде констант, переменных или арифметических выражений. Каждому элементу массива ставится в соответствие один или несколько индексов. Если указывается несколько индексов, то индексы разделяются запятой.

Например:

A[1] := 1;

B [I, J] := A [J];

C[J+1] := W;

Если для обращения к элементу массива используется один индекс, то массив называется одномерным массивом. Если используется два индекса, то массив называется двумерным массивом.

Тип массива может быть определен в разделе Type. При задании типа массива определен диапазон значений и тип элементов массива. Диапазон значений индекса содержит минимальное и максимальное значения индекса, разделенные двумя точками. Границы диапазона задаются в виде целочисленных констант. Использование переменных для задания границ диапазона не допускается. Допускается задание отрицательного значения индекса. Например:

Type

TA2 = Array [1..40, 1..40] Of Integer;

TA1 = Array [-3..20] Of Real;

Для выделения оперативной памяти для элементов массива требуется задать описание массива в разделе “Var”. Описание массива выполняется в соответствии со следующим синтаксисом:

<Список имен массивов>: <тип>;

Для задания типа может быть использовано описание типа, определенное в разделе “Type”.

Например,

Var

A,B:TA2;

C,D: Array [1..30] Of Real;

S: Array[1..50] Of String;

В процессе обработки можно использовать значения индекса, не выходящие за границы диапазона.

При использовании консольного режима, поступление информации в массив, обеспечивается при помощи команды Read. Например,

Read (A[I]);

Пример.

Программный код, обеспечивающий определение наиболее часто встречающегося элемента в одномерном массиве.

Program MaxFreq;

{$APPTYPE CONSOLE}

Uses

SysUtils;

Type

TA1= Array[1..30] Of Integer;

Var

A:TA1;

I,J,N,Max,Q,Amax:Integer;

begin

Writeln('Input N');

Readln (N);

Writeln('Input array');

For I:= 1 To N Do

Read( A[I]);

Max:= - MaxInt;

For I:=1 To N Do

Begin

Q:=0;

For J:= 1 To N Do

If A[I] = A[J] Then Q:=Q+1;

If Q>Max Then

Begin

Max:=Q;

Amax:=A[I];

End;

End;

Writeln (Amax);

{ Фиктивная команда ввода.

Задается любое число}

Readln;

Readln;

End.