P30World Forums
http://www.p30world.com/nw_imgs/rtl1.gif دانلود نرم افزار     http://www.p30world.com/nw_imgs/rtl1.gif فروشگاه اینترنتی
برگشت   P30World Forums > طراحی وب / برنامه نویسی > برنامه نويسي

تابلو اعلانات

برنامه نويسي بحث ، آموزش ، رفع اشکال و تبادل نظر در مورد برنامه نويسی برای محيط ويندوز. ويژوال بيسيک - دلفی و ...



جواب
 
اختيارات تاپيک نمايش رسم
قديم 11-07-2009, 01:29 PM   #1
shokoufeye anar
داره خودمونی میشه
 
shokoufeye anar's Avatar
 
تاريخ عضويت: Dec 2008
محل سكونت: همه جای ایران سرای من است
پست ها: 25
9 تبديا عبارت ميانوندي به پسوندي

سلام
من به یه برنامه احتیاج دارم با c ++
برنامه نویسی خودم افتضاحه ممنون میشم کمکم کنید
الگوریتمشم میگم واسه دوستایی که احتمالا ( یادشون رفته)
1- ایجاد یک پشته خالی
2-عبارت رو از چپ به راست بخونه و تا زمانیکه به انتهای عبارت بعدی نرسیده اعمال زیر رو انجام بده:
الف)نشانه بعدی(ثابت،متغیر،عملگر،پرا تز باز و بسته) را از عبارت میانوندی دریافت کن
ب) اگر نشانه :
* پرانتز باز است آن را در پشته قرار بده
* عملوند است آن را در خروجی بنویسد
*عملگر است. اگر تقدم این عملگر از تقدم بالای پشته بیشتر باشد آن را در پشته قرار بده
وگرنه عضو بالای پشته رو حذف کنه و در هروجی بنویسه
حالا این عملگر ورودی رو با عملگر جدید موجود در بالای پشته مقایسه کنه و عمل را اونقدر ادامه بده تا پشته خالی شه یا تقدم عملگر موجود در پشته کمتر از آن عملگر بشه در این صورت اون رو در پشته قرار بده
* پرانتز بسته است.آنگاه عملگرهای بالای پشته رو pop کرده و در خروجی بنویسه تا وقتی به پرانتز باز برسه اونو pop کنه اما تو خروجی ننویسه
3-وقتی یه انتهای عبارت رسید عناصر موجود در پشته رو حذف کنه و در خروجی بنویسه تا پشته خالی شه
وااااااای چقدر طولانی شد.
من منتظر می مونم
اما زیاد منو منتظر نذارید
ممنون
shokoufeye anar is offline   Reply With Quote
تبلیغــــات
Advertisement
 
قديم 11-07-2009, 01:50 PM   #2

farshidshd
همکار انجمن آموزش عالی
 
farshidshd's Avatar
 
تاريخ عضويت: Sep 2007
محل سكونت: ๑۩۞۩๑̴
پست ها: 1,557
پيش فرض

اگه عجله نداشته باشی تا 2 شنبه یا سه شنبه میزارم واست
farshidshd is offline   Reply With Quote
قديم 11-07-2009, 02:04 PM   #3
shokoufeye anar
داره خودمونی میشه
 
shokoufeye anar's Avatar
 
تاريخ عضويت: Dec 2008
محل سكونت: همه جای ایران سرای من است
پست ها: 25
پيش فرض

نقل قول:
نوشته شده توسط farshidshd مشاهده تاپيک
اگه عجله نداشته باشی تا 2 شنبه یا سه شنبه میزارم واست
ممنون ميشم واقعا
منتظرم
shokoufeye anar is offline   Reply With Quote
قديم 11-10-2009, 11:05 PM   #4
shokoufeye anar
داره خودمونی میشه
 
shokoufeye anar's Avatar
 
تاريخ عضويت: Dec 2008
محل سكونت: همه جای ایران سرای من است
پست ها: 25
پيش فرض

نقل قول:
نوشته شده توسط farshidshd مشاهده تاپيک
اگه عجله نداشته باشی تا 2 شنبه یا سه شنبه میزارم واست
من هنز منتظرم هااااااااا
shokoufeye anar is offline   Reply With Quote
قديم 11-11-2009, 08:26 PM   #5

