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

Как прописать алгоритм... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
16.04.2011, 13:42     Как прописать алгоритм... #1
на С++...для перевода из 16 в 10 систему счисления?
там прописывать АBCDEF нужно?
вот у меня есть листинг польской записи, и вот к ней нужно добавить алгоритм перевода из 16 в 10...
принцип работы калькулятора таковой - вводишь выражение, например А3+В5*2/3 и прога вычисляет, а результат в десятичной системе...
помогите
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
#include <iostream>
#include <string.h>
#include <math.h>
#include <stdio.h>
 
int main(void)
{
        float stack[70];
        float res;
        int m = 0;
        char query[100];
 
        printf("Vvedite vyrajenie: ");
        gets(query);
 
        for (int i = 0; i < strlen(query); i++)
        {
                if (query[i] >= '0' && query[i] <= '9')
                {
                        stack[m] = query[i] - '0';
                        m++;
                        continue;
                }
 
                switch (query[i])
                {
                        case '+':
                        {
                                res = stack[m - 2] + stack[m - 1];
                                break;
                        }
                        case '-':
                        {
                                res = stack[m - 2] - stack[m - 1];
                                break;
                        }
                        case '*':
                        {
                                res = stack[m - 2] * stack[m - 1];
                                break;
                        }
                        case '/':
                        {
                                res = stack[m - 2] / stack[m - 1];
                                break;
                        }
                }
 
                stack[m - 2] = res;
                m--;
        }
 
        printf("Otvet: %f", res);
        getchar();
 
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.04.2011, 13:56     Как прописать алгоритм... #2
tima39, Перевод в 10-ю из любой системы делается просто.
Пример.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string>
#include <iostream>
#include <cmath>
 
int toDecFromHex(const std::string& number)
{
    const int from = 16;
    const int to = 10;
    int result = 0;
    int i=0;
    for(std::string::const_reverse_iterator iter = number.rbegin(); iter != number.rend(); ++iter)
    {
         int some_var = 0;
         if(*iter >= 'A')
            some_var = *iter - 'A' + to;
         else
            some_var = *iter - '0';
         result += some_var * static_cast<int>(pow(static_cast<double>(from), static_cast<double>(i)));
         ++i;
     }
     return result;
}
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
16.04.2011, 13:58  [ТС]     Как прописать алгоритм... #3
тут пример буквы А?
этот листинг мне в начале воткнуть или после?
я вообще не понимаю а то
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.04.2011, 14:00     Как прописать алгоритм... #4
tima39, Это пример перевода из 16-ой в 10-ю любого числа, которое влезет в тип int.
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
16.04.2011, 14:02  [ТС]     Как прописать алгоритм... #5
то есть в выражениях типа А3+В5*2/3, он будет читать,вычислять и переводить?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.04.2011, 14:06     Как прописать алгоритм... #6
tima39, Нет. Он будет переводить. Только. Остальное сами. Да и это вам придется переписать под свой уровень.
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
16.04.2011, 14:10  [ТС]     Как прописать алгоритм... #7
спасибо...
правда я не могу понять этот уровень, чтобы переписать на самый низший уровень
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.04.2011, 14:23     Как прописать алгоритм... #8
tima39, Откройте справочник да посмотрите. Ничего сложного.

Функция принимает строку - начиная с конца строки берет каждый символ, если символ > 'A' - отнимает от символа 'A' и прибавляет 10, т.к. 65-65+10 = 10, 67-65+10=12 (C), если символ от 1 до 9 - отнимает '0' (код 48), таким образом получаем число от 1 до 9.
Далее умножаем получившееся число на 16^i и прибавляем к результату. Все. Обычный алгоритм.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.04.2011, 15:25     Как прописать алгоритм... #9
ForEveR, использование итераторов, для прохождения строки быстрее за простой проход по индексам?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.04.2011, 15:42     Как прописать алгоритм... #10
outoftime, Предпочитаю использовать итераторы для STL контейнеров. Концептуальнее правильнее. ИМХО.
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
17.04.2011, 08:46  [ТС]     Как прописать алгоритм... #11
Цитата Сообщение от ForEveR Посмотреть сообщение
outoftime, Предпочитаю использовать итераторы для STL контейнеров. Концептуальнее правильнее. ИМХО.
паааарни, а можете помочь, пожалуйста с калькулятором (из 16 в 10...С++..польская запись..в консоли), а то курсач сдавать послезавтра, а я не разбираюсь в программировании...буду очень благодарен...первокурсник..ничего не знаю(( стыд и позор *facepalm*
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.04.2011, 11:11     Как прописать алгоритм... #12
tima39, ты теорию откуда брать будешь? Правильно - из наших разговоров, так что не мешай (:
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2011, 11:13     Как прописать алгоритм...
Еще ссылки по теме:

C++ Как прописать условие не меньше и не равно?
Как правильно прописать данный код программы? C++
Как прописать id файла C++

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

Или воспользуйтесь поиском по форуму:
tima39
0 / 0 / 0
Регистрация: 16.04.2011
Сообщений: 15
17.04.2011, 11:13  [ТС]     Как прописать алгоритм... #13
не оскорбляй опыт и нестремление новичка учиться программировать
Yandex
Объявления
17.04.2011, 11:13     Как прописать алгоритм...
Ответ Создать тему
Опции темы

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