Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
1

Floating point overflow

24.07.2011, 20:54. Просмотров 3559. Ответов 10
Метки нет (Все метки)

помогите с проблемой-создал программу для вычисления уравнений с двумя неизвестными и выдает ошибку Floating point overflow вот код
C++
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x,y,n,x1,x2,y1,y2,y3,b1,b2,b3,otvetx,otvety,otvety1;
float mnog;
x=StrToInt(Edit1->Text);
x2=StrToInt(Edit3->Text);
y=StrToInt(Edit2->Text);
y2=StrToInt(Edit5->Text);
n=StrToInt(Edit4->Text);
b2=StrToInt(Edit6->Text);
mnog=39;
do{begin:;
mnog-=0.001;
x1=mnog*=x;
y1=mnog*=y;
b1=mnog*=n;
if(x1!=x2) {goto begin;};}
while (x1!=x2);
y3=y1-y2;
b3=b1-b2;
otvety=b3/y3;
otvety1=y1*otvety;
otvetx=n-otvety1;
Label3->Caption=otvetx;
Label4->Caption=otvety;
помогите плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2011, 20:54
Ответы с готовыми решениями:

Exception class overflow with message floating point overflow
Прощу вашего совета в строке кода RxSpinEdit->Value=Step *...

Floating point overflow
Дали елементарное задание решить кубическое уравнение, выдает ошибку "Floating...

Floating point overflow
Срочно нужна помощь! Когда ввожу значения n=30 и x=30 программа выдает...

floating point error
int i = 124; int j = 0; "c" и "y" это float с диапазоном от 1 до 2; x это...

Illegal use of floating point
Подскажите в чем может быть дело: int sigmasignal=5,i,j,N=20; float...

10
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
24.07.2011, 20:58 2
УЖОС!
1. У тебя перемешаны целые и дробные числа. Если что, то деление целых даст целое, а не дробное.
2. Текст неполный. Не факт, что именно в этом месте оверфлоат происходит. Приведи подтверждения какие-нить, что именно в этом куске кода ошибка.
0
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
24.07.2011, 21:03  [ТС] 3
это вся программа-я только начинающий)
ошибка в 16 строке а 15-ая и 14-ая работают отлично
0
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
24.07.2011, 21:03 4
Ну это нельзя назвать программой целиком, это обработчик одной из кнопок. Не проще ли тебе пока программировать в консоли?
Ну а даже если так, то косяк в цикле, goto вообще убери.
0
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
24.07.2011, 21:11  [ТС] 5
не,все равно осталось ну а насчет проги я начинаю-это мой второй проект
0
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
24.07.2011, 21:23 6
Ну вот смотри:

Цитата Сообщение от nikitaevg Посмотреть сообщение
x1=mnog*=x;
y1=mnog*=y;
b1=mnog*=n;
сначала ты mnog умножаешь на x и записываешь в mnog и в х1, потом ты уже увеличенный mnog умножаешь на y, опять же запимсываешь результат в mnog, тоже самое в третьем выражении.
То бишь в каждом цикле ты переменная mnog увеличивается в x*y*n раз. Понятно откуда переполнение то идет.
0
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
24.07.2011, 21:31  [ТС] 7
т.е. приравнивание идет в обе стороны? и как это исправить?
0
RUSya82
237 / 115 / 14
Регистрация: 15.10.2010
Сообщений: 395
24.07.2011, 21:39 8
может все таки так? Чего ты хотел добиться этим выражением?
C++
1
2
3
x1=mnog*x;
y1=mnog*y;
b1=mnog*n;
Добавлено через 1 минуту
Цитата Сообщение от nikitaevg Посмотреть сообщение
т.е. приравнивание идет в обе стороны? и как это исправить?
ну как это в обе? просто x *= y <=> x = x*y
1
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
24.07.2011, 21:45  [ТС] 9
я попробовал но там счет не сходится(( помоги плиз
0
Paporotnik
383 / 227 / 12
Регистрация: 06.07.2011
Сообщений: 512
24.07.2011, 22:55 10
сначала определись, какие переменные у тебя будут целочисленные, а какие с плавающей точкой. потом почитай про арифметические операторы и циклы в C - я даже представить боюсь, где ты вычитал про такую организацию цикла через goto. может, конечно, ты всю жизнь занимался ASM'ом)
0
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.07.2011, 08:25 11
Paporotnik,

Не по теме:

Человек, пишущий на asme - ТАКИХ проблем не имеет. Говорю как человек, начинавший вообще с машинных кодов!

0
25.07.2011, 08:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2011, 08:25

Illegal use of floating point
Подскажите, почему с++ ругается на мою функцию: float h (float a, float b)...

Floating point error:Overfull
При выполнении программы пишет: Floating point error:Overfull...

Ошибка Illegal use of floating point
Добрый вечер, прошу помочь с ошибкой &quot;Illegal use of floating point&quot; ...


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

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

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