farshidshd
همکار انجمن آموزش عالی
 
farshidshd's Avatar
 
تاريخ عضويت: Sep 2007
محل سكونت: ๑۩۞۩๑̴
پست ها: 1,557
پيش فرض

با عرض معذرت

پیغام خصوصیتو بخون
farshidshd is offline   Reply With Quote
قديم 11-12-2009, 04:28 PM   #6

farshidshd
همکار انجمن آموزش عالی
 
farshidshd's Avatar
 
تاريخ عضويت: Sep 2007
محل سكونت: ๑۩۞۩๑̴
پست ها: 1,557
پيش فرض

ببخشید که دیر شد
بفرمایید


PHP کد:
                   /* infix to postfix */
                /*  farshid  */

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void shart(char);
void pushstack(char);
void popstack();

int max=100;
int k=-1;
int top=-1;
char str[100];
char stack[100];
char out[100];
int tok[]={'(','+','-','*','/','^'};

void main()
{
clrscr();
cout<<" input infix =  ";

cin>>str;
cout<<"\n\n  (token)";
cout<<"\t(stack)";
cout<<"\t\t\t\t\t(output)\n\n";
cout<<"  ________________________________________________________________\n";

for(
int i=0;str[i]!='\0';i++)
   {
       
shart(str[i]);

       
cout<<"\n\t\t\t\t\t\t\t";
       for(
int o=0;o<=k;o++)
    
cout<<out[o];  //show output

    
cout<<"\r\t\t";
       for(
int s=0;s<=top;s++)
    
cout<<stack[s];    //show stack


     
cout<<"\r   "<<str[i];//show token
  
}
   
//popstack();
//******************** postfix **********************
cout<<"\n\n  ________________________________________________________________\n";

cout<<"\n postfix=  ";

  for(
int t=0;t<=k;t++)
     
cout<<out[t];

 
getch();

}
//************ shart **************************

void shart(char token)
{
  for(
int i=0;i<=5;i++)
     {
    if(
token==tok[i])
       {
        
pushstack(token);
        return;
       }
     }
//end for

       
if(token==')')
      
popstack();
    else
     {
       
k++;
       
out[k]=token;
     }
}
//************* pushstack *******************

void pushstack(char token)
{

 if(
top==max)
  {
    
cout<<" stcak full ";
    
getch();
    exit(
1);
  }
  else
    {
      
top++;
      
stack[top]=token;
    }
}
//**************** popstack ******************

void popstack()
{
  if(
top==-1)
    {
      
cout<<"\t\tstak empty";
      return;
    }
   else
      {
    
k++;
    
out[k]=stack[top--];
    
top--;
      }


موفق باشی
farshidshd is offline   Reply With Quote
این کاربر از farshidshd بخاطر این مطلب مفید تشکر کرده است
قديم 11-12-2009, 10:18 PM   #7
shokoufeye anar
داره خودمونی میشه
 
shokoufeye anar's Avatar
 
تاريخ عضويت: Dec 2008
محل سكونت: همه جای ایران سرای من است
پست ها: 25
پيش فرض

يك دنيا ممنون
shokoufeye anar is offline   Reply With Quote
تبلیغــــات
Advertisement
 
جواب


کاربراني که اين گفتگو را مشاهده ميکنند: 1 (0 کاربران و 1 مهمان)
 
اختيارات تاپيک
نمايش رسم

قوانين ايجاد تاپيک در انجمن
شما نمی توانید تاپیک ایحاد کنید
شما نمی توانید پاسخی ارسال کنید
شما نمی توانید فایل پیوست کنید
شما نمی توانید پاسخ خود را ویرایش کنید

BB code is روشن
شکلک ها روشن هستند
کد [IMG] اکنون روشن میباشد
HTML کد خاموش مي باشد

پرش



واحد زمان برحسب GMT +4.5. ساعت هم اکنون 09:20 PM.


Powered by: vBulletin Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden
کليه حق و حقوق متعلق است به گروه نرم افزاري P30world
استفاده از مطالب اين سايت به هر نحو ، منوط به کسب اجازه کتبي از مديريت ميباشد
Email : Forum [at] p30world.com    Fax : +98 (131) 3245397

دانلود نرم افزار     خرید اینترنتی از فروشگاه آنلاین     سفارش تبلیغات     تماس با مدیریت وب سایت