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

Напишите программу, которая контролирует индексы, выходящие за пределы массива и генерирует исключения. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача массивов в функции http://www.cyberforum.ru/cpp-beginners/thread1097441.html
Добрый вечер, дорогие друзья. Прошу у вас помощи с программой: Методические указания Ввод и вывод массива, а также три пункта задания оформить в виде функций, глобальные переменные не использовать. Размерности массивов вводить в основной функции. Первый массив описать статически (размерность задать константой), второй динамически Все результаты данных функций выводятся в основной функции. ...
C++ Почему не работает? #include <iostream>; #include <cmath>; #include <vector>; using namespace ::std; void main () { vector<double>temps; double temp; int i = 0; while(cin>>temp); http://www.cyberforum.ru/cpp-beginners/thread1097400.html
C++ Что делать с устаревшими инклудами?
Здравствуйте! Понемногу осваиваюсь в VS и сталкиваюсь с тем, что некоторые подключаемые стандартные файлы были заменены и теперь попытки сделать "как раньше" не прокатывают. Сейчас вот столкнулся со подключением хедера #include "stdafx.h" Всё бы ничего, но в VS 2012 такое уже не хляет. Что делать и есть ли где-нибудь полный список подобных изменений?
Для матрицы А(4 строки ,4 столбца) сформировать одномерный массив B из 4 элементов C++
Друзья, может у кого есть исходники? на любом языке программирования, буду очень признателен Для матрицы А(4 строки ,4 столбца) сформировать одномерный массив B из 4 элементов. Каждый элемент Bk, получает значение равное номеру максимального элемента в K-м столбце матрицы А. Для поиска номера максимального элемента в производственном столбце матрицы использовать процедуру.
C++ Определить наименьшее значение сумм Ai + Ai-1 http://www.cyberforum.ru/cpp-beginners/thread1097372.html
Друзья, может у кого есть исходники? на любом языке программирования, буду очень признателен Определить наименьшее значение сумм Ai + Ai-1
C++ Получить массив X1, X2, …. Xn по правилу Друзья, может у кого есть исходники? на любом языке программирования, буду очень признателен Получить массив X1, X2, …. Xn по правилу: Xi = 1, если элемент Аii больше каждого из элементов i-й строки матрицы, иначе Xi= 0. Найти так же сумму элементов матрицы. подробнее

Показать сообщение отдельно
stikkas
 Аватар для stikkas
19 / 19 / 6
Регистрация: 26.01.2014
Сообщений: 56
16.02.2014, 09:34     Напишите программу, которая контролирует индексы, выходящие за пределы массива и генерирует исключения.
Цитата Сообщение от Владислаучык Посмотреть сообщение
Вот именно моё задание: Напишите программу, которая контролирует индексы, выходящие за пределы массива и генерирует исключения. В сообщение об ошибке должна входить информация о значении индекса, приведшего к сбою.
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
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::cerr;
using std::endl;
 
class OutRangeError {
public:
    OutRangeError(int idx) : index(idx) {}
    virtual ~OutRangeError(){}
    virtual string what() const {
        return "Error index";
    }
    int getIndex() const {return index;}
private:
    int index;
};
 
class LowBoundError : public OutRangeError {
public:
    LowBoundError(int idx) : OutRangeError(idx){}
    string what() const {
        return "Index is less than lower bound";
    }
};
 
class UpBoundError : public OutRangeError {
public:
    UpBoundError(int idx) : OutRangeError(idx){}
    string what() const {
        return "Index is less than upper bound";
    }
};
 
int main() {
    int arr[] = {1, 2, 10, 4, 5, 6, 7, 9, 10};
    cout << "Gimme index: ";
    int idx;
    cin >> idx;
    try {
        if (idx < 0)
            throw LowBoundError(idx);
        else if (idx >= sizeof(arr) / sizeof(int))
            throw  UpBoundError(idx);
        cout << "You number is " << arr[idx] << endl;
    } catch (const OutRangeError &err) {
       cerr << err.what() << "; index = " << err.getIndex() << endl;
       return 1;
    }
 
    return 0;
}
Как-то так.
 
Текущее время: 14:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru