КАТЕГОРИИ: Архитектура-(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. Рассмотрим пример программы обработки массива, заданного неявно (блок-схема алгоритма приведена выше).
Процедура обработки щелчка на кнопке «Вычисление» (кн. 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;
Рассмотрим этот же пример программы обработки массива, если он задан явно (блок-схема алгоритма приведена выше).
Процедура обработки щелчка на кнопке «Вычисление» (кн. 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; Просмотров: 579; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |