Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Решение квадратных уравнений
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
DolWeb
Компилятор выдаёт ошибку на отмеченой строке
Код:
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    double a,b,c;
    a=Edit1->Text.ToDouble();
    b=Edit2->Text.ToDouble();
    c=Edit3->Text.ToDouble();
    int d=b*b+4ac; // Пишет, что ошибка тут
    if(d<0)
    {
        Panel1->Caption="Корней нет!";
        return;
    };
    double x1=(-b+sqrt(d))/(2*a);
    double x2=(-b-sqrt(d))/(2*a);
    Panel1->Caption=String(x1)+";\r\n    "+String(x2);
}


Ошибка:
Цитата
[BCC32 Error] Unit1.cpp(24): E2060 Illegal use of floating point
[BCC32 Error] Unit1.cpp(24): E2141 Declaration syntax error
[BCC32 Warning] Unit1.cpp(33): W8004 'c' is assigned a value that is never used


Тут разобрался:
int d=b*b+4*a*c;


Кароче объясните, почему функция, которая выше выдаёт не правильный результат, а эта выдаёт правильный:
#include <math.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    double a,b,c;
    a=Edit1->Text.ToDouble();
    b=Edit2->Text.ToDouble();
    c=Edit3->Text.ToDouble();
    int k=b/2;
    int d=k*k-a*c;
    if(d<0)
    {
        Label6->Caption="Корней нет!";
        return;
    };
    double x1=(-k+sqrt(d))/a;
    double x2=(-k-sqrt(d))/a;
    Label6->Caption=String(x1)+"\r\n"+String(x2);
}
European
Цитата(DolWeb @ 21:03:2008 - 14:53) *
Кароче объясните, почему функция, которая выше выдаёт не правильный результат, а эта выдаёт правильный:

Потому, что дискриминант определяется по формуле:
int d=b*b-4*a*c; // -


P.S. Читай пункт правил 2.6. Последнее предупреждение
DolWeb
Спасибо
Оффтоп: я че теперь для каждого вопроса должен новую тему создавать?
European
Если вопросы по разным темам, то да. Будешь топикстартером дня smile.gif
Morpheus
Цитата(DolWeb @ 21:03:2008 - 15:18) *
я че теперь для каждого вопроса должен новую тему создавать?

да
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.