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[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[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]

смотри какой асм генерит компилятор для этих строчек
если что кидай асм сюда
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.