Ввод и вывод массивов

Implementation

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

Team: array [1..4] of String [10]=

('Шахтёр','Динамо','Спартак', 'Зенит');

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

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

Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.

Для ввода и вывода одномерного массива можно использовать компоненты Memo или StringGrid. В следующем примере мы воспользуемся уже знакомым компонентом Memo.

Рассмотрим пример программы обработки массива, заданного неявно (блок-схема алгоритма приведена выше).

nom

Процедура обработки щелчка на кнопке «Вычисление» (кн. Button_calc) – массив задан неявно

procedure TForm1.Button_calcClick(Sender: TObject);

type mas=array[1..10] of real;

var

X,Y:mas;

Xn,Xk,dX, max:real;

i,N, nom:integer;

begin

Xn:=StrToFloat(Edit_Xn.Text);

Xk:=StrToFloat(Edit_Xk.Text);

dX:=StrToFloat(Edit_dX.Text);

N:=trunc((Xk-Xn+dx/2)/hX)+1;

for i:=1 to N do

begin

X[i]:=Xn+dX*(i-1);

if (cos(X[i]<>-1) then

Y[i]:=ln(abs(2+2*cos(X[i])))

Else

Y[i]:=0;

Memo_X.Lines.Add(FormatFloat('000.0',X[i]));

Memo_Y.Lines.Add(FormatFloat('000.0',Y[i]));

if (i=1) then

begin

max:=Y[i];

nom:=i

end

else

if (Y[i]>max) then

begin

max:=Y[i];

nom:=i

end;

end;

Edit_max.Text:=FloatToStr(max);

Edit_nom.Text:=IntToStr(nom);

End;

Рассмотрим этот же пример программы обработки массива, заданного явно.

ПРИМЕР 7.3. Задан массив X(N) и его размерность N. Сформировать массив Y, вычислив по формуле его элементы. Определить максимальный элемент массива Y и его порядковый номер.

Если массив X(N) задан, это означает, что задана его размерность и его элементы. В этом случае сначала необходимо ввести размерность массива N. Затем организовать цикл для поэлемнного ввода массива.

nom

Процедура обработки щелчка на кнопке «Вычисление» (кн. Button_calc) – массив задан явно

procedure TForm1.Button_calcClick(Sender: TObject);

type mas=array[1..10] of real;

var

X,Y:mas;

max:real;

i,N, nom:integer;

begin

//определие размерности X по количеству строк Memo_X

N:=Memo_X.Lines.Count;

for i:=1 to N do

begin

X[i]:= StrToFloat(Memo_X.Lines[i-1]);//ввод i-го элемента массива

if (cos(X[i]<>-1) then

Y[i]:=ln(abs(2+2*cos(X[i])))

Else

Y[i]:=0;

Memo_Y.Lines.Add(FormatFloat('000.0',Y[i])); // вывод i-го элемента массива

if (i=1) then

begin

max:=Y[i];

nom:=i

end

else

if (Y[i]>max) then

begin

max:=Y[i];

nom:=i

end;

end;

Edit_max.Text:=FloatToStr(max);

Edit_nom.Text:=IntToStr(nom);

End;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: