Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

Массивы   Найти похожие ветки 

 
SergeyM   (2003-09-19 15:28) [0]

Здравствуйте все.
Подскажите плз, как мне получить динамический двумерный массив.
Тотже но одномерный, определяю в нем кол-во элементов через SelLength(a,d-1), а как быть в многомерном?


 
Palladin   (2003-09-19 15:30) [1]

var
a:array of array of integer;

setlength(a,2);
setlength(a[0],3);
setlength(a[1],2);


 
SergeyM   (2003-09-19 15:32) [2]

Palladin Привет, если не трудно опиши последние две строчки.


 
SergeyM   (2003-09-19 15:46) [3]

Плиз поясните мне что написано в двух последних строках у Palladin"a


 
Nikolay M.   (2003-09-19 15:49) [4]

Указание размерности двумерного массива: 3Х2.


 
Владислав   (2003-09-19 15:52) [5]

setlength(a[0],3);
setlength(a[1],2);

Вот это и написано. Установка размера массивов. Ну, типа, массивы то многомерные. А вообще, пример в хелпе же есть. Он же, в общем то, достаточно понятный. Типа, F1, и счастье наступает.


 
SergeyM   (2003-09-19 15:53) [6]

Значит чтобы получить многомерный массив нужно описать все три строки или достаточно двух.


 
SergeyM   (2003-09-19 15:55) [7]

Владиславу: поставил курсор на слово и получил описание одномерного массива.


 
Владислав   (2003-09-19 16:00) [8]

"получить многомерный массив"

Смущает фраза. Если Вы правильно выразились, а я правильно понял, то да :-)

> SergeyM (19.09.03 15:55) [7]

Ну типа поисковую думалку включить надо. Думаю, что пользование хелпом, не сложнее, чем сам паскаль.


 
SergeyM   (2003-09-19 16:03) [9]

Без базара, нашел :-)


 
Владислав   (2003-09-19 16:08) [10]

> SergeyM (19.09.03 16:03) [9]

Ну и чудно! Удачи! ;-)


 
SergeyM   (2003-09-19 16:16) [11]

Да вот ни че не получается блин!
Задача у меня такая нужно найти алгебраическое дополнение к исходной матрице, а там как известно нужно из 4-х мерной в 3-х мерную переводить, и делфя ошибку сразу выдает.


 
Владислав   (2003-09-19 16:19) [12]

> SergeyM (19.09.03 16:16) [11]

Блин, нету тут телепатов. Остальные заявления - понты дешевые :-)
Код давай. Ошибку тоже.


 
SergeyM   (2003-09-19 16:23) [13]

Может где не прав извеняйте.

function TForm1.Dop(m, n, k: integer): Integer;
var i,j,x,y:integer;
e,a: array of array of integer;
begin
x:=1;
y:=1;
SetLength(e,k-1); //это под ? я ее тыкал везде
SetLength(e[x],k-1); //тоже
SetLength(a,k);
for i:=Low(a) to High(a) do
begin
Memo2.Lines.Add("");
SetLength(a[i],k);
for j:=Low(a[i]) to High(a[i]) do
begin
if (a[i,j] = a[m,j] or a[i,n]) then //здесь после ошибки выделяет строку
begin
a[i,j]:=a[i,j];
end
else
begin
e[x,y]:=a[i,j];
Memo2.SelText:=IntToStr(e[x,y])+" ";
if y = k-1 then
begin
inc(x);
y:=1;
end
else inc(y);
end;
end;
end;
Ошибка:
"Попытка доступа в адрес такой-то в моем модуле чтение из адреса 0000000000


 
Sandman25   (2003-09-19 16:32) [14]

for j:=Low(a[i]) to High(a[i]) do
begin
if (a[i,j] = a[m,j] or a[i,n]) then //здесь после ошибки выделяет строку
begin
a[i,j]:=a[i,j];
end

Странные конструкции...

Может, так:
if (a[i,j] = a[m,j]) or (a[i,n] = ?)

Это вообще непонятно зачем
a[i,j]:=a[i,j];

И нужно быть уверенным, что существует элемент a[m,j]. Массив прямоугольный? В смысле все строки имеют одинаковое число столбцов?


 
Владислав   (2003-09-19 16:32) [15]

Блин, код плохо форматируется, читать плохо...

> SergeyM (19.09.03 16:23) [13]

Может где не прав извеняйте.

Да брось ты...

Поставь на время отладки галку Range checking. Если проблема в массивах, поймаешь ее.


 
SergeyM   (2003-09-19 16:38) [16]

Сообщение a[i,j]:=a[i,j]; написано чтобы ниче не делал
В функцию задаются параметры m,n - это индексы исходного массива, а к - это размерность исходного массива.
Вообще без динамических массивов все работало только выдавло странной пропорции массив вот я и решил попробовать динамический , а что вышло уже говорил.


 
MBo   (2003-09-19 16:39) [17]

SetLength(Mat4x4,4,4);
SetLength(Mat3x3,3,3);
нумерация с нуля!


 
SergeyM   (2003-09-19 16:41) [18]

SetLength(Mat4x4,4,4) - а это чего?


 
Sandman25   (2003-09-19 16:42) [19]

>Сообщение a[i,j]:=a[i,j]; написано чтобы ниче не делал

Не понял. Поставьте if not (условие) then.


 
SergeyM   (2003-09-19 16:44) [20]

Sandman25 © > точно чето я и забыл совсем.
Извените я ухожу получать знания в институт ежели че то через 4 часа поговорим.


 
Думкин   (2003-09-19 19:02) [21]


> [20] SergeyM (19.09.03 16:44)

Вот и получай, а не смущай народ.
"Народ, у меня рожа красная - А пить меньше пробовал? - а что помогает?"


 
Anatoly Podgoretsky   (2003-09-19 22:40) [22]

SetLength(Ar,Y,X)

Nikolay M. © (19.09.03 15:49) [4]
Ой как ты неправ, это объявление нерегулярного (неравномерного) массива.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.011 c
3-3731
erw
2003-09-12 16:06
2003.10.02
Как уменшить I/O cost у большой таблицы?


14-4050
race1
2003-09-15 16:52
2003.10.02
ааа! потерял менюшку


6-4026
Dysan
2003-08-01 15:39
2003.10.02
проблема с FastNet smtp


11-3809
ABM
2003-01-23 10:16
2003.10.02
ListView - не работает OnChange, OnKeyUp и OnKEyDown -->exception


1-3945
Goshi
2003-09-20 00:18
2003.10.02
Как отловить завершение работы программы через ShellExecute





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский