Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Проверка треугольника через исключения - C++

29.09.2013, 22:59. Просмотров 347. Ответов 2
Метки нет (Все метки)

Есть код который проверяет возможность создания треугольника из 3х чисел(сторон), но он работает с помощью условий. Как это все реализовать с помощью try throw & catch ?

С исключениями вообще работать не умею, гугл не помог, помогите пожалуйста.


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
#include <iostream>
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    float a,b,c;
 
    printf("Ââîäè ñòîðîГ*Г» ГІГЁГЇГ*: ");
    scanf("%f %f %f",&a,&b,&c);
 
    if(a >= b + c || b >= a + c || c >= b + a) // Г*ГҐГ°Г*ГўГҐГ*Г±ГІГўГ® òðåóãîëüГ*ГЁГЄГ*
    {   
        // ГЅГІГ® âîîáùå Г*ГҐ òðåóãîëüГ*ГЁГЄ
        printf("Г‚Г*Г№ГҐ Г*ГҐ òðåóãîëüГ*ГЁГЄ\n");
         
    } else if(a*a == b*b+c*c || b*b == a*a+c*c || c*c == b*b+a*a)
    {
        //ïðÿìîóãîëüГ*ûé
        printf("ÏðÿìîóãîëüГ*ГЁГЄ ГІГЁГЇГ*\n");
         
    } else if(a*a > b*b+c*c || b*b > a*a+c*c || c*c > b*b+a*a)
    {
        //òóïîóãîëüГ*ûé
        printf("ГЂ ýòîò Гі Г*Г*Г± òóïîé\n");
         
    } else
    {
        //îñòðîóãîëüГ*ûé
        printf("ГЂ âîò ГЁ îñòðÿê\n");
        
    }
 
    system("PAUSE");
    return 0;
    
}
 Комментарий модератора 
Перенесено из раздела "С для начинающих"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка треугольника через исключения (C++):

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

Исключения и проверка ввода - C++
Вот прочитал вчера много всего про исключения в с++, посмотрел несколько видеоуроков, все равно никак не пойму, какой выигрыш от...

Проверка входных данных: вызов и обработка исключения - C++
Всем привет. Не могу разобраться с проверкой входных данных. Нужно чтобы если я ввел какой либо символ вместо числа возбуждалось...

Исключения. Проверка на правильность введения целого числа - C++
Надо сделать в программе несколько исключений. Одно из них должно срабатывать если вместо числа(int) будет введено число с точкой(float,...

Восстановление типа исключения через ссылку - C++
востановление типа исключения через ссылку не совсем понимаю, что за объект создается в catch при ловле базового исключения: struct...

проверка треугольника - C++
Всем привет! Народ, а как правильно проверить существует ли треугольник, у меня в этом ошибка #include&lt;iostream.h&gt; #include&lt;conio.h&gt; ...

2
Байт
Нарушитель
Эксперт C
16672 / 10933 / 1675
Регистрация: 24.12.2010
Сообщений: 21,309
30.09.2013, 00:18 #2
Цитата Сообщение от stal_in Посмотреть сообщение
с помощью try throw & catch
Это вам в си++. В чистом Си такие звери не живут.
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6511 / 3148 / 308
Регистрация: 04.12.2011
Сообщений: 8,715
Записей в блоге: 5
01.10.2013, 01:00 #3
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
61
62
63
64
65
#include <iostream>
 
int main()
{
    int ok = 0;
 
    while (!ok){
        try{
    setlocale( LC_ALL,"Russian" );
    float a,b,c;
 
    printf("Вводи стороны типа: ");
    scanf("%f %f %f",&a,&b,&c);
     if(a < 0 && b < 0 && c < 0) throw 0;
 
    if(a < 0) throw 1;
 
    if(b < 0) throw 2;
 
    if(c < 0) throw 3;  
 
    if(a >= b + c || b >= a + c || c >= b + a) // неравенство треугольника
    {   
        // это вообще не треугольник
        throw 4;        
         
    } else if(a*a == b*b+c*c || b*b == a*a+c*c || c*c == b*b+a*a)
    {
        //прямоугольный
        printf("Прямоугольник типа\n");
         
    } else if(a*a > b*b+c*c || b*b > a*a+c*c || c*c > b*b+a*a)
    {
        //тупоугольный
        printf("А этот у нас тупой\n");
         
    } else
    {
        //остроугольный
        printf("А вот и остряк\n");
        
    }
    
ok = 1;
}
 
catch(int what){
        switch(what){
case 1 : printf("Эк его сплющило а?\n"); break;
case 2 : printf("Эк его заглючило. Непомешало b немного позитива.\n"); break;
case 3 : printf("Эк его... витамина С ему не хватает.\n"); break;
case 4 : printf("Ваще не треугольник\n"); break;
default: printf("Это туповато-островатый прямоутрельник...(имхо)\n");
        }
ok = 0;
}
 
if(!ok)  printf("\nДавай ещё разок!\n\n");      
else
 printf("\nНу можешь же!\n\n");
}
    system("PAUSE");
    return 0;
    
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 01:00
Привет! Вот еще темы с ответами:

Проверка условия существования треугольника - C++
нужно написать программу Даны 3 числа, определить могут ли эти числа являться сторонами треугольника

Задать функцию которая возвращает частное деление двух чисел (обработка ошибок - через исключения) - C++
Ребят,срочно нужнатваша помощ.Задать функцию,которая возвращает частное деление двух чисел.Обработку ошибок реализовать через...

Найти периметр треугольника через функцию - C++
Ребят, сижу на зачете, помогите пожалуйста! :) Найти периметр треугольника, заданного координатами своих вершин. Определить функцию...

Нахождение площади через координаты треугольника - C++
Здравствуйте, есть задание Напишите функцию square, вычисляющую площадь треугольника. С ее помощью для каждой из N точек определите,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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