|
#1
| |||
| |||
| [求助][C&C++] 請問有關dev-c++急需,煩請高手幫幫忙 有多項式定義如下: F(X)=3x^4+5X^2+X+6,P(X)=2X^3-4X^2+19,Q(X)=10X^5-7X^3+19X+10, 試設計程式來計算F(X)+P(X)-Q(X)。 試利用堆疊的資料結構與運算,設計一程式來計算下列後序表示式。 6 9 3 / - 8 6 2 - / + 此文章於 2005-11-24 07:27 AM 被 bojack 編輯. |
|
#2
| ||||
| ||||
| 我只會第一題... 第二題的堆疊我還沒學過...>"< #include <iostream> #include <math.h> using namespace std; int main() { double a,F,P,Q,Y; cout<<"請輸入X值:"; cin>>a; F=3*pow(a,4)+5*(a,2)+a+6; P=2*(a,3)-4*(a,2)+19; Q=10*(a,5)-7*(a,3)+19*a+10; Y=F+P+Q; cout<<"當X等於 "<<a<<" 時,"<<"F(X)+P(X)+Q(X)= "<<Y; system("PAUSE"); return 0; } |
|
#3
| |||
| |||
| 第二題真正要寫成程式要花點時間 不過我知道要怎麼寫 大概是這樣的:先實做一個堆疊的資料結構`可以使用陣列或者是鍊結串列linked list 然後將運算式子從左到右一個一個丟到堆疊裡、然後遇到數字的話不管、遇到符號oprator時就pop堆疊中的兩個數出來作運算`、然後push回去`、最後堆疊裡就只剩一個數`、那個數就是解答了
__________________ <HTML> <HEAD></HEAD> <BIG>不要懈怠喔~~~</BIG> </HTML> |
|
#4
| |||
| |||
| a開到int會不會比較保險!? 如果開到極大值的話,a有四次方項,double就爆掉了。 純粹是考慮個惡搞的可能性...
__________________ 掬一把人間淨土,造千年人間仙境 |
|
#5
| ||||
| ||||
| 引用:
但是pow(a,b)這個函數內的a無法放int,所以我才會用double的 |
|
#6
| |||
| |||
| 引用:
假設一個運算式 6+(5*4+3)- 2*4 從左到右掃描, 數字就直接加入後序表示式, 遇到符號就把他存入符號堆疊, )的優先權最低, (的優先權最高, */的優先權比 +- 高, 所以讀到 )時, 要把堆疊裡面一直到 ( 的符號統統取出來到後續表示式中, 遇到 +- 時, 看看堆疊最上方是否是 */ , 如果是的話把 */ 取出, 之後把+-堆入堆疊, 當掃描完畢堆疊仍有資料, 就一一取出加入後序表示式 如以上 6+(5*4+3)- 2*4 6 堆疊: 後序表示式: 6 + 堆疊:+ 後序表示式: 6 ( 堆疊:+( 後序表示式: 6 5 堆疊:+( 後序表示式: 6 5 * 堆疊:+(* 後序表示式: 6 5 4 堆疊:+(* 後序表示式: 6 5 4 + 堆疊:+(+ 後序表示式: 6 5 4 * 3 堆疊:+(+ 後序表示式: 6 5 4 * 3 ) 堆疊:+ 後序表示式: 6 5 4 * 3 + - 堆疊:+ - 後序表示式: 6 5 4 * 3 + 2 堆疊:+ - 後序表示式: 6 5 4 * 3 + 2 * 堆疊:+ - * 後序表示式: 6 5 4 * 3 + 2 4 堆疊:+ - * 後序表示式: 6 5 4 * 3 + 2 4 堆疊:+ - 後序表示式: 6 5 4 * 3 + 2 4 * 堆疊:+ 後序表示式: 6 5 4 * 3 + 2 4 * - 堆疊: 後序表示式: 6 5 4 * 3 + 2 4 * - + 希望沒寫錯啦 :Q |
|
#7
| |||
| |||
| 引用:
不過我個人試的結果是把a變數declare成float狀態也沒問題。 或許資料比較大的時候會有誤差值!?這不是很清楚...
__________________ 掬一把人間淨土,造千年人間仙境 |