Объявление массива

Массивы

Лекция 14

Примеры задач с циклами

1) Вычисление суммы элементов ряда.

 

var

i:integer;

elem, summ:real;

begin

sum:=0;

for i:=1 to 5 do

begin

elem:=1/i;

sum:=sum+elem;

Memo1.Lines.Add (FloatToStr(elem));

end;

Label1.Caption:=‘Сумма элементов ряда: '+

FloatToStr(sum));

end;

2) Вычисление числа ПИ с заданной точностью.

 

program pi;

var

n:integer;

p, t, elem:real;

begin

p:=0;

n:=1;

elem:=1;

write(‘Задайте точность вычисления ПИ ’);

readln(t);

writeln(‘Вычисление ПИ с точностью’,t:9:6);

while elem >= t do

begin

elem:=1/(2*n-1);

if (n mod 2) = 0

then p:=p-elem

else p:=p+elem;

n:=n+1;

end;

p:=p*4;

writeln(‘Значение ПИ с точностью’,t:9:6,’равно’,p:9:5);

writeln(‘Просуммировано’,n,’ членов ряда’);

end.

3) Вычисление суммы положительных чисел, введенных с клавиатуры.

 

program summrep;

var

summ, numb:integer;

begin

writeln(‘Вычисление суммы положительных целых чисел’);

summ:=0;

repeat

write(‘->’);

readln(numb);

if numb>0 then sum:=sum+numb;

until numb <= 0;

writeln(‘Сумма введенных чисел: ’summ);

end.

 

 

Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения одsнородной по своей природе информации, например, таблиц и списков.

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

Имя: array [нижний_индекс. .верхний_индекс] ofтип

где:

· имя — имя массива;

· array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;

· нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;

· тип — тип элементов массива.

Примеры объявления массивов:

temper:array[1..31] of real;

коef:array[0. .2] of integer;

name:array[1..30] of string[25];

 

В общем виде инструкция объявления двумерного массива выглядит так:

Имя: array[ НижняяГраница1..ВерхняяГраница1,

НижняяГраница2..ВерхняяГраница2] of Тип

где:

· Имя — имя массива;

· array — слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;

· НижняяГраница1, ВерхняяГраница1, НижпяяГраница2, ВерхняяГраница2 — целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;

· Тип — тип элементов массива.

Количество элементов двумерного массива можно вычислить по формуле:

(ВГ1-НГ1+1) х (ВГ2-НГ2+1):

где:

ВГ1 и ВГ2 — верхняя граница первого и второго индексов;

НГ1 и НГ2 — нижняя граница первого и второго индексов.

 

При объявлении массива удобно использовать именованные константы. Именованная константа объявляется в разделе объявления констант, который обычно располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const. В инструкции объявления именованной константы указывают имя константы и ее значение, которое отделяется от имени символом "равно". Например, чтобы объявить именованную константу YB, значение которой равно 10, в раздел const надо записать инструкцию: YB=10. После объявления именованной константы ее можно использовать в программе как обычную числовую или символьную константу. Ниже в качестве примера приведено объявление массива названий команд-участниц чемпионата по футболу, в котором используются именованные константы.

const

NT = 18; // число команд

SN = 25; // предельная длина названия команды

var

team: array[1..NT] of string[SN];

Для того чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать константу или выражение целого типа, например:

team [ 1] := 'Зенит';

d := koef[l]*koef[l]-4*koef[2]*koef[1];

ShowMessage(name[n+1]);

temper[i] := StrToFloat(Edit1.text);

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

Имя:array [нижний_индекс..верхний_индекс] of тип = (список);

где список — разделенные запятыми значения элементов массива. Например:

a: array[10] of integer = (0,0,0,0,0,0,0,0,0,0);

Team: array[1..5] of String[10]=('Зенит','Динамо','Спартак','Ротор','СКА');

Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщения об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).

При попытке инициализировать локальный массив компилятор выводит сообщение об ошибке: Cannot initialize local variables (локальная переменная не может быть инициализирована). Локальный массив можно инициализировать только во время работы программы, например, так:

 

for i := 1 to 10 do

a[i]:= 0;