Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/23: Рейтинг темы: голосов - 23, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 4
1

invalid pointer operation

03.08.2012, 22:35. Показов 4395. Ответов 5
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
function MathFunc.MyMath(m:integer):integer;
     var
     i1,i,n,i2,i3:integer;
     b,g,a:mas;
     h,pkt:double;
     stak:array[0..2] of double;
       j,y:integer;
  scol34,scol64:mas;
  suma:double;
     begin
      SetLength(a,m+1);
      SetLength(b,m+1);
      SetLength(g,m+1);
      i3:=Length(Yi);
     h:=0.25;
     n:=0;
     i2:=0;
     i:=0;
     SetLength(sglag,Length(Yi)*4);
  TMNK(Xi,Yi,b,g,a,Length(Xi)-1,m) ;
 
     repeat
              for i1:=0 to 1 do
              stak[i1]:=stak[i1+1];
              stak[2]:=Pk(i2*h,a,b,g,m);
             // n:=n+1;
            // sglag[n-1]:= Pk(i2*h,a,b,g,m);
              if (stak[0]>0.00001) and (stak[1]>0.00001) and (stak[2]>0.00001) then
              begin
                  if (stak[0]>stak[1])and(stak[1]<stak[2])then
                       begin
                       i:=i+1;
                       SetLength(mai,i);
                       mai[i-1,0]:=i2;
                        mai[i-1,1]:=stak[1];
                          mai[i-1,2]:=-1 ;
                         mai[i-1,3]:=Yi[Round(i2*h)]  ;
                      end
                          else if (stak[0]<stak[1])and(stak[1]>stak[2]) then
                       begin
                       i:=i+1;
                       SetLength(mai,i);
                       mai[i-1,0]:=i2;
                        mai[i-1,1]:=stak[1];
                         mai[i-1,2]:=1
                      end
              end;
             Form2.Chart1.Series[2].AddXY(i2*h,Pk(i2*h,a,b,g,m));
              i2:=i2+1;
        until(i2*h>=i3);
 
 
     Setlength(scol34,Length(Yi)-34);
     Setlength(scol64,Length(Yi)-64);
   for y:=Length(Yi)-1 downto 34  do
              begin
              suma:=0;
                    for j:=y downto y-33 do
                    suma:=suma+Xi[j];
                    scol34[y]:=suma/34;
               end;
 
            for y:=Length(Yi)-1 downto 64 do
              begin
              suma:=0;
                    for j:=y downto y-63 do
                    suma:=suma+Xi[j];
                    scol64[y]:=suma/64;
               end;
               for y:=Length(Yi)-1 downto 64 do
               begin
               pkt:=Pk(i2*h,a,b,g,m);
          if (scol34[y]-pkt<=0.001)or(scol64[y]-pkt<=0.001) then
          Form2.Chart1.Series[3].AddXY(y,pkt);
               end;
 
      SetLength(a,0);
      SetLength(b,0);
      SetLength(g,0);
     end;
происходит ошибка при выходе из функции .Подскажите что может быть не так.Сам класс описан в отдельном модуле.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2012, 22:35
Ответы с готовыми решениями:

Invalid pointer operation
Создал программу для поиска седловых точек в матрице (если элемент матрицы максимален в своей...

Invalid pointer operation
Доброго времени суток! Есть программа тестирования, которая работает с двумя типами вопросов : -...

Ошибка: Invalid pointer operation
procedure TForm1.Button2Click(Sender: TObject); var i, n : Integer; Point : array of...

Ошибка Invalid pointer operation
Type TICQContact = record uin: string; pwd: string; end; var Form2: TForm2;...

__________________
5
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 28
03.08.2012, 23:08 2
Что ты возращаешь из функции?
0
Модератор
63373 / 47069 / 32443
Регистрация: 18.05.2008
Сообщений: 114,082
04.08.2012, 09:37 3
Вообще какая-то не функция, а целая программа...
Ну и должно же быть в конце
Delphi
1
result:=??//какое-то целое значение
0
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 4
05.08.2012, 10:35  [ТС] 4
MyMath:=0;это просто начало описания логики но даже при присвоении выходного значения нечего не меняется.она должна находить max(min) графика и отмечать их пока+определять поведения на последнем участке.не может ли происходить ошибки из-за рисования на форме другого модуля?
0
3941 / 1866 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
05.08.2012, 11:09 5
Вообще вот здесь есть некорректность:
Delphi
1
2
     Setlength(scol34,Length(Yi)-34);
     Setlength(scol64,Length(Yi)-64);
Допустим Length(Yi)=124, тогда scol34: Array[0..59] и обращение:
Delphi
1
2
3
4
5
6
7
   for y:=Length(Yi)-1 downto 34  do
              begin
              suma:=0;
                    for j:=y downto y-33 do
                    suma:=suma+Xi[j];
                    scol34[y]:=suma/34; //Здесь обращение за пределы массива
               end;
будет к scol34[123], что выходит за пределы массива. Ну и дальше цикл также. Может и в других местах.
Как исправить, думаю, догадаешься.
1
0 / 0 / 0
Регистрация: 03.08.2012
Сообщений: 4
05.08.2012, 13:30  [ТС] 6
закоментил эту часть кода и все прошло ровно .думал если были там проблемы он бы сразу начал ругаться,не ожидал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2012, 13:30

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Ошибка: invalid pointer operation
Привет не могу вытащить настройки CheckBox1 из ini файла если CheckBox1.Checked:=true то выдает ...

Ошибка: Invalid pointer operation
Здравствуйте. Пытаюсь вставить картинку в программу через компонент Image. После вставки, при...

Ошибка : Invalid pointer operation
При работе программы возникает данная ошибка ! Возможно она появляется при создании массива вот...

Ошибка: Invalid pointer operation
Не подскажете как исправить ошибку при вычислении второй функции т.е У вылезает окно &quot;Invalid...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.