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

системы счислення - C++

Восстановить пароль Регистрация
 
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
27.03.2010, 15:02     системы счислення #1
зделать прогу которая переводит числа з восьмиричной в десятирічну систему числение. она должна роботать с дробами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2010, 15:02     системы счислення
Посмотрите здесь:

C++ Системы счисления!!!!
C++ распределенные системы
Системы счисления C++
Системы C++
C++ Системы счисления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R0mm
Псевдо программист
 Аватар для R0mm
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
27.03.2010, 17:17     системы счислення #2
задача попсовая. поищите по форуму
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
29.03.2010, 01:44  [ТС]     системы счислення #3
я искал там с целыми а мне надо с дробами пожалуйста помогите иначе я пропал

Добавлено через 2 часа 22 минуты
Помогите пожалуста, очень надо!!!!

Добавлено через 1 час 31 минуту
Может у кого какие мысли есть по поводу программы???
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.03.2010, 03:24     системы счислення #4
Цитата Сообщение от kobra_F1 Посмотреть сообщение
я искал там с целыми а мне надо с дробами
Плохо искали. http://www.cyberforum.ru/cpp-beginne...tml#post606187
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
30.03.2010, 00:46  [ТС]     системы счислення #5
мне надо по С++ пожалуйста

Добавлено через 6 часов 23 минуты
у меня етот исходник не компилируется.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.03.2010, 01:03     системы счислення #6
Цитата Сообщение от kobra_F1 Посмотреть сообщение
у меня етот исходник не компилируется.
А чем компилируете и какие ошибки выдаёт - угадать нужно?
Только-что двумя разными проверил (gcc и cl) - всё ровно...
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
30.03.2010, 02:02  [ТС]     системы счислення #7
напишы на C плз

Добавлено через 6 минут
а на С++ работает ето я заглючил чото.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.03.2010, 12:09     системы счислення #8
Цитата Сообщение от kobra_F1 Посмотреть сообщение
напишы на C плз
не, я не умею.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
30.03.2010, 12:22     системы счислення #9
Цитата Сообщение от kobra_F1 Посмотреть сообщение
напишы на C плз
а это разве не на С?
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
30.03.2010, 22:21  [ТС]     системы счислення #10
ето на С++ а мне надо на чистом С очень прошу помогите ето моя курсовая
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.03.2010, 23:53     системы счислення #11
kobra_F1, вот тебе на С, ввод только переделай под восьмеричные значения
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <string>
 
class Number {
    int whole;
    int fract;
    int precision;
    static const std::string digits;
 
public:
    Number() : whole(0), fract(0), precision(2) {}
    Number(double dbl) : precision(2){
        whole = static_cast<int>(dbl);
        fract = static_cast<int>((dbl - floor(dbl)) * pow(10, precision) + 0.5 );
    }
    Number(double dbl, int psn) : precision(psn) {
        whole = static_cast<int>(dbl);
        fract = static_cast<int>((dbl - floor(dbl)) * pow(10, precision) + 0.5 );
    }
    ~Number() {}
    const std::string baseStr(int base = 10) const {
        if ( base < 2 || base > 16){
            std::cerr << "Invalid base value" << std::endl;
            exit(1);
        }
        std::string result(""), buf("");
        int w(whole);
        int f(fract);
        while ( w ){
            buf += digits[w % base];
            w /= base;
        }
        std::reverse_copy(buf.begin(), buf.end(), std::back_inserter(result));
        result += ".";
        buf = "";
        while ( f ){
            buf += digits[f % base];
            f /= base;
        }
        std::reverse_copy(buf.begin(), buf.end(), std::back_inserter(result));
        return result;
    }
};
const std::string Number::digits = "0123456789abcdef";
 
int main(){
    double val;
 
    while ( true ){
        std::cout << "Double value: ";
        std::cin >> val;
        if ( val == 0.0 )
            break;
        Number num(val);
        std::cout << "Bin: " << num.baseStr(2) <<std::endl;
        std::cout << "Oct: " << num.baseStr(8) << std::endl;
        std::cout << "Dec: " << num.baseStr() << std::endl;
        std::cout << "Hex: " << num.baseStr(16) << std::endl;
    }
    return 0;
}
kobra_F1
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 8
31.03.2010, 01:13  [ТС]     системы счислення #12
а в чом ти его компілировал, может там надо компілятор как то настраивать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 01:17     системы счислення
Еще ссылки по теме:

C++ Системы счисления
C++ Системы исчесления
Системы счисления C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
31.03.2010, 01:17     системы счислення #13
kobra_F1, gcc нормально скомпилировал.
вот
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <string>
#include <algorithm>
 
class Number {
    int whole;
    int fract;
    int precision;
    static const std::string digits;
 
public:
    Number() : whole(0), fract(0), precision(2) {}
    Number(double dbl) : precision(2){
        whole = static_cast<int>(dbl);
        fract = static_cast<int>((dbl - floor(dbl)) * pow(10.0, precision) + 0.5 );
    }
    Number(double dbl, int psn) : precision(psn) {
        whole = static_cast<int>(dbl);
        fract = static_cast<int>((dbl - floor(dbl)) * pow(10.0, precision) + 0.5 );
    }
    ~Number() {}
    const std::string baseStr(int base = 10) const {
        if ( base < 2 || base > 16){
            std::cerr << "Invalid base value" << std::endl;
            exit(1);
        }
        std::string result(""), buf("");
        int w(whole);
        int f(fract);
        while ( w ){
            buf += digits[w % base];
            w /= base;
        }
        std::reverse_copy(buf.begin(), buf.end(), std::back_inserter(result));
        result += ".";
        buf = "";
        while ( f ){
            buf += digits[f % base];
            f /= base;
        }
        std::reverse_copy(buf.begin(), buf.end(), std::back_inserter(result));
        return result;
    }
};
const std::string Number::digits = "0123456789abcdef";
 
int main(){
    double val;
 
    while ( true ){
        std::cout << "Double value: ";
        std::cin >> val;
        if ( val == 0.0 )
            break;
        Number num(val);
        std::cout << "Bin: " << num.baseStr(2) <<std::endl;
        std::cout << "Oct: " << num.baseStr(8) << std::endl;
        std::cout << "Dec: " << num.baseStr() << std::endl;
        std::cout << "Hex: " << num.baseStr(16) << std::endl;
    }
    return 0;
}
поправленный для VS.
Yandex
Объявления
31.03.2010, 01:17     системы счислення
Ответ Создать тему
Опции темы

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