Помогите исправить 2 ошибки в коде

Тема в разделе "Общие вопросы по С и С++", создана пользователем MAG0t, 5 июл 2009.

  1. MAG0t

    MAG0t Гость

    собственно, САБЖ.
    нужно исправить 2 ошибки в коде, чтобы его можна было скомпилить и сделать из него ехе-шник.
    код немалый, тому залил на sendspace: http://sendspace.com/file/ubkkh6
    времени немного - до утра понедельника..выручайте, народ, пожалуйста
     
  2. MAG0t

    MAG0t Гость

    Использую Turbo C++ 3.0

    при запуске программы (Run):
    BGI Error: Graphics not initialized (use 'initgraph')

    при компиляции программы выводит 2 ошибки:
    1-ая в 260 строке: scanf("%d",&pix); getchar(); Code has no effect
    2-ая в 1005 строке: while(del=top->down) Possibly incorrect assignment


    1-ая ошибка ('полный кусок' кода):
    Код (C++):
    // Функция для управления работой графического интерфейса
    void Process()
    {
    char *fm[]={"Open Image F3","Save Image F2","Exit       Esc"};
    char *gm[]={"Function f","Sistem  s ","Mashtab m"}; //пункти меню
    char *hm[]={"About   F1"};
    char *ss[]={"Decart 2D    ","Decart 3D    ","Polar        "};
    char KEY;

    // рисование кнопок меню
    DrawBtn(&File,"File");
    DrawBtn(&Graphik,"Graphiс");
    DrawBtn(&Help,"Help");
    settextstyle(0,0,0);
    outtextxy(Close.x+7,Close.y+7,"x");



    // рисование окна для выведения графиков
    setfillstyle(0,0);
    bar(a,b,a1,b1);

    Show();

    while(1)
    {
    if(kbhit())
    {
    KEY=getch();
    if(KEY==0)
    {
    KEY=getch();
    if(KEY==0x3b)   //F1
    HELP1();
    if(KEY==0x3c)   //F2
    save_BMP();
    if(KEY==0x3d)  //F3
    open_BMP();
    }
    if(KEY==0x1b) //esc
    break;
    if(KEY==0x66) //f
    goto Enter_function;
    if(KEY==0x6d) //m
    goto Enter_mashtab;
    if(KEY==0x73) //s
    goto Enter_sisc;
    }
    Status();
    if(button==1)
    {
    if(MouseOn(&Close)) break;
    if(MouseOn(&File))
    {
    PullMenuDown(fm,3,&File);
    if(Selection==0)
    open_BMP();
    if(Selection==1)
    save_BMP();
    if(Selection==2)
    break;
    }
    if(MouseOn(&Graphik))
    {
    PullMenuDown(gm,3,&Graphik);
    if(Selection==0)
    {
    Enter_function:Hide();
    winp(&sfunc,1);
    gotoxy(27,3);
    setfillstyle(0,0);
    bar(sfunc.x+2,sfunc.y+2,sfunc.x1-2,sfunc.y1-2);
    if(sisc==0)
    printf("F(x)=");
    if(sisc==1)
    printf("F(x,y)=");
    if(sisc==2)
    printf("F(B)=");
    gets(func);
    topolish();
    Show();
    }
    if(Selection==1)
    {
    Enter_sisc:PullMenuDown(ss,3,&siscoord);
    if(Selection==0)
    {
    sisc=0;
    ss[0][15]='¦';
    ss[1][15]=' ';
    ss[2][15]=' ';
    bar(200,60,600,99);
    setcolor(1);
    outtextxy(250,60,"Decart 2D");
    outtextxy(250,75,"Varibles: x");
    }
    if(Selection==1)
    {
    sisc=1;
    ss[0][15]=' ';
    ss[1][15]='¦';
    ss[2][15]=' ';
    bar(200,60,600,99);
    setcolor(1);
    outtextxy(250,60,"Decart 3D");
    outtextxy(250,75,"Varibles: x,y");
    }
    if(Selection==2)
    {
    sisc=2;
    ss[0][15]=' ';
    ss[1][15]=' ';
    ss[2][15]='¦';
    bar(200,60,600,99);
    setcolor(1);
    outtextxy(200,60,"Polar");
    outtextxy(200,75,"Varibles: b    (b-angle,a-lenth)");
    outtextxy(200,90,"To Decart: x=a*cos(B),y=a*sin(B)");
    Selection=NONE;
    }
    }
    if(Selection==2)
    {
    Enter_mashtab:Hide();
    setcolor(3);
    outtextxy(100,60,"pixels:one");
    gotoxy(14,6);
    winp(&mashtab,1);
    setfillstyle(0,0);
    bar(mashtab.x+2,mashtab.y+2,mashtab.x1-2,mashtab.y1-2);
    scanf("%d",&pix); getchar();
    Show();
    }

    // розметка
    setfillstyle(0,0);
    bar(a,b,a1,b1);
    rozmitka();

    //
    // рисование графика в соответствующей системе координат
    if(sisc==0)
    printgraph_2d();
    if(sisc==1)
    printgraph_3d();
    if(sisc==2)
    printgraph_pol();

    }
    if(MouseOn(&Help))
    {
    PullMenuDown(hm,1,&Help);
    if(Selection==0)
    HELP1();
    }
    }
    else
    {
    if(MouseOn(&File))   Hlight(&File);
    if(MouseOn(&Graphik)) Hlight(&Graphik);
    if(MouseOn(&Help))   Hlight(&Help);
    if(MouseOn(&Close)) Hlight(&Close);
    }
    }
    }

    2-ая ошибка ('полный кусок' кода):
    Код (C++):
    // Функция превращения строки с уравнением в обратную польскую запись
    void topolish()
    {
    char *cs,*res,zm1,zm2;
    int i,j;
    struct tstek *now,*del;
    cs=(char *)malloc(11);
    res=(char *)malloc(80);
    res[0]=0;
    i=0;
    if(sisc==0)
    {
    zm1='x';
    zm2='x';
    }
    if(sisc==1)
    {
    zm1='x';
    zm2='y';
    }
    if(sisc==2)
    {
    zm1='b';
    zm2='b';
    }
    while(func[i])
    {
    cs[0]=func[i++];
    cs[1]=' ';
    cs[2]=0;
    j=1;

    if(cs[0]>='0'&&cs[0]<='9')
    {
    while(func[i]&&(func[i]>='0'&&func[i]<='9'||func[i]=='.'))
    cs[j++]=func[i++];
    cs[j++]=' ';
    cs[j]=0;
    strcat(res,cs);
    continue;
    }

    if(cs[0]>='a'&&cs[0]<='z'&&cs[0]!=zm1&&cs[0]!=zm2)
    {
    while(func[i]!='(')
    cs[j++]=func[i++];
    cs[j++]=' ';
    cs[j]=0;
    push(cs);
    continue;
    }

    switch(cs[0])
    {
    case 'x':
    strcat(res,cs);
    break;

    case 'y':
    strcat(res,cs);
    break;

    case 'b':
    strcat(res,cs);
    break;

    case '*':
    now=top->down;
    while(now)
    {
    if(now->data[0]=='(')
    break;
    if(now->data[0]=='*'||now->data[0]=='/')
    {
    del=top->down;
    top->down=top->down->down;
    strcat(res,del->data);
    now=now->down;
    free(del);
    continue;
    }
    now=now->down;
    }
    push(cs);
    break;

    case '/':
    now=top->down;
    while(now)
    {
    if(now->data[0]=='(')
    break;
    if(now->data[0]=='*'||now->data[0]=='/')
    {
    del=top->down;
    top->down=top->down->down;
    strcat(res,del->data);
    now=now->down;
    free(del);
    continue;
    }
    now=now->down;
    }
    push(cs);
    break;

    case '+':
    now=top->down;
    while(now)
    {
    if(now->data[0]=='(')
    break;
    del=top->down;
    top->down=top->down->down;
    strcat(res,del->data);
    now=now->down;
    free(del);
    }
    push(cs);
    break;

    case '-':
    now=top->down;
    while(now)
    {
    if(now->data[0]=='(')
    break;
    del=top->down;
    top->down=top->down->down;
    strcat(res,del->data);
    now=now->down;
    free(del);
    continue;
    }
    push(cs);
    break;

    case '(':
    push(cs);
    break;

    case ')':
    now=top->down;
    while(now)
    {
    if(now->data[0]=='(')
    break;
    del=top->down;
    top->down=top->down->down;
    strcat(res,del->data);
    now=now->down;
    free(del);
    }
    if(now->data[0]=='(')
    {
    del=top->down;
    top->down=top->down->down;
    free(del);
    }
    break;
    }  //switch
    }  //while


    while(del=top->down)
    {
    top->down=top->down->down;
    strcat(res,del->data);
    free(del);
    }
    strcpy(func,res);
    free(cs);
    free(res);
    }
     
Загрузка...
Похожие Темы - Помогите исправить ошибки
  1. Andersen1313
    Ответов:
    3
    Просмотров:
    3.840
  2. Rpp
    Ответов:
    1
    Просмотров:
    812
  3. victory
    Ответов:
    0
    Просмотров:
    966
  4. victory
    Ответов:
    0
    Просмотров:
    791
  5. victory
    Ответов:
    3
    Просмотров:
    1.331

Поделиться этой страницей