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

  • Автор темы MAG0t
  • Дата начала
M

MAG0t

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

MAG0t

#2
Использую 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);
}