nafar_2konkor
Registered User
- تاریخ عضویت
- 31 آگوست 2007
- نوشتهها
- 95
- لایکها
- 1
سلام
این برنامه با استفاده از کلاس و پشته تعدادی پرانتز باز و بسته را میگیرد اگر پرانتز باز بود سبز کنه و سبز شدنش را نشان دهد .اگر بسته بود با پرانتز باز روی پشته پاکش کنه و بوق بزنه .پوش وپاپ کردن و تعداد پرانتز های روی پشته را هر بار نشان دهد.
اشکالش این برنامه اینه که سبز بودنش رو نشون نمیده و شکل پشته را روی هم نشان نمیدهد بلکه هر دفعه یک شکل را در صفحه جدید میکشد.
لطفا اگه کسی متونه اشکالش رو رفع کنه ممنون میشم .(تا فردا)
راستی این برنامه باید تحت داس انجام بشه.
این برنامه با استفاده از کلاس و پشته تعدادی پرانتز باز و بسته را میگیرد اگر پرانتز باز بود سبز کنه و سبز شدنش را نشان دهد .اگر بسته بود با پرانتز باز روی پشته پاکش کنه و بوق بزنه .پوش وپاپ کردن و تعداد پرانتز های روی پشته را هر بار نشان دهد.
اشکالش این برنامه اینه که سبز بودنش رو نشون نمیده و شکل پشته را روی هم نشان نمیدهد بلکه هر دفعه یک شکل را در صفحه جدید میکشد.
لطفا اگه کسی متونه اشکالش رو رفع کنه ممنون میشم .(تا فردا)
راستی این برنامه باید تحت داس انجام بشه.
کد:
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<stdio.h>
#include<string.h>
int j,i;
class stack{
private:
int top,l;
char *s;
public:
stack();
stack(int size);
int isempty();
void push(char ch);
char pop();
};
//***********************************//
stack::stack()
{l=50;
top=-1;
s=new char[l];
}
//***********************************//
stack::stack(int size)
{l=size;
top=-1;
s=new char[l];
}
//***********************************//
int stack::isempty()
{if(top==-1)
return 1;
else
return 0;
}
//***********************************//
void stack::push(char ch)
{s[++top]=ch;}
//**********************************//
char stack::pop()
{return s[top--];}
//*********************************//
void clean(int j)//clean the rectangular
{int driver=DETECT,mode=0;
initgraph(&driver,&mode,\"c:\\\\tc\\\\bgi\");
setcolor(BLACK);
outtextxy(210,410-j,\"(\");
j=j-20;
}
//***********************************//
void image(int j)
{int driver=DETECT,mode=0;
initgraph(&driver,&mode,\"c:\\\\tc\\\\bgi\");
setcolor(WHITE);
rectangle(200,400+j,220,420+j);
outtextxy(210,410+j,\"(\");
}
//********************************//
void main(void)
{int n,o=0,c=0;
stack p;
char st[100];
cout<<\"enter your parranteses:\";
cin.get(st,10);
n=strlen(st);
for(i=0;i<n;i++)
{ textcolor(GREEN);
cout<<\"you entered: \"<<st[i];
getch();
if(st[i]==\')\')
{
if(!p.isempty())
{ p.pop();
cout<<\"\\a\";
clean(j);
}
o++;
}//end of if
else if(st[i]==\'(\')
{p.push(st[i]);
j=j+20;
image(j);
c++;
}
}
//if(p.isempty())
//cout<<\"the parranteses are balenced.\"<<endl;
//else
//cout<<\"are not balenced\";
//getch();
if(o==c)
cout<<\"the parranteses are balenced.\"<<endl;
else
cout<<\"are not balenced\";
getch();
}