Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
-=Den=-
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 175
1

Не могу найти причину ошибки

26.04.2012, 15:59. Просмотров 385. Ответов 7
Метки нет (Все метки)

данная программа при за пуске вываливается с ошибкой "Floating point overflow"
пересмотрел весь код - не могу найти причину.

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
Vector = array[1..100] of Extended;
Matrix = array[1..100] of Vector;
  TForm1 = class(TForm)
    SG1: TStringGrid;
    SG2: TStringGrid;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Label8: TLabel;
    SG3: TStringGrid;
    Edit2: TEdit;
    Label9: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
a: Matrix;
b,x: Vector;
n:integer;
Form1: TForm1;
x0: extended;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var m:integer;
begin
m:=strtoint(edit1.text);
SG1.colCount:=m;
SG1.rowCount:=m;
SG2.colCount:=1;
SG2.rowCount:=m;
SG3.colCount:=1;
SG3.rowCount:=m;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  s1, k: double;
  eps: real;
  i, j: integer;
//  q: boolean;
begin
n:=StrToInt(Edit1.Text);
for j:=1 to n do
  for i:=1 to n do
    a[i,j]:=StrToFloat(SG1.Cells[j-1,i-1]);
eps:=StrToFloat(Edit2.Text);
for i:=1 to n do
  b[i]:=StrToFloat(SG2.Cells[0,i-1]);
begin
  repeat
  k:=0;
  for i := 1 to n do
  begin
    s1 := 0;
    For j := 1 to n do
      if i <> j then
        s1 := s1 + a[i, j]*x[j];
    x0 := x[i];
    x[i] :=(b[i]-s1)/a[i,i];
    k:=abs(x[i])-abs(x0);
  end;
  inc(j);
  Until k < eps;
 
for i:=1 to n do
begin
  s1:=0;
  for j:=1 to n do
    if j<>i then
      s1:=s1+abs(a[i,j]);
  if s1 >= abs (a[i,i]) then
  begin
    Memo1.Lines.Add('Метод Зейделя не сходится для данной системы');
    break;
  end;
end;
end;
 
  for i:=1 to n do
    SG3.cells[0,i-1]:=FloatToStr(x[i]);
  Memo1.Lines.Add(' Количество итераций: '+IntToStr(j));
 
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.text:='2';
SG1.Cells[0,0]:='1';
SG1.Cells[0,1]:='3';
SG1.Cells[1,0]:='2';
SG1.Cells[1,1]:='5';
SG2.Cells[0,0]:='4';
SG2.Cells[0,1]:='5';
end;
 
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 15:59
Ответы с готовыми решениями:

Не могу понять причину ошибки
в общем есть поле с динамически созданными TImage procedure...

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

Invalid pointer operation exeption - не могу найти причину
Приветствую этот раздел. По моему заданию в универе пишу программу, и на данном...

обьясните причину ошибки
обьясниет мне в чем тут проблема!!!!!я чет недопонимаю!

Объясните причину ошибки
Я пытаюсь сделать функции в графическом редакторе: вырезать, копировать,...

7
Andretti
250 / 136 / 45
Регистрация: 19.03.2012
Сообщений: 314
Записей в блоге: 2
26.04.2012, 16:08 2
-=Den=-, прикрепи скрин.. потому что у меня все работает
смотри вложение
0
Миниатюры
Не могу найти причину ошибки  
Andretti
250 / 136 / 45
Регистрация: 19.03.2012
Сообщений: 314
Записей в блоге: 2
26.04.2012, 16:15 3
-=Den=-, может какое-то значение ты не ввел? у меня почему-то такое ощущение....
Цитата Сообщение от -=Den=- Посмотреть сообщение
ошибкой "Floating point overflow"
0
-=Den=-
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 175
26.04.2012, 16:40  [ТС] 4
работает. но если точность вместо 34 ввести 2 и меньше, то не работает
0
Andretti
250 / 136 / 45
Регистрация: 19.03.2012
Сообщений: 314
Записей в блоге: 2
26.04.2012, 16:45 5
-=Den=-, а хде сдеся точность у тебя?? у меня все компоненты ведь от балды выставлены на скрине. какое поле за точность отвечает?

Добавлено через 57 секунд
а.. вижу..
0
Andretti
250 / 136 / 45
Регистрация: 19.03.2012
Сообщений: 314
Записей в блоге: 2
26.04.2012, 16:47 6
-=Den=-, опять врешь.. смотри скрин..
0
Миниатюры
Не могу найти причину ошибки  
Andretti
250 / 136 / 45
Регистрация: 19.03.2012
Сообщений: 314
Записей в блоге: 2
26.04.2012, 16:48 7
-=Den=-, проверь что ты вводишь как знак отделяющий целые - запятая или точка?
0
-=Den=-
7 / 7 / 2
Регистрация: 03.04.2011
Сообщений: 175
26.04.2012, 17:02  [ТС] 8
ввожу запятую

Pr1.rar
0
26.04.2012, 17:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2012, 17:02

Не пойму причину ошибки!
Здравствуйте! В данном куске кода у меня должен удаляться выделенный элемент в...

Показывает ошибку, не могу понять причину
Показывает такую ошибку Project2.dpr(16): Illegal type in Write/Writeln...

2 ошибки в простой программе. Сам не могу найти.
вобщем вот) procedure TForm1.Button1Click(Sender: TObject); begin...


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

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

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