• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Решение квадратных уравнений

  • Автор темы DolWeb
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

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);
}
 
E

European

Кароче объясните, почему функция, которая выше выдаёт не правильный результат, а эта выдаёт правильный:
Потому, что дискриминант определяется по формуле:
Код:
int d=b*b-4*a*c; // -

P.S. Читай пункт правил 2.6. Последнее предупреждение
 
D

DolWeb

Спасибо
Оффтоп: я че теперь для каждого вопроса должен новую тему создавать?
 
E

European

Если вопросы по разным темам, то да. Будешь топикстартером дня :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!