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

разбор задачки. системы счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ для данного натурального n и действительного x подсчитать следующие суммы http://www.cyberforum.ru/cpp-beginners/thread912900.html
для данного натурального n и действительного x подсчитать следующие суммы S=cos1-cos2+cos-...+(-1)^n+1cosn
C++ Вывести на экран числа ввиде следующей таблицы Вывести на экран числа ввиде следующей таблицы 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10 http://www.cyberforum.ru/cpp-beginners/thread912897.html
C++ рассчет пенсии
Доброго времени суток! Помогите пожалуйста с написанием программы. Идея такая что женщинам которым меньше 40, зарплата 200 лат мужчинам которым меньше 25 , 400 лат мужчинам от 25 до 39, 200 лат остальным которым 40 и больше, 300 лат.
Создание программы для сортировки случайного массива чисел C++
Здравствуйте, пишу курсовую работу, по заданию требуется написать программу, в которой пользователь задает размер строк и столбцов массива одним числом, тоесть 2=2 строки*2 столбца, 10=10 строк*10 столбцов, программа генерирует случайный массив и потом сортирует его строки от меньшего числа к большему. в итоге должно получится программа: пользователь ввел число, программа сгененрировала массив,...
C++ __property http://www.cyberforum.ru/cpp-beginners/thread912872.html
Видел __property в C++ Builder и в C#.Используется в классе вот так: __property int IntegerValue = {read = GetValue,write = SetValue}; Как использовать это в C++?
C++ Предприятие имеет местную телефонную станцию на 20 номеров Здравствуйте,помогите пожалуйста написать программу в С++: Предприятие имеет местную телефонную станцию на 20 номеров. Телефонный справочник данного предприятия для каждого номера телефона содержит номер помещения и список служащих, сидящих в данном помещении. Составить программу, которая: □ позволяет вносить в базу новые записи; □ по номеру телефона выдает номер помещения и список сидящих в... подробнее

Показать сообщение отдельно
Khelleos
37 / 37 / 7
Регистрация: 13.05.2010
Сообщений: 283
Записей в блоге: 1
27.06.2013, 02:44     разбор задачки. системы счисления
Написал свою реализацию.
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
#include <iostream>
#include <string>
 
using namespace std;
 
double get_number(int number, int numeral_system)
{
    double temp;
    if (number >= 97)           //a-Z
        temp = number - 87;
    else if (number >= 65)      //A-Z
        temp = number - 55;
    else if (number >= 48)      //0-9
        temp = number - 48;
    else
    {
        cout << "Ошибка: неизвестный символ \"" << (char)number << "\" !" << endl;
        return -1;
    }
 
    if (temp >= numeral_system)
    {
        cout << "Ошибка: неверно задана система счисления!" << endl;
        return -1;
    }
 
    return temp;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    string number;
    cout << "Введите число: ";
    cin >> number;
 
    double numeral_system;
    cout << "Введите систему счисления числа: ";
    cin >> numeral_system;
 
    string integer,         //целая часть
           fractional;      //дробная часть
 
    size_t position_point;
    position_point = number.find('.');
    if (position_point != string::npos)
    {
        integer = number.substr(0, position_point);
        fractional = number.substr(position_point + 1);
    }
    else
        integer = number;
 
    double res = 0,
           scale,
           temp;
 
    if (integer.length() != 0)
    {
        scale = 0.0;
        for(string::reverse_iterator i = integer.rbegin(); i != integer.rend(); i++)
        {
            temp = get_number((int)*i, numeral_system);
            if (temp == -1)
            {
                system("pause");
                return -1;
            }
            res += temp * pow(numeral_system, scale);
            scale++;
        }
    }
 
    if (fractional.length() != 0)
    {
        scale = -1.0;
        for(string::iterator i = fractional.begin(); i != fractional.end(); i++)
        {
            temp = get_number((int)*i, numeral_system);
            if (temp == -1)
            {
                system("pause");
                return -1;
            }
            res += temp * pow(numeral_system, scale);
            scale--;
        }
    }
 
    cout << "Результат: " << res << endl;
 
    system("pause");
 
    return 0;
}
 
Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru