Выдаёт ошибку: Acos Domain Error,полсе нажатия окей,ещё одну ошибку P

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем prikolist, 9 апр 2009.

Статус темы:
Закрыта.
  1. prikolist

    prikolist Гость

    Здравствуйте! подскажите пожалуйста где ошибка в коде.

    Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку
    pow OWERFLAW ERROR


    Код (Text):
    //---------------------------------------------------------------------------


    #include <vcl.h>
    #include <math.h>  // Директива для sqrt,abs,pow
    #pragma hdrstop

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    float a,b,c,h,otvet;
    double d;



    //Выводим результат в Label1 проверив на исключения
    try
    {
    //Присваиваем переменным а,b,c,d,h введённые значения. в Edit1..Edit5
    //Преобразуем с текстового типа символы в вещественый тип Float
    a = StrToFloat(Edit1->Text);
    b = StrToFloat(Edit2->Text);
    c = StrToFloat(Edit3->Text);
    d = StrToFloat(Edit4->Text);
    h = StrToFloat(Edit5->Text);

    //Результат вычислений присваиваем переменной "otvet" проверив деление
    // на значение b
    if (b!=0)
    {
    otvet = pow(4*(exp(sqrt(abs(a/b)))-exp(-sqrt(abs(a/b))))+3*acos(d),c);
    return;
    }
    else
    {
    MessageBox(0,"Введите другое значение b и повторите расчет, так как делить \n на b, при b=0 запрещенно, согласно законам программирования !",
    "Программа создана Игорем",MB_ICONWARNING);
    return;
    }



    //-----------------------------------------------------------




    //Результат пполучаем в метке Label 1
    Label1->Caption = "Результат=" + FloatToStrF(otvet,ffGeneral,7,2);
    }
    catch(EZeroDivide&)
    {
    MessageBox(0,"Ошибка! Деление на ноль!!!","Ошибка",MB_ICONERROR);
    return;
    }
    catch(EConvertError&)
    {
    MessageBox(0,"Ошибка! Неправильно введено число в одном из \n полей. Возможно в полях присутствуют неправильные \n знаки вроде: w,п,!,%,$,. и т.д.","Ошибка",MB_ICONERROR);
    return;
    }
    catch(EOverflow&)
    {
    ShowMessage("Выход числа за допустимый диапазон");
    return;
    }

    }
    //---------------------------------------------------------------------------
    //Кнопка закрыть
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Close();
    }
     
Загрузка...
Статус темы:
Закрыта.

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