سلام دوستان عزیز
لطف میکنید برنامشو لگوریتم تبدیل میاوندی به پسوندی رو برام بزارید
خیلی خیلی ممنون میشم
سلام دوستان عزیز
لطف میکنید برنامشو لگوریتم تبدیل میاوندی به پسوندی رو برام بزارید
خیلی خیلی ممنون میشم
چه جالب
استاد ما هم این پروژه رو به عنوان نمره اضافی داده
اگه نوشتم به شما هم میدم
![]()
خدمت شما :
// convert-infix-to-postfix.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <conio.h>
#define max 30
typedef struct
{
int top;
char a[max];
}stack;
int amalgar(char);
int isvalid(stack);
void convert(char,stack*,stack*);
void clears(stack *s)
{
s->top = -1;
}
int emptys(stack s)
{
if ( s.top == -1)
return 1;
return 0;
}
int fulls(stack s)
{
if ( s.top == max-1 )
return 1;
return 0;
}
int pushs(stack *s,char x)
{
if (fulls(*s))
{
printf("\n> stack is full\n");
getch();
return 0;
}
s->a[++(s->top)] = x;
return 1;
}
int pops(stack *s,char *x)
{
if (emptys(*s))
{
printf("\n> stack is empty\n");
getch();
return 0;
}
*x = s->a[(s->top)--];
return 1;
}
void prints(stack s)
{
if (s.top == -1)
return;
printf("\n( print stack )----------------------------------------------\n> ");
while (s.top != -1)
printf("%c",s.a[s.top--]);
}
int searchs(stack s,char c,int *index)
{
*index =-1;
if (emptys(s))
{
printf("\n> stack is empty\n");
getch();
return 0;
}
while(!emptys(s))
if (s.a[s.top] == c)
{
*index = s.top;
return 1;
}
return 0;
}
int isvalid(stack s)
{
int c=0;
for( ; s.a[s.top]!=-1 ; s.top-- )
{
if (s.a[s.top]==')')
c++;
else if (s.a[s.top]=='(')
c--;
}
if (c == 0)
return 1;
return 0;
}
void get(stack *infix,stack *postfix)
{
char c,x;
stack t;
clears(&t);
//printf("\n-------------------------");
printf("\n\n( get infix )-------------------------------------\n");
//printf("--------------------------------------------------\n");
printf("\n> enter infix : ");
while ( (c=getche()) != 13 )
{
pushs(infix,c);
convert(c,postfix,&t);
}
//printf("\n--------------------------------------------------");
while(!emptys(t))
{
pops(&t,&x);
pushs(postfix,x);
}
}
int amalgar(char c)
{
switch(c)
{
case ')':
Return 0;
case '^':
Return 1;
case '*':
Case '/':
Return 2;
case '\\':
Return 3;
case '+':
Case '-':
Return 4;
}
}
void convert(char c,stack *postfix,stack *t)
{
char x;
switch(c)
{
case '(':
Pushs(t,c);
break;
case '^':
Case '*':
Case '/':
Case '\\':
Case '+':
Case '-':
If ( amalgar(c) < amalgar(t->a[t->top]) || t->a[t->top] == -1 )
pushs(t,c);
else
{
pops(t,&x);
pushs(postfix,x);
pushs(t,c);
}
break;
case ')':
While(!emptys(*t))
{
pops(t,&x);
if ( x == '(' )
break;
else
pushs(postfix,x);
}
break;
default:
Pushs(postfix,c);
}
}
int main()
{
stack infix;
stack postfix;
while(1)
{
clears(&infix);
clears(&postfix);
clrscr();
printf("--------------------------------------------------\n");
printf("|:: Convert infix to postfix :: Farhad fatemi ::|");
printf("\n--------------------------------------------------");
get(&infix,&postfix);
if (!isvalid(infix))
printf("\n\n! Ebarat infix not valid \n");
else
{
printf("\n\n> postfix : ");
for (int i=0;i<=postfix.top;i++)
printf("%c",postfix.a[i]);
printf("\n\n--------------------------------------------------\n");
}
printf("\n> continu ?(n,enter)");
if (getch()=='n')
break;
}
return 0;
}
البته اون یکم بهم ریخت
برای فایلشو آپلود کردم که قابل فهم تر باشه
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خیلی خیلی ممنون devil_ff2008 عزیز . زحمت کشیدی.بازم ممنون راستی من الان برنامه c رو ندارم که ای برنامه رو تستش کنم . اگه احیانا مشکلی داشتم باهاش ، شما هستید !!!؟ یا میتونم پیغام خصوصی بزنم ؟
راستی شما کدوم دانشگاه هستید . نکنه داخل کلاس ما باشی و ما خبر نداشته باشیم !!! اگه اسم استانی که دانشگاهتون اونجاست رو بگید ممنون میشم
Last edited by IstaaKon; 25-11-2008 at 17:47.
من شک کردم که شاید هم کلاسی باشیم
مشکلی بود در خدمتم
در ضمن من دارلفنون خراسان شمالی هستم
devil_ff2008 جان این 14 ارور میده !!!
چیکارش کنم ؟؟؟
این برنامه رو الان تستش کردم اروری نداشت
شما با چی کامپایل میکنی ؟
این برنامه رو باید با Turbo C++ 3.0 کامپایل کنی
ممنون از یه جا دیگه کامپایلر رو دانلودش کردم . درست شد...
خیلی خیلی ممنون devil_ff2008 جان . واقعا کمکم کردی . بازم ممنون . لطف کردی
خواهش میکنم
قابلی نداشت
راستی نگفتی کجایی ها
همکلاسی نیستی ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)