Re[4]: Ошибка
От: Vamp Россия  
Дата: 26.07.04 14:47
Оценка: 4 (1)
Н>Очень приятно. А я, пардон, с Вами разговаривал?
А у нас тут демократия — все со всеми разговаривают. И давай спорный совет, будьте готовы к тому, что его полезность будет поставлена под сомнение.
Да здравствует мыло душистое и веревка пушистая.
Re: Ошибка
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 26.07.04 08:19
Оценка: -1
Здравствуйте, <Аноним>, Вы писали код.

На будующее
  • Либо включите /W4, либо пишите

    if(21 == m) ...

    вместо

    if(m == 21) ...

  • Давайте более осмысленные имена переменным или/и пишите перед ними комменты, чтобы, например, в VS они в тултипах отображалить.
  • Отбивайте исходники в теги.
    ... << Rsdn@Home 1.1.4 beta 1 >>
  • HgLab: Mercurial Server and Repository Management for Windows
    Re[16]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 11:20
    Оценка: +1
    Здравствуйте, <Аноним>, Вы писали:

    А>я понимаю легче сказать челу ты иди правила провописания изучи

    А>чем на вопрос ответить конкретный !!!
    "Провописание" это круто. Может действительно стоит сходить? И вапросы зодовать поканкретние?

    А>int m;
    А>...
    А>if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1; (вот он вопрос )
    А>b1+=1;//что это может быть?

    Так не бывает.
    Если так бывает, то нужно выкидывать компилятор в котором так бывает.
    ... << RSDN@Home 1.1.3 stable >>
    Re[3]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 14:45
    Оценка: :)
    Здравствуйте, Vamp, Вы писали:

    Н>> либо пишите


    Н>>
    Н>>if(21 == m) ...
    Н>>

    Н>>вместо

    Н>>
    Н>>if(m == 21) ...
    Н>>

    V>Зачем это еще? Чтобы присваивание со сравнением не перепутать? Я и так не путаю...

    Очень приятно. А я, пардон, с Вами разговаривал?
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[2]: Ошибка
    От: ssm Россия  
    Дата: 26.07.04 15:02
    Оценка: :)
    Здравствуйте, Аноним, Вы писали:

    А>Здравствуйте, Аноним, Вы писали:


    А>Народ всез прошу извинить

    А>ошибка была в дебагере я установил VC6 и NET
    А>VC6 перекрыл NET
    А>вот по этому и была такая анамалия
    А>все я погнал писать дальше

    не, теперь так просто тебе не отделаться
    Ошибка
    От: Аноним  
    Дата: 26.07.04 08:11
    Оценка:
    Народ помогите плз
    int m;
    ...
    m=0;
    ...
    if (tx=="99")//выброс
                {
                    //номер строки
                    c.Delete(0,2);
                    m1+=2;
                                    if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1;
                                     b1+=1;//что это может быть?
    
                    if(m1==1)
                        b1+=1;
    
    
    
                    if(m==12&&b1>0)//соответствие переменных
                    {
                        while(com[b1]!=command[b3][0])
                            b3+=1;
                        while(per[b5]!=perem[b4][0])
                        {
                            b4+=1;
                            if (b4>99)
                            {
                                c="Unknown identiefer";
                                return;
                            }
    
                        }
    
                        if(command[b3][b5]=='L'&&comannd[b3][b5]==perem[b5][1])
                        {
                        }
                        else
                        {
                            c="Type mismatch";
                            return;
                        }
                            b5+=1;
                            b3=0;
                    }
                }
    Re: Ошибка
    От: Sheridan Россия  
    Дата: 26.07.04 08:19
    Оценка:
    0,1,10,11,100 начинаем телепать...
    Объясни в чем проблема, что хочешь получить в итоге, что должно быть..
    Мыж не телепаты...
    -=ICQ:1887019=--=...и WinAmp молчит...=--=RSDN@Home 1.1.4 beta 2 [19905]=-
    Matrix has you...
    Re: Ошибка
    От: _nn_  
    Дата: 26.07.04 09:06
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    Прочитайте это
    Автор: Sir Wiz
    Дата: 19.07.04
    и это
    Автор: _nn_
    Дата: 19.07.04
    .
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:04
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>if (tx=="99")//выброс

    Ох, чует моё сердце, что повыше было

    char * tx

    Если я прав, то такое выражение, товаришь Аноним, не имеет смысла и использовать надо функцию сравнения zero terminated строк. Например, strcmp.
    ... << RSDN@Home 1.1.3 stable >>
    Re[2]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:07
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, <Аноним>, Вы писали:


    SW>
    А>>if (tx=="99")//выброс
    SW>

    SW>Ох, чует моё сердце, что повыше было

    SW>
    SW>char * tx 
    SW>

    SW>Если я прав, то такое выражение, товаришь Аноним, не имеет смысла и использовать надо функцию сравнения zero terminated строк. Например, strcmp.

    В этом случае (только если не будет ничего меняться) можно еще и так :
    if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)


    Хотя изврат, однако
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[3]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:14
    Оценка:
    Здравствуйте, _nn_, Вы писали:


    __>В этом случае (только если не будет ничего меняться) можно еще и так :

    __>
    __>if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)
    __>


    ИМХО нельзя. Если вот так:

    char * tx = new char[1];
    tx[0] = '0';

    То на попытку получить tx[1] и tx[2] будет ба-бах.

    Или я не прав?
    ... << RSDN@Home 1.1.3 stable >>
    Re[4]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:17
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>ИМХО нельзя. Если вот так:


    SW>
    SW>char * tx = new char[1];
    SW>tx[0] = 0;
    SW>

    Опечатался немного, не zero terminated строка получилась, но ба-бах всё-равно будет
    ... << RSDN@Home 1.1.3 stable >>
    Re[4]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:17
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, _nn_, Вы писали:



    __>>В этом случае (только если не будет ничего меняться) можно еще и так :

    __>>
    __>>if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)
    __>>


    SW>ИМХО нельзя. Если вот так:


    SW>
    SW>char * tx = new char[1];
    SW>tx[0] = '0';
    SW>

    SW>То на попытку получить tx[1] и tx[2] будет ба-бах.

    SW>Или я не прав?


    Частично
    Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    Зато если сделать :
    char* tx=new char[1];
    tx[0]='9'

    То будет ба-бах на tx[1];

    Правильней так :
    if(tx[0]&&tx[0]=='9'&&
       tx[1]&&tx[1]=='9'&&
       tx[2]&&tx[2]=='9'&&
       !tx[3])
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[5]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:21
    Оценка:
    Здравствуйте, _nn_, Вы писали:

    SW>>Или я не прав?

    __>Частично
    __>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    Резонное замечание.

    __>Правильней так :

    __>
    __>if(tx[0]&&tx[0]=='9'&&
    __>   tx[1]&&tx[1]=='9'&&
    __>   tx[2]&&tx[2]=='9'&&
    __>   !tx[3])
    __>

    Да, это сильно похоже на правду.

    999? Ставки растут!
    ... << RSDN@Home 1.1.3 stable >>
    Re[6]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:27
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, _nn_, Вы писали:


    SW>>>Или я не прав?

    __>>Частично
    __>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>Резонное замечание.

    __>>Правильней так :

    __>>
    __>>if(tx[0]&&tx[0]=='9'&&
    __>>   tx[1]&&tx[1]=='9'&&
    __>>   tx[2]&&tx[2]=='9'&&
    __>>   !tx[3])
    __>>

    SW>Да, это сильно похоже на правду.

    SW>999? Ставки растут!

    Народ все работает в ко де кроме этого сравнения а
    насесет tx
    CString tx вот так вот я написал =)))
    Re[7]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:29
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    я смотрел в step'e
    он проходит через if (tx=="99")//выброс
    вы мне на вопрос по поводу if(m==21)
    ответьте!!! плиззз
    Re[7]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:30
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    SW>>999? Ставки растут!

    Ага
    А>Народ все работает в ко де кроме этого сравнения а
    А>насесет tx
    А>CString tx вот так вот я написал =)))
    А мы тут с указателями балуемся
    С CString все тогда должно работать нормально.
    CString tx="99";
    if(tx=="99") // Ok
    {
     ...
    }
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:31
    Оценка:
    Да и еще один если написать
    вместо if(m==21) написать if(m==10)
    то он не будет обходить а выполнит IF
    вот в чем косяк не пойму !!!
    Re[7]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 10:33
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    SW>>999? Ставки растут!

    А>Народ все работает в ко де кроме этого сравнения а
    А>насесет tx
    А>CString tx вот так вот я написал =)))

    Что значит "не работает сравнение"?
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:33
    Оценка:
    Здравствуйте, _nn_, Вы писали:

    Я ж не про tx спрашивал а вы начали весь код лопатить =)
    так что смотрите выше там главный вопрос
    про IF(m==21)
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:34
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:

    ну перепрыгивает его в step хотя значение в watch которое надо
    Re[9]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 10:37
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Здравствуйте, Нахлобуч, Вы писали:


    А>ну перепрыгивает его в step хотя значение в watch которое надо


    Тады давай побольше кода (с определением m и в тегах ).
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[10]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:39
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:


    Н>Тады давай побольше кода (с определением m и в тегах ).

    смотри 1 сообщение !!
    а в коде этой переменной больше ни чего не косалось
    а код на пару листов без коментарие
    так что думаю любой прогер запутаеться
    Re[9]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:41
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Да и еще один если написать

    А>вместо if(m==21) написать if(m==10)
    А>то он не будет обходить а выполнит IF
    А>вот в чем косяк не пойму !!!
    Предположу, что у вас "на самом деле" было написано

    if(m==21);
    b1+=1;

    Где выделенная точка с запятой совершенно лишняя.
    ... << RSDN@Home 1.1.3 stable >>
    Re[10]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:42
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Предположу, что у вас "на самом деле" было написано

    Ерунду я написал, симптоматика бы обратная была.
    ... << RSDN@Home 1.1.3 stable >>
    Re[11]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 10:42
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Здравствуйте, Нахлобуч, Вы писали:



    Н>>Тады давай побольше кода (с определением m и в тегах ).

    А>смотри 1 сообщение !!
    А>а в коде этой переменной больше ни чего не косалось
    А>а код на пару листов без коментарие
    А>так что думаю любой прогер запутаеться

    Да хоть тип-то ейный скажи! А то может ты там вещественные числа сравниваешь...
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[10]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:43
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>
    SW>if(m==21);
    SW>b1+=1;
    SW>

    SW>Где выделенная точка с запятой совершенно лишняя.
    я и без нее пробовал =)
    Re[11]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:44
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:


    SW>>Предположу, что у вас "на самом деле" было написано

    SW>Ерунду я написал, симптоматика бы обратная была.
    ??????/
    Re[12]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:45
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:


    Н>>>Тады давай побольше кода (с определением m и в тегах ).

    А>>смотри 1 сообщение !!
    А>>а в коде этой переменной больше ни чего не косалось
    А>>а код на пару листов без коментарие
    А>>так что думаю любой прогер запутаеться

    Н>Да хоть тип-то ейный скажи! А то может ты там вещественные числа сравниваешь...

    int m;!!!!!!!!!!!!!!!!!
    Re[11]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:49
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    SW>>Где выделенная точка с запятой совершенно лишняя.

    А>я и без нее пробовал =)
    Забавно... Если вы пишете

    bool b;
    int i;
    ....
    if(b);
    ++i;

    Строчка ++i; Выполняется всегда, не зависимо от состояния b.

    PS. Есть предложение зарегестрироваться на форуме. С Анонимом общаться неудобно.
    ... << RSDN@Home 1.1.3 stable >>
    Re[12]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:58
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    Не понимаю вас прежде чем говорить с кем не удобно объщяться
    просмотрите все сообщения и вы там у видите
    что я объявляю
    if(m==21) не тут запятой
    ++b;
    и лично для вас !!!!!!!!!!!!!!!!!!
    я говорил что он перескакивает ++b а не выполняет каждый раз
    я не понимаю как вы смотрите форум !!!!!!
    Re[13]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:59
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    Не понимаю вас прежде чем говорить с кем не удобно объщяться
    просмотрите все сообщения и вы там у видите
    что я объявляю
    if(m==21) не тут запятой
    ++b;
    и лично для вас !!!!!!!!!!!!!!!!!!
    я говорил что он перескакивает ++b а не выполняет каждый раз
    я не понимаю как вы смотрите форум !!!!!!
    Re[13]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 11:07
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>и лично для вас !!!!!!!!!!!!!!!!!!

    тут
    Автор:
    Дата: 26.07.04

    И обязательно прочтите статью.
    ... << RSDN@Home 1.1.3 stable >>
    Re[14]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 11:09
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    А>>и лично для вас !!!!!!!!!!!!!!!!!!

    Что-то я очепятываюсь много...
    Вот тут
    Автор: Sir Wiz
    Дата: 26.07.04
    на самом деле.
    SW>И обязательно прочтите статью.
    ... << RSDN@Home 1.1.3 stable >>
    Re[15]: Ошибка
    От: Аноним  
    Дата: 26.07.04 11:12
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:


    А>>>и лично для вас !!!!!!!!!!!!!!!!!!

    SW>Что-то я очепятываюсь много...
    SW>Вот тут
    Автор: Sir Wiz
    Дата: 26.07.04
    на самом деле.

    SW>>И обязательно прочтите статью.
    я понимаю легче сказать челу ты иди правила провописания изучи
    чем на вопрос ответить конкретный !!!

    int m;
    ...
    m=0;
    ...

    if (tx=="99")//выброс
    {
    //номер строки
    c.Delete(0,2);
    m1+=2;
    if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1; (вот он вопрос )
    b1+=1;//что это может быть?
    if(m1==1)
    b1+=1;
    Re[17]: Ошибка
    От: Аноним  
    Дата: 26.07.04 11:30
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Так не бывает.

    SW>Если так бывает, то нужно выкидывать компилятор в котором так бывает.
    я тоже считаю что так не бывает
    так что сделаем так вот целый класс!!!
    это синтаксический анализатор + преоброз лексем
    надеюсь что будет понятно =(
    int mov,mov2,ms,ms2,ms3=0;
    CString a[38][38]={""};
    CString command[10][4]={
    {"adds","strn","13"},
    {"addb","bool","13"},
    {"delfs","strn"},
    {"getfs","strn"},
    {"print","L"},
    {"input","P"},
    {"konk"},
    {"ifb"}};
    CString com[20];
    CString perem[100][3];//пер. кот. объявлены
    CString per[100];//переменные кот используються
    CString mas[10][10];
    CString b,tx,c,mov3,cn2;
    int mv3=0;
    int mc=0;
    int cn=0;
    int bb=0;
    ...
    int m;
    class B
    {
    public:
    int n,m1,n3,n2;
    int b2,b1,b3,b4;

    void xz()//синтаксический анализатор
    {
    //правили и т д
    a[35][16]="161718103435";
    a[35][15]="1517181033";
    a[33][11]="111729181033";
    a[29][12]="1230";
    a[29][13]="1330";
    a[29][11]="1117291830";
    a[34][20]="201732181034";
    a[34][14]="141732181035211712181034";
    a[33][21]="97";
    a[33][31]="97";
    a[33][18]="97";
    a[34][16]="97";
    a[34][15]="97";
    a[32][12]="1230";
    a[32][13]="1330";
    a[30][19]="1929";
    a[30][18]="97";
    a[10][10]="99";
    a[11][11]="99";
    a[12][12]="99";
    a[13][13]="99";
    a[14][14]="99";
    a[15][15]="99";
    a[16][16]="99";
    a[17][17]="99";
    a[18][18]="99";
    a[19][19]="99";
    a[20][20]="99";
    a[21][21]="99";
    a[31][31]="98";
    c="3531";
    m=0;
    n=0;
    tx="";
    b+="31";
    m1=0;
    n2=0;
    b1=0;
    b3=0;
    b4=0;
    bb=0;
    while(tx!="98")//допуск
    {
    n=(c[0]-48)*10+(c[1]-48);
    m=(b[m1]-48)*10+(b[m1+1]-48);
    tx=a[n][m];
    if (tx=="99")//выброс
    {
    if(21==m)
    b1+=1;
    //номер строки
    c.Delete(0,2);
    m1+=2;






    if(m==12&&b1>0)//соответствие переменных
    {
    while(com[b1]!=command[b3][0])
    b3+=1;
    while(per[b5]!=perem[b4][0])
    {
    b4+=1;
    if (b4>99)
    {
    c="Unknown identiefer";
    return;
    }

    }

    if(command[b3][b5]=='L'&&comannd[b3][b5]==perem[b5][1])
    {
    }
    else
    {
    c="Type mismatch";
    return;
    }
    b5+=1;
    b3=0;
    }
    }

    if (tx=="97")// хммм
    {
    c.Delete(0,2);
    }

    if (tx=="")//ошибка
    {
    n2+=1;
    m=1;
    c=" ERROR in ";
    while(n2>=(m*10))
    {
    m+=1;

    }
    m-=1;
    n3=n2-m*10+48;
    m+=48;
    if(n2>9)
    c.Insert(10,m);
    c.Insert(11,n3);
    c.Insert(12," line");
    return;

    }

    if(tx!="99"&&tx!="97")//добавление правила
    {
    c.Delete(0,2);
    c=a[n][m]+c;
    }
    }

    c=" error not found";
    }

    если это что то даст то это хорошо (это все я делал на VC NET)
    это класс используется в моем языке программирования
    да и еще вопросик не мог политеть компилятор из-за того что
    у меня еще и VC6 стоит?
    Re: Ошибка
    От: Dimsk  
    Дата: 26.07.04 11:32
    Оценка:
    Здравствуйте, Аноним, Вы писали:
    ...

    Rebuild не пробовал делать ?
    Re[14]: Ошибка
    От: Antikrot  
    Дата: 26.07.04 12:08
    Оценка:
    А>if(m==21) не тут запятой
    А>++b;
    А>я говорил что он перескакивает ++b а не выполняет каждый раз
    А после перескока значение b изменяется?
    Если да — смотри асм на это место... а лучше всем покажи
    Re[15]: Ошибка
    От: Аноним  
    Дата: 26.07.04 12:09
    Оценка:
    Здравствуйте, Antikrot, Вы писали:

    А>>if(m==21) не тут запятой

    А>>++b;
    А>>я говорил что он перескакивает ++b а не выполняет каждый раз
    A>А после перескока значение b изменяется?
    A>Если да — смотри асм на это место... а лучше всем покажи
    нет оно не измен
    я привел исходник этого класс см RE:17
    Re[18]: Ошибка
    От: korzhik Россия  
    Дата: 26.07.04 12:20
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>надеюсь что будет понятно =(

    вообще то не очень понятно.
    чтобы было понятнее обрамляй свой код
    тэгами [c][/c] или [ccode][/ccode]

        int mov,mov2,ms,ms2,ms3=0;
        CString a[38][38] = {""};
        CString command[10][4] = {
        {"adds","strn","13"},
        {"addb","bool","13"},
        {"delfs","strn"},
        {"getfs","strn"},
        {"print","L"},
        {"input","P"},
        {"konk"},
        {"ifb"}};
        
        CString com[20];
        CString perem[100][3];//пер. кот. объявлены
        CString per[100];//переменные кот используються
        CString mas[10][10];
        CString b,tx,c,mov3,cn2;
        int mv3=0;
        int mc=0;
        int cn=0;
        int bb=0;
        //...
        int m;
        class B
        {
        public:
            int n,m1,n3,n2;
            int b2,b1,b3,b4;
    
            void xz()//синтаксический анализатор
            {
                //правили и т д
                a[35][16]="161718103435";
                a[35][15]="1517181033";
                a[33][11]="111729181033";
                a[29][12]="1230";
                a[29][13]="1330";
                a[29][11]="1117291830";
                a[34][20]="201732181034";
                a[34][14]="141732181035211712181034";
                a[33][21]="97";
                a[33][31]="97";
                a[33][18]="97";
                a[34][16]="97";
                a[34][15]="97";
                a[32][12]="1230";
                a[32][13]="1330";
                a[30][19]="1929";
                a[30][18]="97";
                a[10][10]="99";
                a[11][11]="99";
                a[12][12]="99";
                a[13][13]="99";
                a[14][14]="99";
                a[15][15]="99";
                a[16][16]="99";
                a[17][17]="99";
                a[18][18]="99";
                a[19][19]="99";
                a[20][20]="99";
                a[21][21]="99";
                a[31][31]="98";
                c="3531";
                m=0;
                n=0;
                tx="";
                b+="31";
                m1=0;
                n2=0;
                b1=0;
                b3=0;
                b4=0;
                bb=0;
                while(tx!="98")//допуск
                {
                    n=(c[0]-48)*10+(c[1]-48);
                    m=(b[m1]-48)*10+(b[m1+1]-48);
                    tx=a[n][m];
                    if (tx=="99")//выброс
                    {
                        if(21==m)
                            b1+=1;
                        //номер строки
                        c.Delete(0,2);
                        m1+=2;
                        if(m==12&&b1>0)//соответствие переменных
                        {
                            while(com[b1]!=command[b3][0])
                                b3+=1;
                            while(per[b5]!=perem[b4][0])
                            {
                                b4+=1;
                                if (b4>99)
                                {
                                    c="Unknown identiefer";
                                    return;
                                }
                            }
                            if(command[b3][b5]=='L'&&comannd[b3][b5]==perem[b5][1])
                            {
                            }
                            else
                            {
                                c="Type mismatch";
                                return;
                            }
                            b5+=1;
                            b3=0;
                        }
                    }
            
                    if (tx=="97")// хммм
                    {
                        c.Delete(0,2);
                    }
            
                    if (tx=="")//ошибка
                    {
                        n2+=1;
                        m=1;
                        c=" ERROR in ";
                        while(n2>=(m*10))
                        {
                            m+=1;
                        }
                        m-=1;
                        n3=n2-m*10+48;
                        m+=48;
                        if(n2>9)
                        c.Insert(10,m);
                        c.Insert(11,n3);
                        c.Insert(12," line");
                        return;
                    }
                    
                    if(tx!="99"&&tx!="97")//добавление правила
                    {
                        c.Delete(0,2);
                        c=a[n][m]+c;
                    }
                }
                c=" error not found";
            }
          };
    Re[19]: Ошибка
    От: Аноним  
    Дата: 26.07.04 12:33
    Оценка:
    Здравствуйте, korzhik, Вы писали:



    K>
    K>    int mov,mov2,ms,ms2,ms3=0;
    K>    CString a[38][38] = {""};
    K>    CString command[10][4] = {
    K>    {"adds","strn","13"},
    K>    {"addb","bool","13"},
    K>    {"delfs","strn"},
    K>    {"getfs","strn"},
    K>    {"print","L"},
    K>    {"input","P"},
    K>    {"konk"},
    K>    {"ifb"}};
        
    K>    CString com[20];
    K>    CString perem[100][3];//пер. кот. объявлены
    K>    CString per[100];//переменные кот используються
    K>    CString mas[10][10];
    K>    CString b,tx,c,mov3,cn2;
    K>    int mv3=0;
    K>    int mc=0;
    K>    int cn=0;
    K>    int bb=0;
    K>    //...
    K>    int m;
    K>    class B
    K>    {
    K>    public:
    K>        int n,m1,n3,n2;
    K>        int b2,b1,b3,b4;
    
    K>        void xz()//синтаксический анализатор
    K>        {
    K>            //правили и т д
    K>            a[35][16]="161718103435";
    K>            a[35][15]="1517181033";
    K>            a[33][11]="111729181033";
    K>            a[29][12]="1230";
    K>            a[29][13]="1330";
    K>            a[29][11]="1117291830";
    K>            a[34][20]="201732181034";
    K>            a[34][14]="141732181035211712181034";
    K>            a[33][21]="97";
    K>            a[33][31]="97";
    K>            a[33][18]="97";
    K>            a[34][16]="97";
    K>            a[34][15]="97";
    K>            a[32][12]="1230";
    K>            a[32][13]="1330";
    K>            a[30][19]="1929";
    K>            a[30][18]="97";
    K>            a[10][10]="99";
    K>            a[11][11]="99";
    K>            a[12][12]="99";
    K>            a[13][13]="99";
    K>            a[14][14]="99";
    K>            a[15][15]="99";
    K>            a[16][16]="99";
    K>            a[17][17]="99";
    K>            a[18][18]="99";
    K>            a[19][19]="99";
    K>            a[20][20]="99";
    K>            a[21][21]="99";
    K>            a[31][31]="98";
    K>            c="3531";
    K>            m=0;
    K>            n=0;
    K>            tx="";
    K>            b+="31";
    K>            m1=0;
    K>            n2=0;
    K>            b1=0;
    K>            b3=0;
    K>            b4=0;
    K>            bb=0;
    K>            while(tx!="98")//допуск
    K>            {
    K>                n=(c[0]-48)*10+(c[1]-48);
    K>                m=(b[m1]-48)*10+(b[m1+1]-48);
    K>                tx=a[n][m];
    K>                if (tx=="99")//выброс
    K>                {
    K>                    if(21==m)
    K>                        b1+=1;
    K>                    //номер строки
    K>                    c.Delete(0,2);
    K>                    m1+=2;
    K>                    if(m==12&&b1>0)//соответствие переменных
    K>                    {
    K>                        while(com[b1]!=command[b3][0])
    K>                            b3+=1;
    K>                        while(per[b5]!=perem[b4][0])
    K>                        {
    K>                            b4+=1;
    K>                            if (b4>99)
    K>                            {
    K>                                c="Unknown identiefer";
    K>                                return;
    K>                            }
    K>                        }
    K>                        if(command[b3][b5]=='L'&&comannd[b3][b5]==perem[b5][1])
    K>                        {
    K>                        }
    K>                        else
    K>                        {
    K>                            c="Type mismatch";
    K>                            return;
    K>                        }
    K>                        b5+=1;
    K>                        b3=0;
    K>                    }
    K>                }
            
    K>                if (tx=="97")// хммм
    K>                {
    K>                    c.Delete(0,2);
    K>                }
            
    K>                if (tx=="")//ошибка
    K>                {
    K>                    n2+=1;
    K>                    m=1;
    K>                    c=" ERROR in ";
    K>                    while(n2>=(m*10))
    K>                    {
    K>                        m+=1;
    K>                    }
    K>                    m-=1;
    K>                    n3=n2-m*10+48;
    K>                    m+=48;
    K>                    if(n2>9)
    K>                    c.Insert(10,m);
    K>                    c.Insert(11,n3);
    K>                    c.Insert(12," line");
    K>                    return;
    K>                }
                    
    K>                if(tx!="99"&&tx!="97")//добавление правила
    K>                {
    K>                    c.Delete(0,2);
    K>                    c=a[n][m]+c;
    K>                }
    K>            }
    K>            c=" error not found";
    K>        }
    K>      };
    K>


    Да так понятнее
    так как начет ошибки?
    [/c]
    if(21==m)
    b1+=1;
    [/c]
    Re: Ошибка
    От: poilk  
    Дата: 26.07.04 12:42
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Народ помогите плз

    int m;
    ...
    m=0;
    ...
    
    if (tx=="99")//выброс
    {
        //номер строки
        c.Delete(0,2);
        m1+=2;
        if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1;
            b1+=1;//что это может быть?


    Так как оно может стать 21, если каждый раз по 2 прибавляем?
    ... << Rsdn@Home 1.1.4 beta 1 >>
    Re[20]: Ошибка
    От: korzhik Россия  
    Дата: 26.07.04 12:48
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>так как начет ошибки?

    А>[/c]
    А>if(21==m)
    А>b1+=1;
    А>[/c]

    смотри какой асм генерит компилятор для этих строчек
    если что кидай асм сюда
    Re: Ошибка
    От: sadomovalex Россия http://sadomovalex.blogspot.com
    Дата: 26.07.04 12:50
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Народ помогите плз

    А>if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1;
    А>   b1+=1;//что это может быть?


    Попробуй посмотреть так
    int temp = m - 21;
    if(temp == 0)
    "Что не завершено, не сделано вовсе" Гаусс
    Re[21]: Ошибка
    От: Аноним  
    Дата: 26.07.04 12:55
    Оценка:
    Здравствуйте, korzhik, Вы писали:


    K>смотри какой асм генерит компилятор для этих строчек

    K>если что кидай асм сюда
    сорри я не в курсе как просмотреть асм код =(((
    Re[2]: Ошибка
    От: Аноним  
    Дата: 26.07.04 12:56
    Оценка:
    Здравствуйте, poilk, Вы писали:


    P>Так как оно может стать 21, если каждый раз по 2 прибавляем?

    m1 и m разные вещи смотри внимательнее
    Re[2]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 12:56
    Оценка:
    Здравствуйте, poilk, Вы писали:

    P>
    P>    m1+=2;
    P>    if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1;
    P>        b1+=1;//что это может быть?
    P>

    P>Так как оно может стать 21, если каждый раз по 2 прибавляем?
    Прибавляем то к m1, а проверяем m
    ... << RSDN@Home 1.1.3 stable >>
    Re[2]: Ошибка
    От: Аноним  
    Дата: 26.07.04 12:57
    Оценка:
    Здравствуйте, Dimsk, Вы писали:



    D>Rebuild не пробовал делать ?

    первым делом это и попробовал
    Re[16]: Ошибка
    От: Antikrot  
    Дата: 26.07.04 13:06
    Оценка:
    Здравствуйте, Аноним, Вы писали:
    А>я привел исходник этого класс см RE:17
    Здорово. Но хотелось бы что-нибудь, что можно было бы собрать и пустить в дебугер. Например, минимум от твоего класса (то что касается ошибки) + ф-ия main. Ну типа чтоб повторить твою проблему.
    Re: Ошибка
    От: Аноним  
    Дата: 26.07.04 13:09
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    Народ всез прошу извинить
    ошибка была в дебагере я установил VC6 и NET
    VC6 перекрыл NET
    вот по этому и была такая анамалия
    все я погнал писать дальше
    Re[22]: Ошибка
    От: Antikrot  
    Дата: 26.07.04 13:42
    Оценка:
    А>сорри я не в курсе как просмотреть асм код =(((
    VC7 — ставишь BP, F5, как остановится — правая кнопка, Go To Disassembly
    Попадаешь в асм прямо туда куда надо
    Re[2]: Ошибка
    От: Vamp Россия  
    Дата: 26.07.04 14:41
    Оценка:
    Н> либо пишите

    Н>
    Н>if(21 == m) ...
    Н>

    Н>вместо

    Н>
    Н>if(m == 21) ...
    Н>

    Зачем это еще? Чтобы присваивание со сравнением не перепутать? Я и так не путаю...
    Да здравствует мыло душистое и веревка пушистая.
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.