Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.152.103] |
|
Сообщ.
#1
,
|
|
|
нужна программа умножения fucking матриц!
мож у кого исходник какой есть? или так в облегченном варианте че-нть напишите. буду безумно благодарен. встречу, пива налью. срочно нужно, плиззз!!! зы:: лучше в мыло 8) |
Сообщ.
#2
,
|
|
|
в асме я все-таки новичок а потому отсылаю пргу на паскале(если поможет-хорошо, не поможет-забей)
-------------------------------------------------------------------------------------------------- program matrices; type row_vector=array[1..100] of intrger; row_index=array[1..100] of ^row_vector; matrix=record no_rows,no_cols:word; index_ptr:^row_index; end; var a,b,c:matrix; inds_size,elems_size,i,k:word; m,n:longint; procedure create_matrix(var a:matrix;r,c:word); var j,k:word; begin with a do begin no_rows:=r;no_cols:=c; j:=no_rows*sizeof(pointer); inc(inds_size,j); getmem(index_ptr,j); for j:=1 to no_rows do begin k:=no_cols*sizeof(integer); inc(elems_size,k); getmem(index_ptr^[j],k); for k:=1 to no_cols do index_ptr^[j]^[k]:=-5+random(11); end; end; end; procedure delete(var a:matrix); var j:word; begin with a do begin for j:=1 to no_rows do freemem(index_ptr^[j],no_cols*sizeof(integer)); freemem(index_ptr,no_rows*sizeof(pointer)); index_ptr:=nil; end; end; procedure product_matrix(var a,b,c:matrix); var i,j,k:word; sum:longint; begin if a.no_cols<>b.no_rows then halt(1); create_matrix(c,a.no_rows,b.no_cols); for i:=1 to a.no_rows do for k:=1 to b.no+cols do begin sum:=0; for j:=1 to a.no_cols do sum:=sum+a.index_ptr^[i]^[j]*b.index_ptr^[j]^[k]; c.index_ptr^[i]^[k]:=sum; end; end; end; procedure print_matrix(var a:matrix;ss:string); var i,k:word; begin with a do begin writeln(ss); for i:=1 to no_rows do begin for k:=1 to no_cols do write(index_ptr^[i]^[k]:4); end; end; end; begin inds_size:=0; elems_size:=0; m:=memavail; writeln('перед размещением свободно ',m:8,' байт'); randomize; create_matrix(a,4,5); create_matrix(b,5,3); product_matrix(a,b,c); n:=memavail; writeln; writeln; writeln; writeln; m:=m-n-inds_size-elems_size; print_matrix(a,'матрица='); print_matrix(b,'матрица='); print_matrix(c,'матрица='); delete©; delete(b); delete(a); m:=memavail; writeln('свободно: ',m:8,'байт'); readln; end. P.S.:извини если есть опечатки -у меня инет всего до 2-х часов-вылезать скорее надо- исправь |
Сообщ.
#3
,
|
|
|
во,блин,уложился как.................
|
Сообщ.
#4
,
|
|
|
Мдааааа....
Ну ничего, пару суток посидишь - переведёшь на asm.... ;D И всего делов-то! (с) |