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

Перевод систем счислений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменение одной буквы на другое количество http://www.cyberforum.ru/cpp-beginners/thread164448.html
задали написать программу которая заменяет одну букву на другую но одну это я написал но хочется сделать так чтобы одна буква заменялась на 2,3 и более (потипа ) Помогите пожалуйста воплотить эту задумку в жизнь
C++ Отладка программы Помогите пожалуйста сделать программу корректной. В общем из трех чисел x, y, z нужной найти максимальное попробовал следующее, но чего то не выходит #include <iostream> inline int max(int x, int y, int z) { return x<y? x:y; return x<z? x:z; } int main () { std::cout <<max(1,2,4) <<"\n"; http://www.cyberforum.ru/cpp-beginners/thread164444.html
C++ Потоки
Как именно применять многозадачность языка С++? Я тут где то прочитал что это потоки, но там не указывался метод использования. Пример: Допустим работает приложение (консоль) Идет выполнение программы ( ожидание действия пользователя ) И в то же время работает таймер. Подскажите сей пример как его в С++ сделать.
C++ Структурные типы в Borland C
Помогите доделать,а то у меня ошибки вылазят #include<stdio.h> #include<conio.h> #include<iostream.h> void main() { struct date {
C++ Одномерный массив: сколько раз повторяется каждое число http://www.cyberforum.ru/cpp-beginners/thread164401.html
помогите решить такую задачку: есть одномерный массив, в котором n элементов, мы вводим в него числа и надо определить сколько раз повторяется каждое число и вывести на экран ответ в виде: число = количество повторов. Заранее благодарен)
C++ шаблоны Помогите пож. разобраться с шаблонами. Шаблоны у которых параметры тоже шаблоны. из книги: tamplate<typenamy T>class Thing здесь tamplate<typename T>class а Thing-параметр -как здесь будут происходить подстановки?? дальше: пусть есть объявление: Cr<Kin>obj; для того чтобы это работало,аргумент шаблона king должен быть шаблонным классом,определение которого должно соответствовать параметру... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
09.09.2010, 11:17     Перевод систем счислений
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
//////////////////////////////////////////////////////////////////////////////
//  написать программу которая будет переводить число из одной произвольной 
//  системы счисления в другую.
//////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
 
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////
int symb_to_dig(char symb)
{
    if('0' <= symb && symb <= '9')
    {
        return symb - '0';
    }
    if('a' <= symb && symb <= 'z')
    {
        return symb - 'a' + 0xa;
    }
    return 0;
}
//////////////////////////////////////////////////////////////////////////////
char dig_to_symb(int dig)
{
    if(0 <= dig && dig <= 9)
    {
        return dig + '0';
    }
    const int lett_dig_a = 10;
    const int lett_dig_z = 'z' - 'a' + lett_dig_a;
    if(lett_dig_a <= dig && dig <= lett_dig_z)
    {
        return dig - lett_dig_a + 'a';
    }
    return '?';
}
//////////////////////////////////////////////////////////////////////////////
T_str  transform(T_str num_str, int begin_radix, int end_radix)
{    
    int val                   = 0;    
    int begin_radix_in_order  = 1;
 
    for(T_str::const_reverse_iterator  rev_dig_it = num_str.rbegin(); 
        rev_dig_it != num_str.rend(); ++rev_dig_it)
    {
        val += symb_to_dig(tolower(*rev_dig_it)) * begin_radix_in_order;
        begin_radix_in_order *= begin_radix;
    }
 
    T_str  res_str;
    while(val)
    {        
        res_str.insert(0, 1, dig_to_symb(val % end_radix));     
        val /= end_radix;
    }
    return  res_str;
}
//////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    for(;;)
    {
        std::cout << std::endl
                  << std::endl
                  << std::endl
                  << "Число в исходной системе счисления:   ";        
        T_str num_str;
        std::cin >> num_str;        
 
        int n1;
        do
        {
            std::cout << "Основание исходной системы счисления: ";        
            std::cin >> n1;    
        }while(n1 < 2);
 
        int n2;
        do
        {
            std::cout << "Основание целевой системы счисления:  ";    
            std::cin >> n2;    
        }while(n2 < 2);
 
        std::cout << std::endl
                  << "Число в целевой системе счисления:    "
                  << transform(num_str, n1, n2)
                  << std::endl;     
    }
}
 
Текущее время: 20:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru