Методы обработки массивов

Массивы — наиболее часто применяемый тип данных при обработке большого количества информации, разного рода статистических данных и т.д. Это объясняется не только удобством хранения информации в памяти компьютера в виде массива, сколько возможностью легко производить различного рода обработку массивов.

В настоящей главе описаны наиболее простые и часто встречающиеся ситуации при обработке информации в массивах. Все они достаточно просты, и поэтому снабжены не подробными комментариями, а конкретными примерами. Рекомендуем вам самостоятельно разобрать каждый из предложенных примеров. Не переходите к следующему разделу (примеру программы), если вам не понятно назначение каждой строки предыдущего примера программы.

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

Пример программы, которая сначала вводит 30 действительных чисел, организовывает их хранение в массиве, определяет сумму элементов этого массива и выводит результат на экран монитора.

Procedure TForm1.Button1Click(Sender:TObject);

Type mas=array[1..30] of Real;      {Декларация массива}

Var a:mas;

       i:Integer;  {Параметр цикла For}

       s:real;       {Сумма элементов}

Begin

For i:=1 to 30 do     {Заполнение массива}

a[i]:=StrToFloat(StringGridN.Cells[i,1]);

s:=0;                {Обнуление счетчика суммы}

For i:=1 to 30 do     {Вычисление суммы}

s:=s+a[i];

LabelN.Caption:='S= '+FloattoStr(s);

End;

Число положительных элементов массива

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

Procedure TForm1.Button1Click(Sender:TObject);

Type mas=array[1..30] of Real;      {Декларация массива}

Var a:mas;

       i:Integer;  {Параметр цикла For}

       n:Integer;       {Счетчик положительных чисел}

Begin

For i:=1 to 30 do     {Заполнение массива}

a[i]:=StrToFloat(StringGridN.Cells[i,1]);

n:=0;                {Обнуление счетчика положительных элементов}

For i:=1 to 30 do     {Вычисление количества положительных элементов}

If a[i]>=0 then n:=n+1;

LabelN.Caption:='Последовательность содержит '+FloattoStr(s)+' положительных элементов';

End;

Определение максимального элемента

Пример программы, которая сначала вводит 30 действительных чисел, затем организовывает их хранение в массиве, определяет значение и индекс (номер) максимального элемента этого массива и выдает сообщение на экран.

Procedure TForm1.Button1Click(Sender:TObject);

Type mas=array[1..30] of Real;      {Декларация массива}

Var a:mas;

       i:Integer;  {Параметр цикла For}

       max:Real;  {Значение максимального элемента}

       n:Integer;   {Индекс (номер) максимального элемента}

Begin

For i:=1 to 30 do     {Заполнение массива}

a[i]:=StrToFloat(StringGridN.Cells[i,1]);

max:=a[1];

n:=1;

For i:=2 to 30 do

If a[i]>max then

            Begin

            max:=a[i];

            n:=i;

            End;

LabelN.Caption:='Максимальный элемент массива равен '+FloatToStr(mas)+' Номер максимального элемента '+IntToStr(n);

End;

Поиск элемента в неупорядоченном массиве

Пример программы, которая сначала вводит 30 различных (!) реальных чисел, организовывает их хранение в массиве, затем запрашивает так называемое "контрольное число". После этого проверяет, есть ли в массиве элемент, который равен контрольному числу.

Procedure TForm1.Button1Click(Sender:TObject);

Type mas=array[1..30] of Real;      {Декларация массива}

Var a:mas;

       i:Integer;  {Параметр цикла For}

       p:Real;  {Значение искомого элемента}

       n:Integer;   {Индекс (номер) искомого элемента}

Begin

For i:=1 to 30 do     {Заполнение массива}

a[i]:=StrToFloat(StringGridN.Cells[i,1]);

p:=StrToFloat(EditN.Text);     {Ввод контрольного числа}

n:=0;  {Допустим, что в массиве нет такого элемента}

For i:=1 to 30 do

If a[i]=p then n:=i;

If n<>0 then  LabelN:='Элемент № '+IntToStr(i)+' равен искомому';

else LabelN.Caption:='В массиве нет такого элемента';

End;

Контрольные вопросы

1.  Опишите порядок действий при вычислении суммы элементов массива.

2.  Опишите порядок действий при вычислении числа положительных элементов в массива.

3.  Опишите порядок действий при определении максимального элемента в массиве.

4.  Опишите порядок действий при поиске элемента в неупорядоченном массиве.

На главную.
Используются технологии uCoz