Объявление массива
Массивы
Лекция 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;