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

Компилятор не ругается, но при запуске выдает ошибку о работе с памятью

31.07.2014, 19:58. Показов 722. Ответов 6
Метки нет (Все метки)

Здравствуйте! Не могу понять в чем ошибка. Помогите, пожалуйста! Компилятор не ругается, но при запуске выдает ошибку о работе с памятью.

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
unit ClassBank;
 
 
 
 
interface
uses
 
  ClassAccount;
 
 
 
type
  Bank = class
         Abon : array[0..100] of Account;
         count : Integer;
 
         constructor Create();
 
         procedure AddAbon(Mon, PProc : integer);
         procedure DelAbon();
 
         function ShowMe(i : integer) : integer;
         function Members() : integer;
 
          end;
 
 
 
implementation
 
//--------------------------------------------------------------
  constructor Bank.Create();
  begin
    count := 0;
    Abon[0].Create(0, 0);
  end;
 
 
//--------------------------------------------------------------
  procedure Bank.AddAbon(Mon, PProc : integer);
  begin
 
    count := count + 1;
    Abon[count].Create(Mon, PProc);
 
    
  end;
 
 
//--------------------------------------------------------------
  procedure Bank.DelAbon();
  begin
    Abon[count].Money := 0;
    Abon[count].Procent := 0;
 
    count := count - 1;
  end;
 
 
//--------------------------------------------------------------
  function Bank.Members() : Integer;
  begin
    Result := count;
  end;
 
 
//--------------------------------------------------------------
  function Bank.ShowMe(i : Integer) : Integer;
  begin
    Result := Abon[count].ProcentYear(i);
  end;
 
end.



Вот используемый в данном классе класс :


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
unit ClassAccount;
 
interface
type
  Account = class
            Money : integer;
            Procent : integer;
 
            constructor Create(); overload;
            constructor Create(Mon, Proc : integer); overload;
 
            function ProcentYear(Mon, Proc, Year : Integer) : Integer; overload;
            function ProcentYear(Year : Integer) : Integer;  overload;
 
            end;
 
implementation
 
//==============================================================================
  constructor Account.Create();
  begin
    Money := 0;
    Procent := 0;
  end;
 
 
//==============================================================================
  constructor Account.Create(Mon, Proc : integer);
  begin
    Money := Mon;
    Procent := Proc;
  end;
 
 
//==============================================================================
  function Account.ProcentYear(Mon, Proc, Year : Integer) : integer;
  var
    i : integer;
  begin
 
    Money := Mon;
    Procent := Proc;
 
    Result := Money;
 
    for i := 1 to Year do
      Result := Result + ((Result * Procent) div 100);
 
  end;
 
 
//==============================================================================
  function Account.ProcentYear(Year : Integer) : integer;
  var
    i : integer;
  begin
    Result := Money;
 
    for i := 1 to Year do
      Result := Result + ((Result * Procent) div 100);
  end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2014, 19:58
Ответы с готовыми решениями:

При запуске из среды программа работает, при запуске выполняемого файла выдает ошибку
Добавлено через 1 минуту 35 секунд как исправить ошибки в названии темы? там должно было быть...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей...

Компилятор выдает ошибку при создании списка
Доброго времени суток всем, не могу понять где ошибка создаю список list самым простым способом...

Компилятор выдает ошибку при объявлении типа
Начал изучение Haskell совсем недавно, но уже столкнулся с проблемой. Ввожу: Func ::...

6
пофигист широкого профиля
4408 / 2903 / 823
Регистрация: 15.07.2013
Сообщений: 16,756
31.07.2014, 20:02 2
Delphi
1
2
3
4
  procedure Bank.AddAbon(Mon, PProc : integer);
  begin
     count := count + 1;
    Abon[count]:=Account.Create(Mon, PProc);
И т.д и т.п.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31182 / 20381 / 7939
Регистрация: 22.10.2011
Сообщений: 35,336
Записей в блоге: 6
31.07.2014, 20:05 3
Это не ошибка новичка, а ошибка переходящего на Дельфи с Турбо-Паскаля...
0
northener
01.08.2014, 03:07
  #4

Не по теме:

Цитата Сообщение от UI Посмотреть сообщение
Это не ошибка новичка, а ошибка переходящего на Дельфи с Турбо-Паскаля...
Во как? Очевидно ты знаешь что-то ещё, что нам, простым смертным, неизвестно.

0
volvo
01.08.2014, 03:46
  #5

Не по теме:

Очевидно. Синтаксис вызова конструктора объекта: Obj.Create; - это то, что делает ТС. И то, что было в Турбо Паскале. В более продвинутых компиляторах уже используются классы, и синтаксис, соответственно, меняется на Obj := TObj.Create;

0
6 / 6 / 0
Регистрация: 11.04.2012
Сообщений: 121
01.08.2014, 12:20  [ТС] 6
Никогда не имел дело с паскалем. Только Си
0
5 / 5 / 2
Регистрация: 14.12.2013
Сообщений: 117
03.08.2014, 09:35 7
Странно, с Си вроде должен знать. В функции которая добавляет, проверь не равняется ли (count = 100).
Код
procedure Bank.AddAbon(Mon, PProc : integer);
  begin
    if (count <> 100) then 
    begin
        count := count + 1;
        Abon[count].Create(Mon, PProc);
    end;
    
  end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2014, 09:35

Помощь в написании контрольных, курсовых и дипломных работ здесь.

При работе через LAN кабель выдает синий экран, в котором написано что есть проблемы с оперативной памятью
Здравствуйте уважаемые форумчане. Столкнулся со следующей проблемой. Есть ноутбук Fujitsu Siemens...

Компилятор выдает ошибку при использовании фабричного метода
Всем привет!!! новая ошибка... смотрите, теперь у меня есть класс template &lt;typename T&gt; ...

Массив: при компилировании исходника компилятор выдает ошибку
# include &lt;iostream&gt; # include &lt;math.h&gt; # include &lt;stdio.h&gt; using namespace std; int main () {...

Не выдает ошибку при работе
При работе кода ошибку браузер не пишет, но и в бд csv не записывается. Вот код &lt;!DOCTYPE html&gt;...


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

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

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