Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 01:00   #1
Dalokoshka
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 27
По умолчанию Алгоритм Штрассена (как исправить?) :confused:

Помогите , пжл, разобраться, уже часов 15 сижу, башка болит...
Вот код программы, ошибка stack overflow - оно и понятно, 21 массив в рекурсивной подпрограмме только + все остальное (проверка на степень 2 и дополнение 0), но как довести до ума? чт
Код:

    procedure rek(x,y:mas; var z:mas; n:integer);
    var u,v,i,j:integer;
        q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14:mas;
        p1,p2,p3,p4,p5,p6,p7,r:mas;
    begin
         if n>1 then begin
                     {n:= n div 2;}
                     u:=n-1;
                     v:=n+1;
                     for i:=1 to 1 do
                         for j:=1 to 1 do begin
                                               q1[i,j]:=x[u,u]+x[v,v];
                                               q2[i,j]:=y[u,u]+y[v,v];
                                               q3[i,j]:=x[v,u]+x[v,v];
                                               q4[i,j]:=y[u,u];
                                               q5[i,j]:=x[u,u];
                                               q6[i,j]:=y[u,v]-y[v,v];
                                               q7[i,j]:=x[v,v];
                                               q8[i,j]:=y[v,u]-y[u,u];
                                               q9[i,j]:=x[u,u]+x[u,v];
                                               q10[i,j]:=y[v,v];
                                               q11[i,j]:=x[v,u]-x[u,u];
                                               q12[i,j]:=y[u,u]+y[u,v];
                                               q13[i,j]:=x[u,v]-x[v,v];
                                               q14[i,j]:=y[v,v]+y[v,v]
                                          end;

                     rek(q1,q2,p1,n div 2);
                     rek(q3,q4,p2,n div 2);
                     rek(q5,q6,p3,n div 2);
                     rek(q7,q8,p4,n div 2);
                     rek(q9,q10,p5,n div 2);
                     rek(q11,q12,p6,n div 2);
                     rek(q13,q14,p7,n div 2);
                    end
                else
                    for i:=1 to 1 do
                        for j:=1 to 1 do begin
                                              z[u,u]:=p1[i,j]+p4[i,j]-p5[i,j]+p7[i,j];
                                              z[u,v]:=p3[i,j]+p5[i,j];
                                              z[v,u]:=p2[i,j]+p4[i,j];
                                              z[v,v]:=p1[i,j]+p3[i,j]-p2[i,j]+p6[i,j]
                                         end
    end;

begin
     clrscr;
     ra:=0; ka:=0; rb:=0; kb:=0; mxm:=0; w:=' ';
     izmeri(ra,ka,rb,kb,mxm);
     clrscr;
     ievade(a,'A',ra,ka,mxm);
     clrscr;
     ievade(b,'B',rb,kb,mxm);
     rek(a,b,c,mxm);
     for i:=1 to mxm do
     begin
          for j:=1 to mxm do write(c[i,j]:0:0, w:3);
          readln
     end;
     readln
end.
чтоб работала?
Сдать надо до 8 утра, потом будет поздно.
Спасибо огромное и низкий поклон всем тем, добрым людям, которые помогают мне - бедному студенту и моим коллегам.
Dalokoshka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправить алгоритм, rand. СМО магазина Suriv Общие вопросы C/C++ 0 25.04.2011 21:33
Вопрос по ОЗУ:confused: arturkhusnull Помощь студентам 0 23.09.2010 14:28
:confused:Не устанавливается компонент TMS!!!:confused: Virus25 Компоненты Delphi 4 20.09.2010 13:15
Помогите разобраться :confused: Данила777 Софт 1 19.04.2009 13:06
как установить С++ и не уронить Wind-у?:confused: Bogood Общие вопросы C/C++ 4 12.10.2008 22:09