Download presentation
Presentation is loading. Please wait.
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輸出 ” ”
Similar presentations