20.08.2012, 10:55 | #1 (permalink) |
Member
Регистрация: 10.08.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 25
|
Есть ли такая функция?
For i:=1 to 10 do а примерно Write('Введите размерность массива N ->'); ReadLn(N); .... Понятно, что ручками больше 10x10 массив трудно вводить (да и 10x10 затруднительно), но я, как математик, хочу все сделать в общем виде. Программку пишу на PascalABC, нашел функцию для одномерного массива SetLength(X,N). Для двумерного она, есессно, не работает. Есть аналог для двумерного массива, или как-то по другому придется? Если будет совсем сложно, за помощью, кэшна, обращусь, но ведь хочется сначала самому... |
20.08.2012, 10:55 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, обратите внимание - это похожие на вашу темы Есть CPU, есть Sapphire Radeon HD 7850 920Mhz Вот такая есть задумка |
20.08.2012, 11:13 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const Nmax=25; Код:
Var N:Integer; A:Array[1..Nmax,1..Nmax]; ... Код:
Begin write('N= '); readln(N); for i:=1 to N do for j:=1 to N do begin write('A[',i:2,',',j:2,']= '); readln(A[i,j]); end; ... Подробнее этот вопрос рассмотрен мною здесь: Перемножение матриц |
|
20.08.2012, 13:55 | #3 (permalink) |
Member
Регистрация: 10.08.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 25
|
Спасибо большое, Владимир. Как создавать статистический массив я помню еще со времен старика Бейсика Интересовал именно динамический массив. Наверное, слишком замудрено. Придется обойтись статическим. Еще раз большое спасибо.
|
20.08.2012, 19:06 | #5 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
дельфи поддерживает динамические массивы.
нужно объявить просто переменную без длины. Код:
var arr: array of integer; Код:
SetLength(arr,n); обхявляется как Код:
var arr: array of array of integer; как-то так |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
21.08.2012, 06:05 | #7 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Вообще-то топикстартера изначально интересовал механизм использования динамических массивов под PascalABC, спрашивается, при чем тут Delphi? Разве что упор сделан на ObjectPascal.
Однако согласен, что можно объявить массив именно так, как предложил Андрей, без явного объявления размерности. |
21.08.2012, 11:55 | #9 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
A^[i,j]:= устроен так, что не учитывает порядка расположения индексов, т.е. A^[2,3] и A^[3,2] указывают на ОДНУ И ТУ ЖЕ область памяти. Поэтому при последовательном заполнении двумерного массива введенное значение A^[2,3] будет потеряно, как только дойдем до A^[3,2]. Причем никаких сообщений об ошибках, предупреждений и т.п. выдано не будет! Вот на что я хочу обратить особое внимание. А как его там задать-описать - это не проблема. |
|
11.11.2012, 16:25 | #10 (permalink) |
Member
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|