1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "С и С++", создана пользователем prikolist, 9 апр 2009.

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

    prikolist Гость

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

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


    Код:
    //---------------------------------------------------------------------------
    
    
    #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();
    }
     
Загрузка...
Статус темы:
Закрыта.

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