Здравствуйте!
С вашего позволения попрошу у вас совета в решении такой проблемы:
Моя программа (в Делфи), вычисляет корни квадратного уравнения.
Я затрудняюсь с добавлением этой проверки: if d=0 then...
Подскажите, как правильно это вписать?
И если можно, помогите с кнопочкой "Очистка", не представляю как её запрограммировать.
Прикрепленные файлы
___________.______._____________________.rar ( 213.83 килобайт )
Кол-во скачиваний: 392
Я просмотрел код unit1.pas в блокноте, ничего не понял.
Что за Button1, Edit1?
Почему нельзя давать компонентам человеческие имена?
Проверка на то, что дискриминант нулевой, выглядит так: if abs(d) < eps then ...
В качестве eps напиши что-то типа 1E-10
Это всё (вместо простого сравнения с нулём) из-за того, что погрешности вычислений могут привести к некоторому отклонению. Короче, прямо сравнивать вещественные числа нельзя.
Очистка что должна делать? Если очищать поля ввода, то просто пиши labelResult.Caption := '';
Спасибо!
Я в корне переделал код программы (это требование преподавателя!).
Она сделана на трёх формах и вроде бы работает. Не пойму только, почему вычисляет результаты неправильно.
Подскажите, пожалуйста, есть в ней ошибка?
Прикрепленные файлы
Projects.rar ( 221.58 килобайт )
Кол-во скачиваний: 420
Ну блин.
((-b)+Sqrt(D))/2*a
Вот везде скобок наставил, кроме там, где нужно.
(-b+Sqrt(D))/(2*a)
И назови компоненты нормально (поле Name).
Да у тебя вообще в обработчике кнопки логика неверная.
Если дискриминант меньше нуля, то зачем показывать вторую форму?
И зачем показывать форму до изменения её содержимого?
Поменяй тот кусок на
if D<0 then form3.show
else begin
form2.panel1.caption:=FloatTostr(((-b)+Sqrt(D))/(2*a));
if abs(D) < 1E-9 then form2.panel2.caption:= ''
else form2.panel2.caption:=FloatTostr(((-b)-Sqrt(D))/(2*a));
form2.show;
end;
Черт побери! До чего же приятно иметь дело с профессионалами!!! Супер! Работает как надо!
Уважаемые профи! Ну не понимаю я смысл этой строки, хоть убей: if abs(D) < 1E-9 then form2.panel2.caption:= ''.
Если преподаватель будет спрашивать что означает сие, мне останется только блеять или мычать.
Объясните, пожалуйста
Спасибо! Если что, так и объясню. Представляю какие глаза будут у препода! Думаю он про это не знает!
Класс
Так вставило, что до сих пор не отпустило?
Да нет, извините. Не в этом дело. Просто в одной из своих тем, хотел удалить кое-какой документ, являющийся коммерческой тайной, но видимо это невозможно. А тут просто хотел проверить, а оно вон как вышло.
Потому что тут много придурков, которые сначала создаёт тему, отвечают в ней и так далее, а потом вдруг удаляют содержимое всех сообщений.
Грубо
Искатель, ты зря принял это на свой счет. TarasBer просто сказал тебе причину, по которой время редактирования собственных мессаджей было сокращено до 8 часов (с начального в несколько дней), он не имел в виду тебя. И, кстати, он не совсем точно выразился - таких "придурков" не много, но они все же есть (прецеденты были).
Главный момент такой: написанный тобой мессадж принадлежит не тебе, а форуму. Редактирование - только для исправления опечаток и т.п. Всегда рекомендуется подумать, прежде чем отправить пост. И уж конечно, не следует помещать в него важную информацию для ограниченного круга лиц. В случае, если такое все же произошло (по недомыслию), советую обратиться к Администрации форума.
> прециденты
the buy cialis
buy apcalis oral jelly next day delivery
Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. https://masstamilan.tv/how-to-spot-a-fraudulent-and-rogue-online-casino/