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

Обработчики ошибок try catch - C++

Восстановить пароль Регистрация
 
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
03.10.2013, 09:05     Обработчики ошибок try catch #1
Друзья, вот есть задача у меня решенная, вот условие:
Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Определить дату такого телефонного разговора, которой является максимальным по продолжительности среди срочных разговоров за указанный месяц.

Вот код программы, всё вроде бы работает нормально:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h"
 
struct date
{
    int day;
    int month;
    int year;
};
 
struct time
{
    int hour;
    int minute;
};
 
struct spravka //определение структурных типов данных
{
    char number[12];
    struct date D;
    struct time T;
    char num_other[12];
    int kod;
    int time;
    char category[20];
    double tarif;
};
 
int main()
{
    struct spravka a[2];
    int i,m,k; FILE *fp, *pc;
    setlocale(LC_ALL, "rus");
    int max;
    fp=fopen("input.txt","w");//открываем файл для записи с клавиатуры
 
    for(i=0;i<3;i++)// вводим данные
    {
        printf("Разговор!!! \n");
        printf("Номер: ");
        scanf("%s", a[i].number);
        printf("День: ");
        scanf("%d", &a[i].D.day);
        printf("Месяц: ");
        scanf("%d", &a[i].D.month);
        printf("Год: ");
        scanf("%d", &a[i].D.year);
        printf("Час: ");
        scanf("%d", &a[i].T.hour);
        printf("Минута: ");
        scanf("%d", &a[i].T.minute);
        printf("Другой номер: ");
        scanf("%s", a[i].num_other);
        printf("Код: ");
        scanf("%d", &a[i].kod);
        printf("Продолжительность: ");
        scanf("%d", &a[i].time);
        printf("Категория: ");
        scanf("%s", a[i].category);
        printf("Тариф: ");
        scanf("%lf", &a[i].tarif);
        printf("\n");
}
 
    for(int i=0; i<3; i++)// обработка
    {
        fwrite((char*)&a[i],sizeof(a[i]),1,fp);//данные записываются в файл
    }
 
    fclose(fp);
 
    printf("Введите месяц: ");
    scanf("%d", &m);
    max=0;
    k=0;
    fp=fopen("input.txt","r");//открываем файл для чтения с клавиатуры
    pc=fopen("output.txt","w");//записать данные обработки в файл
    for(int i=0; i<2; i++)// обработка
    {
        fread((char*)&a[i],sizeof(a[i]),1,fp);
    }
 
    for(i=0;i<3;i++)    
    { 
        if ((a[i].D.month==m) && (a[i].time > max) && strcmp(a[i].category,"sr")==0) 
        {
            k=i;
            max=a[i].time;
        }
    }
    printf("---------------------------------------- \n");
    printf("Номер: %s \n", a[k].number);
    printf("ДЕНЬ.МЕСЯЦ.ГОД: %d.%d.%d \n", a[k].D.day, a[k].D.month, a[k].D.year);
    printf("ВРЕМЯ: %d:%d \n", a[k].T.hour, a[k].T.minute);
    printf("Код города: %d \n", a[k].kod);
    printf("Номер в другом городе: %s \n", a[k].num_other);
    printf("Продолжительность: %d \n", a[k].time);  
    printf("Категория разговора: %s \n", a[k].category);
    printf("Тариф: %f \n", a[k].tarif);
    fwrite((char*)&a[k],sizeof(a[i]),1,pc);//данные записываются в файл
    fclose(fp);
    fclose(pc);
    _getch();
    return 0;
}

Нужно сделать так, чтобы допустим при неправильном вводе ВХОДНЫХ ДАННЫХ выдавалась ошибка с помощью обработчиков TRY и CATCH, например НОМЕР ТЕЛЕФОНА у меня типа int, а если введу СИМВОЛ какой нибудь, то мне должно выдаваться сообщение об ошибке, как это реализовать я не знаю, может кто в курсе =)) В общем. на всех участках, где возможно сделать обработчик ошибок, прошу мне помочь)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 09:05     Обработчики ошибок try catch
Посмотрите здесь:

C++ try-catch
C++ try-catch
отлов ошибок try, catch зачем он нужен? C++
C++ try-catch
C++ TRY/CATCH
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rapsod
Волшебник
 Аватар для Rapsod
62 / 61 / 4
Регистрация: 21.11.2009
Сообщений: 319
03.10.2013, 09:19     Обработчики ошибок try catch #2
Alexandr1966, Вот пример как это делать: Обработчик ошибок
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
03.10.2013, 16:24  [ТС]     Обработчики ошибок try catch #3
ой, мне конечно стыдно просить, но все таки, можно в самом коде исправить во всех местах а, как нужно сделать, а то я вообще ооооочень плохо в С++, и мне нужно просто быстренько с этим заданием покончить, кому не трудно, помогите бедному студенту))

Добавлено через 2 часа 6 минут
ребяа подскажите а)

Добавлено через 4 часа 48 минут
есть те кто выручит?)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 17:49     Обработчики ошибок try catch #4
Кликните здесь для просмотра всего текста
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include <stdio.h>
#include "string.h"
 
struct date
{
    int day;
    int month;
    int year;
};
 
struct time
{
    int hour;
    int minute;
};
 
struct spravka //определение структурных типов данных
{
    char number[12];
    struct date D;
    struct time T;
    char num_other[12];
    int kod;
    int time;
    char category[20];
    double tarif;
};
 
int main()
{
    struct spravka a[3];
    int i,m,k; FILE *fp, *pc;
    setlocale(LC_ALL, "rus");
    int max;
    fp=fopen("input.txt","w");//открываем файл для записи с клавиатуры
    try
    {
        for(i=0;i<3;i++)// вводим данные
        {
            printf("Разговор!!! \n");
            printf("Номер: ");
            scanf("%s", a[i].number);
            if (strlen(a[i].number) > 11) throw "Error!";
            printf("День: ");
            if (!scanf("%d", &a[i].D.day)) throw "Error!";
            printf("Месяц: ");
            if (!scanf("%d", &a[i].D.month)) throw "Error!";
            printf("Год: ");
            if (!scanf("%d", &a[i].D.year)) throw "Error!";
            printf("Час: ");
            if (!scanf("%d", &a[i].T.hour)) throw "Error!";
            printf("Минута: ");
            if (!scanf("%d", &a[i].T.minute)) throw "Error!";
            printf("Другой номер: ");
            scanf("%s", a[i].num_other);
            if (strlen(a[i].number) > 11) throw "Error!";
            printf("Код: ");
            if (!scanf("%d", &a[i].kod)) throw "Error!";
            printf("Продолжительность: ");
            if (!scanf("%d", &a[i].time)) throw "Error!";
            printf("Категория: ");
            scanf("%s", a[i].category);
            if (strlen(a[i].number) > 19) throw "Error!";
            printf("Тариф: ");
            if (!scanf("%lf", &a[i].tarif)) throw "Error!";
            printf("\n");
        }
 
        for(int i=0; i<3; i++)// обработка
        {
            fwrite((char*)&a[i],sizeof(a[i]),1,fp);//данные записываются в файл
        }
 
        fclose(fp);
 
        printf("Введите месяц: ");
        if (!scanf("%d", &m)) throw "Error!";
    }
    catch(const char* err)
    {
        printf(err);
        _getch();
        return 0;
    }
    max=0;
    k=0;
    fp=fopen("input.txt","r");//открываем файл для чтения с клавиатуры
    pc=fopen("output.txt","w");//записать данные обработки в файл
    for(int i=0; i<2; i++)// обработка
    {
        fread((char*)&a[i],sizeof(a[i]),1,fp);
    }
 
    for(i=0;i<3;i++)    
    { 
        if ((a[i].D.month==m) && (a[i].time > max) && strcmp(a[i].category,"sr")==0) 
        {
            k=i;
            max=a[i].time;
        }
    }
    printf("---------------------------------------- \n");
    printf("Номер: %s \n", a[k].number);
    printf("ДЕНЬ.МЕСЯЦ.ГОД: %d.%d.%d \n", a[k].D.day, a[k].D.month, a[k].D.year);
    printf("ВРЕМЯ: %d:%d \n", a[k].T.hour, a[k].T.minute);
    printf("Код города: %d \n", a[k].kod);
    printf("Номер в другом городе: %s \n", a[k].num_other);
    printf("Продолжительность: %d \n", a[k].time);  
    printf("Категория разговора: %s \n", a[k].category);
    printf("Тариф: %f \n", a[k].tarif);
    fwrite((char*)&a[k],sizeof(a[i]),1,pc);//данные записываются в файл
    fclose(fp);
    fclose(pc);
    _getch();
    return 0;
}
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
04.10.2013, 17:00  [ТС]     Обработчики ошибок try catch #5
Спасибо)) а у меня еще вопрос, вот при неверном вводе данных, выдается ошибка и программа закрывается, а как сделать так, чтоб она опять заново просила ввести данные в это поле???
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.10.2013, 19:14     Обработчики ошибок try catch #6
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
а как сделать так, чтоб она опять заново просила ввести данные в это поле???
Тогда без исключений. Цикл while, после ошибки сброс флагов потока и очистка потока.
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
06.10.2013, 07:16  [ТС]     Обработчики ошибок try catch #7
а можно это показать на коде пожалуйста, а то я на словах не совсем понял о чем вы(
alsav22
06.10.2013, 12:12
  #8

Не по теме:

Л/с получили?

Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
06.10.2013, 17:34  [ТС]     Обработчики ошибок try catch #9
Да, получил, всё сделал)

