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

Задача: преобразование систем счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу скомпилировать программу на движке ODE http://www.cyberforum.ru/cpp-beginners/thread654279.html
Суть: имеется движок ODE v.0.12, имеется готовая программка, которая использует движок и генерирует случайные 3-мерные существа на открытом пространстве (грубо говоря). Проблема в том, что не получается скомпилировать это всё дело без ошибок. Везде появляется одна и та же ошибка: "C:\***\ode-0.12\include\ode\common.h(111): fatal error C1189: #error : You must #define dSINGLE or dDOUBLE". ...
C++ Целые числа по 20 символов даны 2 строки в них нужно вписать целые числа размером в двадцать символов и затем сложить. при вводе пишу числа в ответ выводит к примеру 2.97429-307? #include <iostream> #include <conio.h> #include <cstring> using namespace std; char x; char y; char z; int main () http://www.cyberforum.ru/cpp-beginners/thread654275.html
Сортировать массив по возрастанию методом выбора C++
Дан одномерный массив из n (n≤104) элементов a1,a2,…,an.( |ai|≤2×109). Сортировать по возрастанию методом выбора. Алгоритм сортировки оформить в виде ФУНКЦИИ!
C++ Нужно оптимизировать готовый код, чтобы не было стыдно показать
Мне дали сделать задачку, чтобы проверить мои знания в ООП (я только 2 месяца назад начал изучать С++). И так, задача: Определить класс (или структуру данных при использовании процедурного подхода), описывающий покупку одного и того же штучного товара по одной и той же цене (в рублях) в течение одного месяца и содержащий сведения о дне покупки и количестве приобретенных единиц. Допускаются...
C++ Builder Поиск файлов по маске. Не видит TSearchRec http://www.cyberforum.ru/cpp-beginners/thread654250.html
Задание: необходимо создать папку, в которой 10 файлов (*.txt); организовать поиск файлов по маске. Что имею: #include <stdio.h> #include <iostream.h> #include <string.h> #include <fstream.h> #include <direct.h> //так как dir.h не пошла под NetBeans void FindFull(string dir, string mask) {
C++ Функция scanf() //--------------------------------------------------------------------------- #include <vcl.h> #include <stdio.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,647
19.09.2012, 17:49     Задача: преобразование систем счисления
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
/////////////////////////////////////////////////////////////////////////////////////////
//Описание
//
//Имеются 2 цифры в разных системах счисления, цель задачи найти, в каких системах счисления 
//2 цифры равны. Например, 12 и 5, в десятичной системе счисления они не равны, 
//но 12 в 3-чной системе счисления 
//и 5 в 6-чной или десятичной системе счисления равны между собой.
//
//Input
//
//Вводятся два числа M и N ( которые в десятичной системе не превышают 1000000000), системы 
//счисления находятся в диапазоне 2~36. Для чисел меньше 10 использовать цифры 0~9, для чисел 
//больше 10 использовать заглавные буквы A~Z.
//
//Output
//
//Вывести в каких системах счисления M и N равны. Если равны, вывести соответствующий результат 
//(если результатов несколько, вывести тот результат, в котором система счисления наименьшая), 
//если не равны, вывести ошибку.
//
//Например, Input:
//12 5
//
//Output:
//12 (base 3) = 5 (base 6)
/////////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
void  print_comp_res
    (
        const T_str&    num_A_str,
        const T_str&    num_B_str
    )
{
    const int   BASE_MIN    =   2;
    const int   BASE_MAX    =   36;
    const char  NULL_SYMB   =   '\0';
 
    char*       A_end;
    char*       B_end;
 
    for( int  base_A = BASE_MIN; base_A <= BASE_MAX; ++base_A )
    {
        for( int  base_B = BASE_MIN; base_B <= BASE_MAX; ++base_B )
        {
            if  (
                            strtol
                                (
                                    num_A_str.c_str(),
                                    &A_end,
                                    base_A
                                )
 
                        ==  strtol
                                (
                                    num_B_str.c_str(),
                                    &B_end,
                                    base_B
                                )
 
                    &&  *A_end  ==  NULL_SYMB
                    &&  *B_end  ==  NULL_SYMB
                )
            {
                std::cout   <<  num_A_str
                            <<  "("
                            <<  base_A
                            <<  ") = "
                            <<  num_B_str
                            <<  "("
                            <<  base_B
                            <<  ")"
                            <<  std::endl;
 
                return;
            }//if
        }//for
    }//for
    std::cout   <<  "!="
                <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    for(;;)
    {
        std::cout   <<  "num_A = ";
        T_str   num_A_str;
        std::cin    >>  num_A_str;
 
        std::cout   <<  "num_B = ";
        T_str   num_B_str;
        std::cin    >>  num_B_str;
 
        print_comp_res
            (
                num_A_str,
                num_B_str
            );
 
        std::cout   <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }
}
 
Текущее время: 21:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru