سلام
من اون برنامه ای رو که مربوط به این بود که : ساختار پشته رو به صورت شی گرا و با استفاده از ارایه پیاده سازی کنید و الگوریتم تبدیل یک عبارت ریاضی میانوندی به پسوندی را با استفاده از پشته طراحی شده پیاده سازی کنید. عبارت ریاضی می تواند شامل عملگر چهارگانه، پرانتز و توان باشد این عبارت از طریق یک فایل in.txt به عنوان ورودی به برنامه داده می شود خروجی می بایست در فایل out.txt ذخیره شود؟
این سوال بود(شرمنده یکم زیاد شد)
من قبلا یه چند تا سوال در مورد همین برنامه از شما پرسیده بودم و الان در نهایت کامل شده این برنامه رو نوشتم ولی یه error می ده که هر کاری می کنم درست نمی شه!!!!
می شه لطفا راهنمایی کنید؟
بازم خیلی ممنون از راهنمایی هاتون.
اینم برنامه کامل سوال بالا:
من اون برنامه ای رو که مربوط به این بود که : ساختار پشته رو به صورت شی گرا و با استفاده از ارایه پیاده سازی کنید و الگوریتم تبدیل یک عبارت ریاضی میانوندی به پسوندی را با استفاده از پشته طراحی شده پیاده سازی کنید. عبارت ریاضی می تواند شامل عملگر چهارگانه، پرانتز و توان باشد این عبارت از طریق یک فایل in.txt به عنوان ورودی به برنامه داده می شود خروجی می بایست در فایل out.txt ذخیره شود؟
این سوال بود(شرمنده یکم زیاد شد)
من قبلا یه چند تا سوال در مورد همین برنامه از شما پرسیده بودم و الان در نهایت کامل شده این برنامه رو نوشتم ولی یه error می ده که هر کاری می کنم درست نمی شه!!!!
می شه لطفا راهنمایی کنید؟
بازم خیلی ممنون از راهنمایی هاتون.
اینم برنامه کامل سوال بالا:
کد:
#include <iostream>
#include <conio>
#include <fstream>
template <class Type>
class ArrayStack
{
private:
int capacity,top;
Type *s;
public:
ArrayStack ()
{
capacity=1000;
s=new Type [capacity];
top=-1;
}
Arraystack (int cap)
{
capacity=cap;
s=new Type [capacity];
top=-1;
}
void push (Type var)
{
if (Isfull()) return;
else
s[++top]=var;
}
Type pop()
{
if (Isempty()) return s[0];
else
return s[top--];
}
int Isfull()
{
if (top <capacity-1) return 0;
else
return 1;
}
int Isempty()
{
if (top==-1) return 0;
else
return 1;
}
void postfix (expression (s))
{
char t;
for (int i=0;s[i]!='10';i++){
if (s[i] is an operand)
cout<<s[i];
else
if (s[i]=='(')
push (s[i]);
else
if (s[i]==')')
for (pop(t);t!='(';pop(t))
cout<<t;
else{
if (Isempty()|| p(ArrayStack [top])<p(s[i]))
push (s[i]);
else{
for (pop(t);p(t)>=p(s[i])&&t!='(';pop(t))
cout<<t;
push(t);
push(s[i]);
}
}
}
while (!Isempty())
{
pop(t);
cout<<t;
}
}
void main()
{
ofstream in ("in.txt");
ArrayStack d1("((a\\b)-c)+(d*e)-(a*c))^d") , d2("ab\\c-de*+ac*-d^")
d1.in<<"((a\\b)-c)+(d*e)-(a*c))^d";
in.close();
ofstream out ("out.txt");
d2.out<<"ab\\c-de*+ac*-d^";
out.close();
getch();
}
};
آخرین ویرایش: