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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отслеживание USB флешек http://www.cyberforum.ru/cpp-beginners/thread967831.html
Доброго времени суток. Хотелось бы услышать, как корректно определить USB флэшку? Необходимость появилась в этом, потому что надо сделать запрет на открытие флэшки на компе. И при запрете не запретить клаву с мышкой USB. Можете подкинуть примеры по определению флэшек?
C++ Сортировка "Пузырьковым методом" Доброе утро всем, у меня есть одна задача, была рабочей, но сказали переделать метод пузырька чтобы было с do и while, как лучше это сделать, а то у меня не получилось. Есть еще вложение здесь, там блок-схема по которой надо метод пузырька сделать) #pragma argsused #include<iostream.h> #define n 8 void bubbleSort(int* arr, int size); int main(int argc, char* argv) { int i, a, b, x, g,... http://www.cyberforum.ru/cpp-beginners/thread967820.html
C++ Метод Зейделя
ошибка найдена. тема закрыта
Теория по С++ C++
Здравствуйте. Необходимо ответить на вопрос, что такое идентификаторы, пунктуаторы, ключевые слова и операторы. Я искал в гугле по отдельности каждое из этих слов, но ничего разумного не нашел. Может кто из вас знает правильные определения этих слов ну или есть книжка по программированию с определениями. Заранее спасибо.
C++ Средний возраст программиста http://www.cyberforum.ru/cpp-beginners/thread967785.html
Мне 23 и я часто вижу людей, которые еще в школе учатся, а уже могут такое на том-же С++, что я и представить себе не могу и взрослых программеров, которые не такие уж и крутые. Интересно узнать, в среднем, какой возраст у более-менее крутых программистов?
C++ Облачные технологии на С++ В последнее время побывал на нескольких конференциях, на которых говорилось, что будущее программирования за облачными технологиями. Посоветуйте книги на данную тему, применительно к С++ подробнее

Показать сообщение отдельно
Максусс
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 14
07.03.2016, 17:28     Обработчики ошибок try catch
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;
}
 
Текущее время: 04:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru