Квадратное уравнение... (Положительные числа)

Тема в разделе "Pascal and Delphi", создана пользователем -, 14 ноя 2010.

Статус темы:
Закрыта.
  1. Гость

    Здравствуете надо написать программу квадратного уравнения, чтобы a,b и c были положительными, я сделал что-то похожее, но программа все равно и считает при отрицательных, что исправить подскажите пожалуйста:
    Код (Delphi):
    var
    a: real;
    b: real;
    c: real;
    d: real;
    x1: real;
    x2: real;
    begin
    try
    a:= StrToFloat(Edit1.Text);
    if a>=0 then
    begin
    ShowMessage('Число "а" положительно, решение разрешено');
    end;
    a:= StrToFloat(Edit1.Text);

    if a<0 then
    begin
    ShowMessage('Число "а" неположительно, введите другое...');
    a:= StrToFloat(Edit1.Text);
    end

    else

    b:= StrToFloat(Edit2.Text);

    if b<0 then
    begin
    ShowMessage('Число "b" неположительно, введите другое...');
    b:= StrToFloat(Edit1.Text);
    end;

    if b>=0 then
    begin
    ShowMessage('Число "b" положительно, решение разрешено');
    end
    else

    c:= StrToFloat(Edit3.Text);
    if c<0 then
    begin
    ShowMessage('Число "c" неположительно, введите другое...');
    c:= StrToFloat(Edit1.Text);
    end;

    if c>=0 then
    begin
    ShowMessage('Число "c" положительно, решение разрешено');
    end

    else
    d:= sqr(B)- 4*a*c;


    if d>=0 then
    begin
    x1:= (-b + sqrt(d))/(2*a);
    x2:= (-b - sqrt(d))/(2*a);
    Label4.Caption := 'x1='+ FloatToStrF(x1,ffFixed,6,2)+#13+
    'x2=' + FloatToStrF(x2,ffFixed,6,2);
    end
    else ShowMessage('Уравнение не имеет корней');
    except
    on EConvertError do
    begin
    ShowMessage('Введите данные');
    exit;

    end;
    end;
    end;

    end.
     
  2. flashkpi

    flashkpi Гость

    У Вас хоть проверки все и сеть, но блок
    Код (Text):
    if d>=0 then
    begin
    x1:= (-b + sqrt(d))/(2*a);
    x2:= (-b - sqrt(d))/(2*a);
    Label4.Caption := 'x1='+ FloatToStrF(x1,ffFixed,6,2)+#13+
    'x2=' + FloatToStrF(x2,ffFixed,6,2);
    end
    стоит отдельно, т.е. он считает независимо от того , что происходило ранее в программе..
     
  3. Гость

    В смысли куда мне его поставить, блинн вообще тёмный лес:((
     
  4. flashkpi

    flashkpi Гость

    Просто дописать еще перед этим if (a>=0) and (b>=0) and (c>=0) then
    Ваши просчеты ...
    Впринципе уже так будет работать
     
  5. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Код (Delphi):
    if d>=0 then
    ...
    begin
    if (a>0)and(b>0)and(c>0) then
    begin
    x1:= (-b + sqrt(d))/(2*a);
    x2:= (-b - sqrt(d))/(2*a);
    Label4.Caption := 'x1='+ FloatToStrF(x1,ffFixed,6,2)+#13+
    'x2=' + FloatToStrF(x2,ffFixed,6,2);
    end
    else ShowMessage('коэффициенты a,b,c неположительные');
    end
    ...
     
  6. Гость

    Получилось спс всем)) сейчас другими вариантами попробую))
    Код (Text):
     var
    a: real;
    b: real;
    c: real;
    d: real;
    x1: real;
    x2: real;
    fl:boolean;
    begin
    a:= StrToFloat(Edit1.Text);
    b:= StrToFloat(Edit2.Text);
    c:= StrToFloat(Edit3.Text);
    fl:=true;
    if a<0 then
    begin
    fl:=false;
    showmessage('A отрицательно, введите другое.');
    end
    else
    showmessage('A подходит');

    if b<0 then
    begin
    fl:=false;
    showmessage('b отрицательно, введите другое.');
    end
    else
    showmessage('b подходит');

    if c<0 then
    begin
    fl:=false;
    showmessage('C отрицательно, введите другое.');
    end
    else
    showmessage('C подходит');

    if fl then
    begin
    d:= sqr(b)- 4*a*c;


    if d>=0 then
    begin
    x1:= (-b + sqrt(d))/(2*a);
    x2:= (-b - sqrt(d))/(2*a);
    Label4.Caption := 'x1='+ FloatToStrF(x1,ffFixed,6,2)+#13+
    'x2=' + FloatToStrF(x2,ffFixed,6,2);
    end
    else ShowMessage('Уравнение не имеет корней');



    exit;
    end;





    end;

    end.
    Добавлено: А как репутацию всем вам)) тыкнуть? чет не линк))
     
  7. flashkpi

    flashkpi Гость

    Под аватаркой маленький +
     
Загрузка...
Похожие Темы - Квадратное уравнение (Положительные
  1. Nick888
    Ответов:
    3
    Просмотров:
    853
Статус темы:
Закрыта.

Поделиться этой страницей