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

Помогите реализовать программу, возможно за денежное вознаграждение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Количество слагаемых http://www.cyberforum.ru/cpp-beginners/thread365230.html
Друзья, если вам не трудно, помогите пожалуйста сделать вот такую задачу: Дано число 'N', нужно представить его в виде 'n' любых слагаемых. Я не знаю как это нормально объяснить, но например вот...
C++ Системы счисления Программа переводит из десятично системы счисления в двоичную, восьмеричную и шестнадцатиричну, но выводит ответ задом на перед надо это исправить. если есть идеи помогите пожалуйста!! #include... http://www.cyberforum.ru/cpp-beginners/thread365213.html
C++ итератор в классе-шаблоне
template<class T> class m_vector: public vector<T> { public: T at(int i); m_vector(){} ~m_vector(){} }; template<class T> T m_vector<T>::at(int index) {
Что не правильно в этом коде? C++
#include <iostream> #include <math.h> using namespace std; int main() { float I; //Годовая процентная ставка
C++ Константные перечесления http://www.cyberforum.ru/cpp-beginners/thread365203.html
Добрый день , в одной из задач обнаружил во такой вот пример Enum schet(one,two,three); Понятно что это целочисленный оператор переменных (константных) и вдргу в классе , одному из методов доступа...
C++ СМО Как сделать систему массового обслуживания? Может есть уже у кого готовый код? И объясните пожалуйста что такое СТЕК? подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
13.10.2011, 17:06
Сделал через таблицу переходов.

Последовательность переходов задается как первый аргумент командной строки без пробелов, последовательности "112" соответствуют переходы 1, 1, 2.
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
#include <stdio.h>
#include <stdlib.h>
 
/* Если будет больше 9, то начнутся проблемы */
#define TRANSITION_COUNT 3
 
enum state
{
    S, A, C, B, Z,
    STATE_COUNT
};
 
static int transitions[STATE_COUNT][TRANSITION_COUNT] =
{
    {A, C,  B},         /* переходы для S */
    {Z, A, -1},         /* переходы для A */
    {Z, -1, C},         /* переходы для C */
    {B, Z, -1},         /* переходы для B */
    {C, A,  B}          /* переходы для Z */
};
 
static const char* state_set = "SACBZ";
 
#define NEXT_STATE(STATE, TRANSITION) (transitions[STATE][TRANSITION])
 
int next_trans(const char* trans_seq)
{
    char c = *trans_seq;
 
    if(c >= '1' && c <= TRANSITION_COUNT + '0')
    return (c - '0' - 1);
 
    return -1;
}
 
int main(int argc, char* argv[])
{
    int state;
    int last_state = S;
    int trans;
        
    if(argc != 2)
    {
    fputs("Expected transitions array\n", stderr);
    exit(1);
    }
 
    putchar('S');
    
    while(*argv[1])
    {
    trans = next_trans(argv[1]);
 
    if(trans == -1)
    {
        printf(" <Unexpected transition %c>\n", *argv[1]);
        exit(1);
    }
 
    state = NEXT_STATE(last_state, trans);
 
    if(state == -1)
    {
        printf(" <Transition %c is undefined for state %c>\n",
           *argv[1], state_set[last_state]);
        exit(1);
    }
 
    printf("->%c", state_set[state]);
 
    last_state = state;
    ++argv[1];
    }
 
    putchar('\n');
    
    exit(0);
}
Пример:
Код
[nameless@desktop c]$ ./sample 1131213
S->A->Z->B->B->Z->C->C
[nameless@desktop c]$ ./sample 22
S->C <Transition 2 is undefined for state C>
[nameless@desktop c]$ ./sample 24
S->C <Unexpected transition 4>
[nameless@desktop c]$
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru