• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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

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

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