Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
nikitaevg
0 / 0 / 0
Регистрация: 23.07.2011
Сообщений: 57
#1

Floating point overflow - C++

24.07.2011, 20:54. Просмотров 3157. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Floating point overflow (C++):

Exception class overflow with message floating point overflow - C++
Прощу вашего совета в строке кода RxSpinEdit->Value=Step * (MyRound(RxSpinEdit->Value*Koef/Step)); функция MyRound int...

Floating point overflow - C++
Срочно нужна помощь! Когда ввожу значения n=30 и x=30 программа выдает следующую ошибку: "Floating point overflow". При этом стоит...

Floating point overflow - C++
Дали елементарное задание решить кубическое уравнение, выдает ошибку "Floating point overflow", незнаю что с ним делать Входящие даные в...

floating point error - C++
int i = 124; int j = 0; "c" и "y" это float с диапазоном от 1 до 2; x это long double от 0.01 до 100; tempsum - long double; cr -...

Illegal use of floating point - C++
Подскажите в чем может быть дело: int sigmasignal=5,i,j,N=20; float vhmatrica, rsignal; double tsignal=0.2, delta=0.004,...

Illegal use of floating point - C++
Подскажите, почему с++ ругается на мою функцию: float h (float a, float b) { return h=(a/1+pow(b,2))+(b/1+pow(a,2))-(a-b); } ...

10
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 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
236 / 114 / 3
Регистрация: 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
236 / 114 / 3
Регистрация: 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
236 / 114 / 3
Регистрация: 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 / 7
Регистрация: 06.07.2011
Сообщений: 512
24.07.2011, 22:55 #10
сначала определись, какие переменные у тебя будут целочисленные, а какие с плавающей точкой. потом почитай про арифметические операторы и циклы в C - я даже представить боюсь, где ты вычитал про такую организацию цикла через goto. может, конечно, ты всю жизнь занимался ASM'ом)
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 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 - C++
В общем вот какое дело: float a,c; c=a%2; объясните, пожалуйста, почему в данном случае нельзя использовать число типа &quot;float&quot;...

Ошибка Illegal use of floating point - C++
Добрый вечер, прошу помочь с ошибкой &quot;Illegal use of floating point&quot; double d=0; double p=0; double z; ...

Floating point error:Overfull - C++
При выполнении программы пишет: Floating point error:Overfull #include&lt;stdio.h&gt; #include&lt;math.h&gt; int main(void) { unsigned n,i; ...

Floating point exception (core dumped) - C++
Здравствуйте товарищи. Загорелся я на днях создать программу с процедурной генерацией мира. Но поскольку опыта с С++ у меня мало (раньше...


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

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

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