Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

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=0) 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;

 

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

 

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

 

N:=Memo_X.Lines.Count; // размерность X

 

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]));

if (i=0) 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;

 

<== предыдущая лекция | следующая лекция ==>
Инициализация глобальных массивов | Непозиционные системы счисления
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 554; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.