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

исключения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ переставить елементы массива http://www.cyberforum.ru/cpp-beginners/thread42819.html
Задали задачу: В массиве переставить значения в обратном порядке. Тоесть(1,2,3,4,5)надо перевернуть(5,4,3,2,1) Написал код ,вроде должен работать, но не работает. const int n=5; int...
C++ решение функции и запись результата в файл Условие в прилогаемом файле... http://www.cyberforum.ru/cpp-beginners/thread42816.html
C++ как осуществить статус загрузки?
помогите пожалуйста мне нужен код для проги чтобы код показывал статускакой то работы...скажем прога работает с файлом и закончит через 10 мин...это надо показывать в процентах так 10% 11% 80% и...
Синтаксическая ошибка!)) C++
Вот код: ==================================================================== #include <iostream> using namespace std; /*Напишите код, умножающий исходное число на 2, если оно принадлежит...
C++ Сравнить первый и второй элементы массива http://www.cyberforum.ru/cpp-beginners/thread42689.html
Здравствуйте. У меня возникли проблемы решением задачки. Подскажите формулу. "Дан 2 -ух мерный массив. Сравнить первый и второй элементы массива. Если второй элемент меньше первого, то поменяйте их...
C++ работа с звуками Состваить программу для воспроизведения 3-х аккордов с помощью нажатия клавиш. Длительность нажатия клавиши определять длительность звучания аккорда. Аккорды:Тоническое трезвучие(до+ми+соль),... подробнее

Показать сообщение отдельно
VFJB
1 / 1 / 0
Регистрация: 14.12.2008
Сообщений: 26

исключения - C++

02.07.2009, 19:36. Просмотров 1766. Ответов 32
Метки (Все метки)

программа реализует проверку на двоичное число:
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
#include <iostream>
#include <string.h>
using namespace std;
 
//класс исключений
class error{
public:
    char str[100];
    //конструктор, который присваивает строке stri значение строки str
    error (char stri[100])
    {
        strcpy_s(str, stri);
    }
};
 
//функция, проверяющая корректногсть ввода данных
int IsBinary(char s[]){
    int count=0;//переменная-счетчик
    int points=0;//переменная-счетчик, отвечающая за количество точек
    int minuses=0;//переменная-счетчик, отвечающая за количество минусов
    int num = 0;//переменная-счетчик
    //проверка корректности ввода данных
    for (int i=0; i<(int)strlen(s); i++)
    {
        if (((int)s[i]>=48) && ((int)s[i]<=49) || ((int)s[i]==46) || ((int)s[0]==45))
        {
            //если s[0] - минус, увеличиваем счетчики
            if ((i==0)&&(int)s[i] == 45)
            {
                count++;
                minuses++;
            }
            //если s[i]-цифра, увеличиваем счетчики
            if (((int)s[i]>=48) && ((int)s[i]<=57)) 
            {
                num=num+1; 
                count = count+1;
            }
            //если s[i]-точка, увеличиваем счетчики
            if ((int)s[i] == 46) 
            {
                points=points+1;
                count = count+1;
            }
            //если s[i]-минус - исключение
            if (((int)s[i] == 45)&&(i!=0)) 
            {
                throw error("ne dvoicnoe\n");
                exit(0);
            }
        }
        else 
        {
            break;
        }
    }   
    //если нет цифр-исключение
    if ((num==0)&&((points=1)||(minuses=1))) 
    {
        throw error("ne dvoichnoe\n");
    }
    else
    //если есть лишние символы - исключение
    if ((strlen(s)!=num+points+minuses)||(points>1)||(minuses>1)) 
    {
        throw error("ne dvoichnoe\n");
    }
    else 
    {
        cout << "dvoichnoe" << endl;
    }
}
 
//главная функция программы
int main()
{
    //вывод на экран назначения программы
    cout << "programma opredeliaet dvoicnie chisla" << endl;
    char s[100];//
    cout << "vvedite chislo" << endl;//запрос на ввод пользователем некой строки
    cin >> s;
    //вызов функции проверки числа
    try 
    {
        IsBinary(s);
    }
    //перехватчик исключений
    catch(error ex)
    {
        cerr << ex.str;
    }
    return 0;
}
нужно задать тип исключения, не подскажите как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru