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

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

Войти
Регистрация
Восстановить пароль
 
dkg_C
8 / 8 / 1
Регистрация: 17.09.2012
Сообщений: 144
#1

Исключения: индекс массива - C++

22.02.2014, 21:16. Просмотров 381. Ответов 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
#include <iostream>
 
using namespace std;
 
#define N 255 
 
int main() {
    setlocale(LC_ALL, "RUS");
    int  *mass, number_of_elem;
    mass = new int[N];
    for(int i = 0; i < N; i++){
        mass[i] = i+1;
    }
    cout << "Insert the number of the element" << endl;
    cin >> number_of_elem;
    try {
        if((number_of_elem) < 1 || (number_of_elem) > N) { throw 1; }
        else { cout << mass[number_of_elem-1] << endl; }
    }
    catch(int) { cout << "Error - "<< number_of_elem <<endl; }
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исключения: индекс массива (C++):

указать индекс второго массива, при котором оба массива перестают совпадать - C++
Даны два массива, они упорядочены и надо указать индекс второго массива при котором оба массива перестают совпадать. Например: ...

Выход за пределы массива, обработка исключения - C++
Есть такой код, когда я вызываю функцию на вывод массив еще не инициализирован, и я хочу чтобы у меня отлавливалась ошибка, но он заходит в...

Составить программу исключения из массива всех отрицательных чисел - C++
Метод сортировки массива с помощью прямого обмена. Дан массив А,содержащий как отрицательные,так и положительные числа. Составить...

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

индекс массива - C++
Помогите люди!!!!! вывести индекс наименьшего элемента массива.

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

3
DrOffset
7310 / 4406 / 998
Регистрация: 30.01.2014
Сообщений: 7,242
22.02.2014, 22:07 #2
Цитата Сообщение от dkg_C Посмотреть сообщение
C++
1
2
3
4
5
try {
    if((number_of_elem) < 1 || (number_of_elem) > N) { throw 1; }
    else { cout << mass[number_of_elem-1] << endl; }
}
catch(int) { cout << "Error - "<< number_of_elem <<endl; }
Я бы этот кусок переделал так (код не полный, только иллюстрация):
Кликните здесь для просмотра всего текста
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
#include <stdexcept>
 
class array_out_of_range
    : public std::out_of_range
{
public:
    array_out_of_range(std::string const & err, size_t idx)
        : std::out_of_range(err), idx_(idx)
    { }
 
    size_t index() const
    {
        return idx_;
    }
 
private:
    size_t idx_;
};
 
int main()
{
    try
    {
        //....
        if(number_of_elem < 1 || number_of_elem > N)
        {
            throw array_out_of_range("array index out of range", number_of_elem);
        }
    }
    catch(array_out_of_range const & e)
    {
        std::cout << "error: " << e.what() << ", index: " << e.index() << std::endl;
    }
    return 0;
}
1
dkg_C
8 / 8 / 1
Регистрация: 17.09.2012
Сообщений: 144
22.02.2014, 22:21  [ТС] #3
Что-то понял, если могли бы вы, приведите код не только как иллюстрацию, ибо мысль прослеживается, но с классами я try - catch еще не пробовал. Заодно и пойму
0
DrOffset
7310 / 4406 / 998
Регистрация: 30.01.2014
Сообщений: 7,242
22.02.2014, 22:40 #4
Цитата Сообщение от dkg_C Посмотреть сообщение
Заодно и пойму
Нужно добавить в мой пример уже написанный тобой код. Ввод индекса и вывод найденного элемента. Остальное все есть. Я убежден, что решая за тебя задание полностью я не помогаю тебе, а наоброт, мешаю. Поэтому лучший способ понять - попробовать и решить задние самостоятельно
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2014, 22:40
Привет! Вот еще темы с ответами:

Сигнал, Индекс массива - C++
Не получается задать сигнал // информационные символы double *x0 = new double; for (int q = 0;q &lt; M; q++){ ...

Не выводит на экран индекс массива - C++
Задача ввести с клавиатуры 10 чисел, найти среднее арифметическое, вывести все оценки и их количество на экран, затем вывести наиболее...

Индекс макс. элемента массива - C++
Программа должна находить и выводить на экран значение и индекс максимального элемента массива

Вывести индекс элемента массива - C++
В программа считает сумму строк и сумму столбиков в двумерном массиве. Суммы одинаковых за номером строк и столбцов сравниваются и, если...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
22.02.2014, 22:40
Ответ Создать тему
Опции темы

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