Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/54: Рейтинг темы: голосов - 54, средняя оценка - 4.81
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69

Floating point overflow

08.02.2010, 02:48. Показов 11475. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа компилится, но при запуске и нажатии баттона (код ниже) возникает фат. ошибка и выделяется строка 25.
В чем проблема, подскажите. Насколько я понимаю эта ошибка вызвана переполнением при выполнении операции с плавающей запятой. Как ее решить?

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
procedure TForm1.Button3Click(Sender: TObject);
var x,xi:array [1..7] of real;
    i,n,h:integer;
    y,mx,my,Rxy,Dx,a,b:real;
const yi:array [1..7] of real=(72.2,86.3,100.9,117.5,134.8,152.4,171.2);
begin
n:=7;
for i:=1 to n do
begin
mx:=mx+xi[i];
end;
mx:=mx/n;
for i:=1 to n do
begin
my:=my+yi[i];
my:=my/n;
end;
for i:=1 to n do
begin
Rxy:=Rxy+(xi[i]-mx)*(yi[i]-my);
end;
Rxy:=Rxy/n;
for i:=1 to n do
begin
Dx:=Dx+((xi[i]-mx)*(xi[i]-mx));
end;
Dx:=Dx/n;
a:=Rxy/Dx;
b:=my-a*mx;
form1.StringGrid1.cells[0,0]:='Возраст Xi';
form1.StringGrid1.Cells[1,0]:='Высота Yi';
form1.StringGrid1.Cells[2,0]:='Возраст X';
form1.StringGrid1.cells[3,0]:='Высота Y';
image5.Canvas.MoveTo(0,271);
for i:=1 to n do begin
y:=a*x[i]+b;
form1.StringGrid1.Cells[n,3]:=floattostr(y);
form1.StringGrid1.Cells[n,2]:=floattostr(n);
y:=(271-y);
h:=round(y);
image1.Canvas.LineTo(n,h);
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2010, 02:48
Ответы с готовыми решениями:

floating point overflow
Здравствуйте. Помогите, пожалуйста, разобраться с данной проблемой, как её решить? вылетает с ошибкой floating point overflow при...

Floating point overflow
Здравствуйте! Задание состоит в том, чтобы вычислить значение суммы следующего ряда с требуемой точностью (|x|<1 и ε вводятся):...

floating point overflow
Ошибка появилась в 105 строке,после того ,как убрал функцию sqrt(т.к в задании была ошибка...). unit Unit1; interface uses ...

12
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.02.2010, 07:13
Интересно, а чему у Вас равны значения элементов массива Хi и для чего объявлен массив Х?
0
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
08.02.2010, 15:51  [ТС]
Код подправил, вбил значения x и xi.
Проблема та же - после компиляции и нажатия на баттон происходит фатальная ошибка "Floating point overflow" и выделяется строка 38
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
procedure TForm1.Button1Click(Sender: TObject);
begin
panel1.Visible:=false;
panel2.Visible:=true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
panel2.Visible:=false;
panel1.Visible:=true;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var i,n,h:integer;
    y,mx,my,Rxy,Dx,a,b:real;
const yi:array [1..7] of real=(72.2,86.3,100.9,117.5,134.8,152.4,171.2);
      xi:array [1..7] of real=(1,2,3,4,5,6,7);
      x:array [1..7] of real=(1,2,3,4,5,6,7);
begin
n:=7;
for i:=1 to n do
begin
mx:=mx+xi[i];
end;
mx:=mx/n;
for i:=1 to n do
begin
my:=my+yi[i];
my:=my/n;
end;
for i:=1 to n do
begin
Rxy:=Rxy+(xi[i]-mx)*(yi[i]-my);
end;
Rxy:=Rxy/n;
for i:=1 to n do
begin
Dx:=Dx+((xi[i]-mx)*(xi[i]-mx));
end;
Dx:=Dx/n;
a:=Rxy/Dx;
b:=my-a*mx;
form1.StringGrid1.cells[0,0]:='Возраст Xi';
form1.StringGrid1.Cells[1,0]:='Высота Yi';
form1.StringGrid1.Cells[2,0]:='Возраст X';
form1.StringGrid1.cells[3,0]:='Высота Y';
image5.Canvas.MoveTo(0,271);
for i:=1 to n do begin
y:=a*x[i]+b;
form1.StringGrid1.Cells[n,3]:=floattostr(y);
form1.StringGrid1.Cells[n,2]:=floattostr(n);
y:=(271-y);
h:=round(y);
image1.Canvas.LineTo(n,h);
end;
Добавлено через 13 минут
По поводу использования x - его применение я реализую немного позже. А так в данный момент он используется в 49 строке.

Добавлено через 1 час 15 минут
Так что же все-таки означает эта ошибка и как ее исправить?

Добавлено через 43 минуты
Блин, ниче не получается... Может поможете???
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.02.2010, 16:13
Johnny B, Ты бы хоть проект приложил. Думаешь охота из-за тебя его создавать?
0
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
08.02.2010, 16:24  [ТС]
Вот исходники. Проблема в панели 2, 3 баттоне.
Вложения
Тип файла: rar Курсовик.rar (307.8 Кб, 30 просмотров)
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.02.2010, 16:31
Ну и что? Открывается какая-то хрень, титульный лист, и что дальше?
0
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
08.02.2010, 16:40  [ТС]
Form1 > Panel2 > Button3 Там расчеты. После компиляции, запуска и нажатия на баттон "Расчеты" выделяется строка Dx:=Dx+((xi[i]-mx)*(xi[i]-mx)); и пишет ошибку.
То же самое если *.exe запустить. Все работает, но при нажатии на кнопку та же ошибка.

Добавлено через 1 минуту
Просто прога подогнана под мое разрешение экрана, кнопки могут быть не видны - они в самом низу.
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.02.2010, 16:46
Цитата Сообщение от Johnny B Посмотреть сообщение
кнопки могут быть не видны
Ну тогда удачи!
0
 Аватар для Biggemot
163 / 140 / 23
Регистрация: 28.12.2009
Сообщений: 365
08.02.2010, 18:23
у меня в твоем проекте в другом месте выдает ошибку, но могу предположить что все ошибки из-за того что не все переменные в начале инициализируются.
ошибка в строке
h:=round(y); // при этом y=1,2338769573e+291, т.е. не влезает в integer

короче, задай всем переменным начальные значения. если не поможет - пиши
1
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
08.02.2010, 22:20  [ТС]
Все получилось! ))) Только теперь не получается действие image1.Canvas.LineTo(n,h);
Как правильно записать эту команду?
0
 Аватар для Biggemot
163 / 140 / 23
Регистрация: 28.12.2009
Сообщений: 365
08.02.2010, 22:29
вроде написано правильно. какая ошибка?
0
 Аватар для Johnny B
3 / 3 / 1
Регистрация: 03.01.2010
Сообщений: 69
08.02.2010, 22:33  [ТС]
Can only modify an image if it contains a bitmap
0
 Аватар для Biggemot
163 / 140 / 23
Регистрация: 28.12.2009
Сообщений: 365
08.02.2010, 22:55
перевод: image можно редактировать только если он содержит bitmap
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.02.2010, 22:55
Помогаю со студенческими работами здесь

floating point overflow
задача такова: нужно перевести число из любой системы исчисления в любую. выглядит это вот так примерно в коде: procedure...

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

Ошибка: Floating point overflow
Переношу программы с паскаля на делфи, в паскале всё нормально работает и выдаёт результат а в делфи в строке s2:=s2+b*b; выдаёт ошибку в...

Ошибка: floating point overflow
procedure TForm1.Button1Click(Sender: TObject); var d1,d3,s: Double; begin if not TryStrToFloat(Edit1.Text,d1) then begin...

Ошибка: Floating point overflow
Доброго времени суток! Пишу программу которая кодирует сообщение циклическим кодом. На определенном этапе складываю по модулю два числа....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru