Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LexaB
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 31
#1

Исключение - C++

17.02.2013, 19:04. Просмотров 300. Ответов 4
Метки нет (Все метки)

Здравствуйте, помогите вставить в эту задачу исключения (числа не должны быть меньше равны 0). Задание вроде и не сложное но при использовании структуры вылетает куча ошибок. Подскажите пожалуйста.
Структура примерная:
C++
1
2
3
4
5
6
7
8
9
try
{
 throw 1;
}
catch(int a)
{
 cout << "Caught exception number:  " << a << endl;
 eturn;}
 cout << "No exception detected!" << endl;
Задача:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "conio.h"
#include "iostream.h"
#include "math.h"
using namespace std;
 
void main(){
    float S,a,b,c,p ;
    cin>>a;
    cin>>b;
    cin>>c;
 
 
    p=(a+b+c)/2;
    S=sqrt(p*(p-a)*(p-b)*(p-c));
    cout<<S;
    getch();
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 19:04     Исключение
Посмотрите здесь:

исключение в if - else - if - C++
Получает беру отрезок от -10 до 10,шаг 1,вычисляется 2-й вариант и получается 1 ра з деление на нуль,я делаю исключение ,но не выдаёт...

исключение - C++
Првиет. Почему не работает такая конструкция? #ifndef TREEEXCEPTION_H #define TREEEXCEPTION_H #include &lt;exception&gt; #include...

Необработанное исключение - C++
При компиляции кода #include &lt;fstream&gt; const int block_size = 8; const int char_size = 8; const int conversions = 8; const int...

Необработаное исключение - C++
создаю программу, которая будет находить на отрезке 10 точек, находящихся на одинаковом расстоянии одна от другой(но это неважно), с...

Необработанное исключение - C++
Добрый день! разобравшись с предыдущими ошибками, я столкнулся с новой. содержимое: Level.h #ifndef LEVEL_H #define LEVEL_H ...

Необработанное исключение - C++
Доброго времени суток. Ошибка: Необработанное исключение типа &quot;System.Resources.MissingManifestResourceException&quot; в mscorlib.dll ...

С++, отловить исключение - C++
Немного странный вопрос: Есть класс А, от него наследуется класс Б. В конструкторе класса А может генерироваться некое исключение. ...

static_cast, исключение - C++
Привет. dynamic_cast&lt;&gt; может выбросить исключение, при невозможности преобразования типа при работе с ссылками. старое приведение...

Выкидывает исключение - C++
Вызвано исключение по адресу 0x000000013F292F77 в ConsoleApplication2.exe: 0xC0000005: нарушение прав доступа при записи по адресу...

Необработанное исключение - C++
Всем привет! Совсем недавно начал писать на C++. Делаю курсовую работу. Программа моделирует процесс и полученные значения записывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
17.02.2013, 20:26     Исключение #2
LexaB, а так пойдет?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// up.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "math.h"
#include <iostream>
#include <iomanip>
#include <locale>
using namespace std;
 
void main()
{
    wcout.imbue(locale(".866"));
 
    float S, a, b, c, p;
 
    wcout << L"Введите а: ";
        cin >> a;
    wcout << L"Введите b: ";
        cin >> b;
    wcout << L"Введите c: ";
        cin >> c;
 
    try
    {
        if(a <= 0)
            throw L"\nПервый параметр <= 0!";
        else if(b <= 0)
            throw L"\nВторой параметр <= 0!";
        else if(c <= 0)
            throw L"\nТретий параметр <= 0!";
    }
    catch(const wchar_t  *report)
    {
        wcout << report << "\n";
    }
 
    p = (a + b + c) / 2;
    S = sqrt(p * (p - a) * (p - b) * (p - c));
    wcout << L"Результат: " << S << "\n\n";;
}
LexaB
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 31
17.02.2013, 21:21  [ТС]     Исключение #3
благодарю, только не подскажете как запустить в C++ Builder 6, а то не работает...
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
17.02.2013, 21:30     Исключение #4
LexaB, тут я не советчик, я работал только с VS.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,909
17.02.2013, 21:43     Исключение #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <cmath>
#include <stdexcept>
#include <iostream>
 
class ValidationError : public std::runtime_error
{
public:
    ValidationError(const char* msg) :
        std::runtime_error(msg)
    {
    }
};
 
class IOError : public std::runtime_error
{
public:
    IOError(const char* msg) :
        std::runtime_error(msg)
    {
    }
};
 
float readFloat(bool (*validationFunc)(float))
{
    float x;
    std::cin >> x;
 
    if(!std::cin)
        throw IOError("IOError");
 
    if(!validationFunc(x))
        throw ValidationError("ValidationError");
 
    return x;
}
 
bool isValid(float x)
{
    return x > 0;
}
 
int main()
{
    try
    {        
        float a = readFloat(isValid);
        float b = readFloat(isValid);
        float c = readFloat(isValid);
 
        const float p = (a + b + c) / 2;
        const float S = sqrt(p * (p - a) * (p - b) * (p - c));
 
        std::cout << S << '\n';
    }
 
    catch(std::runtime_error& e)
    {
        std::cerr << e.what() << '\n';
    }
}
Yandex
Объявления
17.02.2013, 21:43     Исключение
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru