Presentation is loading. Please wait.

Presentation is loading. Please wait.

微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算

Similar presentations


Presentation on theme: "微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算"— Presentation transcript:

1 微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
姓名: 黃 淑 娟 學號: T 班級: 電機技三乙

2 一 . 主題 : 階乘計算

3 二 . 分析 : (1) 流程圖 : 主程式 副程式 yes no 開 始 x=P0輸入階乘數 m<2 Y=func(x)
二 . 分析 : (1) 流程圖 : 主程式 副程式 yes no 開 始 func(m) x=P0輸入階乘數 m<2 return(1) Y=func(x) n=m*func(m-1) 輸出y結果至P1 return(n)

4 (2)演算法 : 當輸入X=0時 , 輸出Y=1 當輸入X=1時 , 輸出Y=1 當輸入X=2時 , 輸出Y=2*1=2 當輸入X=3時 , 輸出Y=3*2*1=6 當輸入X=4時 , 輸出Y=4*3*2*1=24 當輸入X=5時 , 輸出Y=5*4*3*2*1=120

5 三 . 程式 : #include "reg51.h" int func(int) reentrant; main() { int x,y;
三 . 程式 : #include "reg51.h" int func(int) reentrant; main() { int x,y; while(1) x=P0; /* 由P0輸入到x*/ y=func(x); /* 把x傳入副程式func(),y=副程式最後計算結果*/ P1=y; /* 將y由P1輸出*/ } int func(int m)reentrant /* 副程式 */ int n; if(m<2) /* 判斷m是否 <2*/ return(1); /* m <2 傳回值1*/ n=m*func(m-1); /* m >2 傳回值n*/ return(n);

6 四 . 模擬 : (1)當P0輸入” ” , P1輸出 ” ”

7 (2)當P0輸入” ” , P1輸出 ” ”

8 (3)當P0輸入” ” , P1輸出 ” ”

9 (4)當P0輸入” ” , P1輸出 ” ”

10 (5)當P0輸入” ” , P1輸出 ” ”

11 (6)當P0輸入” ” , P1輸出 ” ”

12 五 . 實驗結果 : (1)當P0輸入” ” , P1輸出 ” ”

13 (2)當P0輸入” ” , P1輸出 ” ”

14 (3)當P0輸入” ” , P1輸出 ” ”

15 (4)當P0輸入” ” , P1輸出 ” ”

16 (5)當P0輸入” ” , P1輸出 ” ”

17 (6)當P0輸入” ” , P1輸出 ” ”


Download ppt "微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算"

Similar presentations


Ads by Google