Недавно столкнулся с такой же проблемой и сейчас пытаюсь с ней разобраться.
В геометрической прогрессии может быть 2 исключения:
1) Знаменатель геометрической прогрессии не может быть равен 1 и 0;
2) Кол-во элементов не может быть отрицательным числом;
Можно ли каким-то образом эти два исключения написать в одном 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
| #include "stdafx.h"
#include <iostream>
using namespace std;
void main ()
{
setlocale(LC_ALL, "Rus");
float q=0;
float b=0;
float s=0;
int n=0;
cout << "Введите первый элемент геометрической прогрессии:";
cin >> b;
cout << "Введите знаменатель геометрической прогрессии:";
cin >> q;
cout << "Введите количество элементов, которое вам надо подсчитать:";
cin >> n;
try
{
s=b*(1-pow(q,n))/(1-q);
if(n<=0)
throw n;
if(q<0)
throw q;
}
catch(...)
{
cout << "\nКоличество не може элементов быть отрицательным\n";
cout << "\nЗначение геометрической прогрессии не может быть 1-цей и 0-ом\n";
}
} |
|