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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 15:52   #1
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию Как ускорить программу ?

Код:
Procedure XX;
var
i8,j8 :integer;
begin
   for j8 := 1 to 90 do
   for i8 := 1 to 90 do
    begin
      Form3.StringGrid2.Cells[i8,j8]:=form3.StringGrid1.Cells[i8,j8];
      Form3.StringGrid3.Cells[i8,j8]:=form3.StringGrid1.Cells[i8,j8];
    end;

 end;
 1:begin
     n7:=0;
      for k:=1 to Form3.StringGrid2.RowCount+1 do
        begin
         n7:=0;
         //Алгоритм записи номаров масива в массив
         for h:=1 to Form3.StringGrid2.ColCount+1 do
          begin
             if   Form3.StringGrid2.Cells[h,k]<>'' then begin inc(n7);
               SetLength(masM,length(masM)+1);
               masM[length(masM)-1]:=h;

         end;
    end;
//Алгоритм нахождения двух поисковых точек
  for h1:=1 to n7-1 do
    begin
        n9:=masM[h1-1];
        p9:=masM[h1];
         if (abs(p9-n9)<>1)and(abs(p9-n9)<>0) then   
           zigX(n9,p9,k,Form3.StringGrid2,Form3.StringGrid2);
     end;
   masM:=nil;
end;

procedure ZigX(n,p,k:integer; Tab:TStringGrid;var TabNext:TStringGrid);
var
i,t,i1:integer;
ss,sss,ssss :integer;
s7,ss7,sss7,s4,s5p :Single;
s,s2,s1,s3:Single;
s5:string;
i8,j8: Integer;
TabMas :array[0..90,0..90] of string;
  begin
    for j8 := 0 to 90 do
     for i8 := 0 to 90 do
      begin
        TabMas[i8,j8]:=Tab.Cells[i8,j8];
      end;
i1:=0;i:=0;i1:=0;
s1:=0;s2:=0;s3:=0;s4:=0;s:=0;ss:=0;sss:=0;ssss:=0;
s7:=0;ss7:=0;sss7:=0;
if (n>1)and(p>1) then
  begin

    t:=p-n;//Количество ячеек между ячейками  (10)
    s1:=StrToFloat( TabMas[n,k]);// (10)
    s2:=StrToFloat( TabMas[p,k]); // (50)
    s3:=s2-s1; //Разница (50-10=40)
     s5:=FloatToStr(s3/t); //Количество на одну ячейку  (40/10=4)
     s4:=StrToFloat(FormatData(s5,2));//  FormatData(s5,2)-округляет до второго знака после запятой  
        if n<p then //ПО возрастанию 10 40
          begin
            for i:=n+1 to p-1 do
             begin

              inc(i1);
               s:= StrToFloat(TabMas[n,k]);
               TabMas[i,k]:=FloatToStr(s+(i1*s4)); //Полное разбиение

             end;
         end;

  if n>p then  //По убыванию  40 10
   begin
      for i:=n+1 to p-1 do
       begin

        inc(i1);
        s7:= StrToFloat(TabMas[p,k]);
        sss7:=(s7+(i1*s4));
        ss7:=(sss7)*10;
        TabMas[i,k]:=FloatToStr(sss7);

      end;
  end;
end;

 for j8 := 0 to 90 do
  for i8 := 0 to 90 do
   begin
    TabNext.Cells[i8,j8]:=TabMas[i8,j8];
   end;

end;
Как можно ускорить выполнения этих процедур а то у меня 25 секунд уходит на выполнение .
Evil Skull

Последний раз редактировалось KORN; 02.05.2009 в 21:05.
juan666777 вне форума Ответить с цитированием
Старый 02.05.2009, 17:18   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Для начала оформите код в теги CODE (в таком виде разбираться в коде совсем не желания), напишите, что вообще делает этот код.
Arigato вне форума Ответить с цитированием
Старый 02.05.2009, 19:48   #3
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

Данная процедура XX используется для построения изогипс в геологических картах.Данные вводятся в таблицу потом рассчитывается сколько клеток между 2 числами (|1| | | |5|) 5/5=1 ,1+1*1=2,1+2*1 тоесть получается (|1|2 | 3| 4|5|) данная процедура рассчитывает по горизонтале .Ну что то вроде этого .И мне интересно кто больше отнимает процессорного времени перепись из массива в массив или операции сплавоюшей точкой ?
Evil Skull
juan666777 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ускорить работу программы SibBear Общие вопросы Delphi 7 27.03.2009 14:40
Как ускорить загрузку списка ListBox из txt-файла? Dux Компоненты Delphi 24 30.10.2008 19:02
Как ускорить работу с сетевой БД Ramires БД в Delphi 3 21.08.2008 12:16
Как ускорить загрузку битмапа в tImage Altera Мультимедиа в Delphi 10 24.03.2008 17:39
Как ускорить выполнение макросов tat-besidovska Microsoft Office Excel 1 22.01.2008 12:12