|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.09.2007, 16:27 | #1 |
Пользователь
Регистрация: 09.09.2007
Сообщений: 13
|
Вызов процедуры
Дана процедура:
procedure MultMatVecString(a:aType; b,c:bType); var i,j:integer; begin for i:=Low(a) to High(a) do begin c[i]:=0; for j:=Low(c) to High(c) do c[i]:=c[i]+a[i,j]*b[i] end; end; При вызове по имени и формальным параметрам MultMatVecString(n,u,a) прога виснет. Значения элементов вектора a не выводятся. Как правильно вызвать процедуру из тела программы? Последний раз редактировалось Илья Кибель; 15.09.2007 в 16:30. |
15.09.2007, 20:16 | #2 |
Пользователь
Регистрация: 01.09.2007
Сообщений: 35
|
Попробуй сделать трассировку программы. Может какой нить цикл вызывает зависание. При пошаговом выполнении все увидишь
|
15.09.2007, 21:25 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Я не сталкивался в своей практике с такими процедурами, но думаю ошибка в for i:=Low(a) to High(a) do begin, т.к у тебя (а)-двухмерный массив, а функция Low(a) и High(a) возвращают минимальный и максимальный индекс массива (а), ну одномерного массива это понятно, а двухмерного как это ты себе представляешь?
Уже Чему-то научился Но этого мало
|
15.09.2007, 21:57 | #4 | |
Пользователь
Регистрация: 09.09.2007
Сообщений: 13
|
Вызов процедуры
Цитата:
|
|
15.09.2007, 23:38 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Немного не понятно что ты хочешь сделать в этой процедуре?
Уже Чему-то научился Но этого мало
|
16.09.2007, 10:24 | #6 |
Пользователь
Регистрация: 09.09.2007
Сообщений: 13
|
|
16.09.2007, 18:13 | #7 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
for i:=Low(a) to High(a) do begin
по идее принимает M*N значений, тогда идёт выход за границы массива c[i]:=0; |
17.09.2007, 19:43 | #8 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
К сожалению не помню как умножается матрица на вектор.
поэтому не могу сказать алгоритм, но в общем случае Цикл с двухмерной матрицей a[i,j] можно задать следующим образом: for K1:=1 to I do for k2:=1 to J do begin ... end;
Уже Чему-то научился Но этого мало
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызов процедуры | igbizon | Общие вопросы Delphi | 5 | 02.09.2008 10:44 |
Вызов процедуры | Kashp | Общие вопросы Delphi | 4 | 31.03.2008 16:22 |
Вызов процедуры | Stanislav | Общие вопросы Delphi | 9 | 22.11.2007 19:01 |
вызов процедуры из exe? | Volkogriz | Общие вопросы Delphi | 9 | 16.11.2007 22:34 |
Вызов процедуры | Monoflextor | Общие вопросы Delphi | 2 | 28.04.2007 17:32 |