Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите перевести на VB

9.4K
12 ноября 2006 года
vitalik_4
37 / / 12.11.2006
Есть ф-ция расчета определителя матрицы на Паскале

const m=4;
type mas=array[1..m,1..m] of real;
var a:mas;
i,j:integer;


Function F(c:mas;n:integer):real;
var k,p,q,t:integer;
sum:real;
b:mas;
begin
sum:=0;
for k:=1 to n do begin
for p:=2 to n do begin
q:=1;t:=1;
while q<n do begin
if q=k then t:=t+1;
b[p-1,q]:=c[p,t];
q:=q+1;t:=t+1
end
end;
if k mod 2 =0 then sum:=sum-c[1,k]*F(b,n-1)
else sum:=sum+c[1,k]*F(b,n-1)
end;
F:=sum
end;

помогите перевести на VB, у меня получилось следующее (только оно
не работает, возвращает всё время 0)

Private Function det(c() As Single, n As Integer)
Dim k As Integer, p As Integer, q As Integer, t As Integer
Dim b(1 To 4, 1 To 4) As Single

retval = 0


For k = 1 To n
For p = 2 To n
q = 1: t = 1
Do While q < n
If q = k Then t = t + 1
b(p - 1, q) = c(p, t)
q = q + 1
t = t + 1
Loop
Next p

If k Mod 2 = 0 Then
retval = retval - c(1, k) * det(b, n - 1)
Else: retval = retval + c(1, k) * det(b, n - 1)
End If
Next k
det = retval
End Function
подскажите где я туплю ?
10K
12 ноября 2006 года
АлРАД
58 / / 30.08.2006
Я вообще делфей не знаю, но по логике здесь ты объявляешь тип переменных как двойной массив, так?
Цитата:
type mas=array[1..m,1..m] of real;


Логично тогда и в vb сделать то же: а у вас , Виталик Четвертый,

Цитата:
Private Function det(c() As Single, n As Integer)

здесь c - простой динамический массив, а где вы его потом redim'ите я не вижу в упор
?

280
13 ноября 2006 года
ВуД™
326 / / 04.01.2006
Смотри суда http://forum.sources.ru/index.php?showtopic=161103 сдесь уже есть ответ на твой вопрос...:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог