Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 14
1

Исключения в С++

14.12.2017, 19:41. Просмотров 510. Ответов 3
Метки нет (Все метки)

Есть 3 массива arrA, arrB, arrC. В массиве А хранятся числа типа float, в массиве В хранятся числа типа int. А массив С должен содержать значения arrC[i]=(arrA[i+1]+1)/(arrB[i+1]-1). Задача в том, чтобы обработать исключение деления на 0. Написал программу, она работает, если знаменатель не равен нулю, а если он равен нулю, то исключение обрабатывается, и цикл сразу завершается. Почему это происходит и как исправить?

вот кусок кода с массивом С :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float arrC[19];
    
    cout << 'i' << '\t' << "f(x)" << endl;
    for (int i=0; i<19; i++) {
        try {
            if (arrB[i+1] == 1) throw errorz ();
            arrC[i] = (arrA[i+1] + 1) / (arrB[i+1] - 1);
            cout << i << '\t' << arrC[i];
        }
        catch (errorz) {
            arrC[i] = 0;
            cout << i << '\t' << arrC[i];
        }
        cout << endl;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2017, 19:41
Ответы с готовыми решениями:

Организация собственного исключения и передача в него исходного исключения
Для обработки исключений при работе с БД я создал собственное исключение: public class...

Исключения
У Эккеля, во втором томе, в главе про исключения, встретил конструкцию такого вида: T&amp;...

Исключения
Как бросить исключение выхода за границы массива? Как его поймать? Что делать после отбрасывания?...

Исключения
читаю про исключения, сама концепция понятна, но стоит ли вообще заострять на исключениях своё...

3
301 / 213 / 74
Регистрация: 23.05.2011
Сообщений: 970
14.12.2017, 20:15 2
У меня не так, всё работает нормально.
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
// Example program
#include <iostream>
#include <string>
struct errorz{};
int main()
{
    using namespace std;
    #define N 20
    float arrA[N];
    int arrB[N];
    for (size_t i = 0; i<N; ++i)
    {
        arrA[i] = rand()%10*0.5;
        arrB[i] = rand()%10;
    }
  float arrC[19];
    cout << 'i' << '\t' << "f(x)" << endl;
    for (int i=0; i<19; i++) {
        try {
            if (arrB[i+1] == 1) throw errorz ();
            arrC[i] = (arrA[i+1] + 1) / (arrB[i+1] - 1);
            cout << i << '\t' << arrC[i];
        }
        catch (errorz) {
            arrC[i] = 0;
            cout<< "ERROR: ";
            cout << i << '\t' << arrC[i];
        }
        cout << endl;
    }
}
Вывод:
Код
i	f(x)
0	1.125
1	0.625
2	4
ERROR: 3	0
4	0.333333
5	0.125
6	0.5
7	0.2
8	0.4
9	0.214286
10	0.5625
11	-2
12	1
13	1.125
14	5.5
15	0.285714
16	0.916667
17	0.5
18	1.5
0
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 14
14.12.2017, 20:21  [ТС] 3
Хм, а вы в VS пробовали? просто я через cpp.sh
0
301 / 213 / 74
Регистрация: 23.05.2011
Сообщений: 970
14.12.2017, 21:11 4
Как раз через cpp.sh и смотрел.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2017, 21:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Исключения!
На вход подается двумерный строковый массив! Далее метод должен пройтись по всем элементам массива,...

Исключения
Есть программа: int a,b,c,d,f,f1,f2,f3,f4; a=System::Convert::ToInt32(textBox1-&gt;Text);...

Исключения
Продолжаю изучать C#. Дополз таки до исключений, вопрос такой как посмотреть эти самые...

Исключения
Упражняюсь в программировании. Написал абстрактный класс Shape, от которого наследуются Quadr и...

Исключения
вот есть такой кусочек кода на ++ vect::vect(int n) { if (n&lt;1) throw(n); p=new...

Исключения
Как создать пользовательское исключение? Например, если число отрицательное, то вызывается...


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

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

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