Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
dkg_C
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
1

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

22.02.2014, 21:16. Просмотров 811. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 21:16
Ответы с готовыми решениями:

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

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

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

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

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

3
DrOffset
11602 / 6291 / 1517
Регистрация: 30.01.2014
Сообщений: 10,245
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 / 6
Регистрация: 17.09.2012
Сообщений: 144
22.02.2014, 22:21  [ТС] 3
Что-то понял, если могли бы вы, приведите код не только как иллюстрацию, ибо мысль прослеживается, но с классами я try - catch еще не пробовал. Заодно и пойму
0
DrOffset
11602 / 6291 / 1517
Регистрация: 30.01.2014
Сообщений: 10,245
22.02.2014, 22:40 4
Цитата Сообщение от dkg_C Посмотреть сообщение
Заодно и пойму
Нужно добавить в мой пример уже написанный тобой код. Ввод индекса и вывод найденного элемента. Остальное все есть. Я убежден, что решая за тебя задание полностью я не помогаю тебе, а наоброт, мешаю. Поэтому лучший способ понять - попробовать и решить задние самостоятельно
1
22.02.2014, 22:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2014, 22:40

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

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

Сигнал, Индекс массива
Не получается задать сигнал // информационные символы double *x0 = new double; ...

Составить перемешанный индекс массива
Дан А(14) массив. Надо составить массив В так чтобы нечетные элементы с индексами массива А были...


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

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

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