Добавлено через 4 часа 21 минуту
Сможешь подсказать как сделать?)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2013, 20:18     Обработчики ошибок try catch #10
Кликните здесь для просмотра всего текста
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include <stdio.h>
#include "string.h"
 
struct date
{
    int day;
    int month;
    int year;
};
 
struct time
{
    int hour;
    int minute;
};
 
struct spravka //определение структурных типов данных
{
    char number[12];
    struct date D;
    struct time T;
    char num_other[12];
    int kod;
    int time;
    char category[20];
    double tarif;
};
 
int main()
{
    struct spravka a[3];
    int i,m,k; FILE *fp, *pc;
    setlocale(LC_ALL, "rus");
    int max;
    fp=fopen("input.txt","w");//открываем файл для записи с клавиатуры
    
    for(i=0;i<3;i++)// вводим данные
    {
    printf("Разговор!!! \n");
            
    while (1)
    {
        printf("Номер: ");
        scanf("%s", a[i].number);
        if (strlen(a[i].number) > 11)
        {
            printf("Слишком длинный номер! Повторите, пожалуйста.\n");
            while (getchar() != '\n');
        }
        else break;
    }
            
    while (1)
    {
        printf("День: ");
        if (!scanf("%d", &a[i].D.day) )
        {
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
 
    while (1)
    {
        printf("Месяц: ");
        if (!scanf("%d", &a[i].D.month))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
            
            
    while (1)
    {
        printf("Год: ");
        if (!scanf("%d", &a[i].D.year))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
 
    while (1)
    {
        printf("Час: ");
        if (!scanf("%d", &a[i].T.hour))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
            
    while (1)
    {
        printf("Минута: ");
        if (!scanf("%d", &a[i].T.minute))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
            
    while (1)
    {
        printf("Другой номер: ");
        scanf("%s", a[i].num_other);
        if (strlen(a[i].num_other) > 11)
        {
            printf("Слишком длинный номер! Повторите, пожалуйста.\n");
            while (getchar() != '\n');
        }
        else break;
    }
            
    while (1)
    {
        printf("Код: ");
        if (!scanf("%d", &a[i].kod))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
            
    while (1)
    {
        printf("Продолжительность: ");
        if (!scanf("%d", &a[i].time))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
            
    while (1)
    {
        printf("Категория: ");
        scanf("%s", a[i].category);
        if (strlen(a[i].number) > 19)
        {
            printf("Слишком длинная категория! Повторите, пожалуйста.\n");
            while (getchar() != '\n');
        }
        else break;
    }
            
    while (1)
    {
        printf("Тариф: ");
        if (!scanf("%lf", &a[i].tarif))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
 
    printf("\n");
    }
 
    for(int i=0; i<3; i++)// обработка
    {
    fwrite((char*)&a[i],sizeof(a[i]),1,fp);//данные записываются в файл
    }
 
    fclose(fp);
 
    while (1)
    {
        printf("Введите месяц: ");
        if (!scanf("%d", &m))
        {
                
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
            clearerr(stdin);
            while (getchar() != '\n');
        }
        else
        {
            if (getchar() == '\n') break;
            while (getchar() != '\n');
            printf("Ошибка ввода! Повторите, пожалуйста.\n");
        }
    }
    
    max=0;
    k=0;
    fp=fopen("input.txt","r");//открываем файл для чтения с клавиатуры
    pc=fopen("output.txt","w");//записать данные обработки в файл
    for(int i=0; i<2; i++)// обработка
    {
        fread((char*)&a[i],sizeof(a[i]),1,fp);
    }
 
    for(i=0;i<3;i++)    
    { 
        if ((a[i].D.month==m) && (a[i].time > max) && strcmp(a[i].category,"sr")==0) 
        {
            k=i;
            max=a[i].time;
        }
    }
    printf("---------------------------------------- \n");
    printf("Номер: %s \n", a[k].number);
    printf("ДЕНЬ.МЕСЯЦ.ГОД: %d.%d.%d \n", a[k].D.day, a[k].D.month, a[k].D.year);
    printf("ВРЕМЯ: %d:%d \n", a[k].T.hour, a[k].T.minute);
    printf("Код города: %d \n", a[k].kod);
    printf("Номер в другом городе: %s \n", a[k].num_other);
    printf("Продолжительность: %d \n", a[k].time);  
    printf("Категория разговора: %s \n", a[k].category);
    printf("Тариф: %f \n", a[k].tarif);
    fwrite((char*)&a[k],sizeof(a[i]),1,pc);//данные записываются в файл
    fclose(fp);
    fclose(pc);
    _getch();
    return 0;
}
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
08.10.2013, 05:17  [ТС]     Обработчики ошибок try catch #11
спасибо тебе огромное дружище) слушай, а можно тебя попросить переделать кое какой код, вот в теме в этой все написано Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз

Добавлено через 12 часов 54 минуты
Кстати, а что значит цикл while (1), что за единица?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2013, 05:31     Обработчики ошибок try catch #12
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
а что значит цикл while (1)
Условие работы цикла всегда true.
Максусс
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 14
07.03.2016, 17:28     Обработчики ошибок try catch #13
alsav22, Здравствуйте, не могли бы вы мне помочь, у меня есть рабочая программа, и все бы хорошо но она не выдает сообщение об ошибках.. не могли бы вы мне помочь(исправить) чтоб она реагировала неправильный ввод данных, на букву вместо цифры или на запятую вместо точки в десятичных дробях.
вот сама программа.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// SLU_GAUS.cpp: определяет точку входа для консольного приложения.
//
//подключение заголовков
#include "stdafx.h"
#include "iostream"
#include "stdio.h"
//-----------------------------------------------
//подключение пространства имен
using namespace std;
//-----------------------------------------------
//функция решения СЛУ методом Гаусса
bool gauss(double **a, int size, double *x)
{
    try
    {
        for (int k = 0; k < size; k++)//переьираем уровнения
        {
            for (int i = size; i >= 0; i--)//перебираем индексы уровнения от последнего до первого
                a[k][i] = a[k][i] / a[k][k];//делем индексы уровнения К на К индекс этого уровнения, т.е. на диагональный индекс
            for (int i = k + 1; i < size; i++)//пребираем уровнения от К+1 уровнения
                for (int j = size; j >= k; j--)// перебираем индексы уровнения от последнего до К, т.е. до диагонального
                    a[i][j] = a[i][j] - a[k][j] * a[i][k];
        }
        for (int k = size - 1; k >= 0; k--)//перебираем от предпоследнего уровнения до первого
        {
            double m = a[k][size];
            for (int i = size - 1; i > k; i--)//перебираем индексы от предпоследнего до К
                m = m - a[k][i] * x[i];
            x[k] = m;
            //cout<<"X "<<(k + 1)<<" = "<<m<<endl;
        }
    }
    catch (char *msg)
    {
        cout<<"ОШИБКА ИЛИ РЕШЕНИЙ НЕТ"<<endl;
        cout<<msg<<endl;
        return false;
    }
    return true;
}
//-----------------------------------------------
//Функция получени марицы коефициентов  СЛУ и соот. свободных членов
bool getMatrixCoef(double **a, int size)
{
    try//обработчик ошибок перехватываем возникающие ошибки
    {
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                cout<<"Введите "<<j + 1<<" коиффициент "<<i + 1<<" уравнения: ";
                cin>>a[i][j];
            }
            cout<<"Введите  свободный член "<<i + 1<<" уравнения: ";
            cin>>a[i][size];
        }
    }
 
    catch (char *msg)//если ошибка возникла
    {
        cout<<"ВОЗНИКЛА ОШИБКА"<<endl;
        cout<<msg<<endl;
        return false;
    }
    return true;//возврат результата функцией
}
//-----------------------------------------------
//Процедура вывода матрицы коефициентов на экран
void showMatrixCoef(double **a, int size)
{
    cout<<"Матрица коэффициентов СЛУ и соотв. свободные члены:"<<endl;
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size+1; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
//-----------------------------------------------
//Процедура вывода решения СЛУ на экран
void showResult(double *x, int size)
{
    cout<<"Решение СЛУ:"<<endl;
    for (int i = 0; i < size; i++)
            cout<<"X"<<i+1<<" = "<<x[i]<<endl;
}
//-----------------------------------------------
//Основное тело программы
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE, "Russian");//подключаем русскую кодировку
    cout<<"Введите колличество уровнений: ";//выводим сообщение на экран
    int size;
    cin>>size;//получаем количество уровнений введенное пользователем
    //определяем матрицу коэффициентов
    double **a = new double*[size];
    for (int i = 0; i < size; i++)
        a[i] = new double[size + 1];
    //определяем массив решений СЛУ
    double *x = new double[size];
    if (getMatrixCoef(a, size))//если получение прошло без ошибок
    {
        cout<<endl<<endl<<endl;//делаем отступ пустыми строками
        showMatrixCoef(a, size);//выводим матрицу коеф. и свободные члены
        if (gauss(a, size, x))//если система имеет решение
            showResult(x, size);//выводим решение
    }
    cout<<endl;
    system("pause");//выполенение системной команды "пауза"
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2016, 17:37     Обработчики ошибок try catch
Еще ссылки по теме:

C++ try . catch
C++ Try и catch
Try-catch C++

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

Или воспользуйтесь поиском по форуму:
Rapsod
Волшебник
 Аватар для Rapsod
62 / 61 / 4
Регистрация: 21.11.2009
Сообщений: 319
07.03.2016, 17:37     Обработчики ошибок try catch #14
Обработка всех ошибок...

C++
1
2
3
4
5
6
catch (...)
    {
        cout<<"ОШИБКА ИЛИ РЕШЕНИЙ НЕТ"<<endl;
        cout<<msg<<endl;
        return false;
    }
Добавлено через 4 минуты
Проверка является ли символ числом от 0 до 9:

C++
1
2
3
4
5
6
7
if (isdigit(str[i])){
 
// это число
} 
else {
// это не число
}
Yandex
Объявления
07.03.2016, 17:37     Обработчики ошибок try catch
Ответ Создать тему
Опции темы

Текущее время: 05:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru