作者zzss2003 (brotherD)
看板C_and_CPP
標題[討論] 請問多層迴圈的flow chart怎麼畫?
時間Mon Sep 18 17:52:48 2017
各位好,小弟想要畫以下這個程式碼的流程圖:
if(V>24){
do{
PWM();
while(I=0){
RA5=0;
Delay_ms(1000);
LED();
I2C();
RA5 = 1;
Delay_ms(1000);
if(I != 0){
break;
}
}
LED();
I2C();
}while(v<28.7)
}
小弟畫出來的:
https://imgur.com/a/NMyvY
不過我也只是硬幹而已,想請教各位前輩,有沒有更適合的畫法?謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1505728371.A.542.html
1F:→ MOONRAKER: ……你block大小會不會太隨興了 09/18 18:45
2F:→ MOONRAKER: 一般if block習慣是結果為真,繼續往下 09/18 18:48
3F:→ MOONRAKER: 結果為假,拉一條長的flow跳過迴圈,迴圈尾巴往左邊回 09/18 18:49
4F:→ MOONRAKER: 去,接回if block,這樣才有點迴圈的樣子 09/18 18:49
5F:→ MOONRAKER: 你畫得這樣我很想建議你不要畫了 反正流程圖早就過時了 09/18 18:50
6F:→ MOONRAKER: 早20年就不是非畫不可 09/18 18:50
7F:推 chuegou: 我組語會畫一下 不過還是以狀態機圖比較常用 09/18 19:25
8F:→ EdisonX: 流程圖我以為只有labview. plc 還有在用 09/19 00:43
大家都不習慣畫流程圖嗎,我覺得畫出來對寫程式的邏輯很有幫助阿~不過應該是因為我太
弱QQ
※ 編輯: zzss2003 (60.248.26.157), 09/19/2017 09:35:10
9F:推 Neisseria: 以原來這個程式碼來說,應該也不用畫吧 09/19 10:10
10F:→ Neisseria: 如果比較複雜的,用就函式把流程 refactoring 一下 09/19 10:11
請問用函式把流程refactoring是什麼意思
11F:→ MOONRAKER: 學習階段很愛畫,還買過流程圖規(圖板)。 09/19 10:51
12F:→ MOONRAKER: 但是各個階段做的事情不同 傳統流程圖太繁瑣 09/19 10:53
13F:→ MOONRAKER: 只適合慢慢來 09/19 10:54
14F:→ MOONRAKER: 不要以為大家不畫 慣例都跟你講了 不要裝沒看到 09/19 10:54
MOON大大您說什麼裝沒看到呀~您講的建議我有看進去喔~
※ 編輯: zzss2003 (60.248.26.157), 09/19/2017 10:59:09
15F:推 Neisseria: 主要執行功能的函式不要寫出實作細節 09/19 14:54
16F:→ Neisseria: 把一些細節包在一些小型 helper 函式裡 09/19 14:54
17F:→ Neisseria: 讀主函式時就會大略知道程式在做什麼 09/19 14:55
18F:→ Neisseria: 需要改實作時改 helper 函式即可 09/19 14:55
19F:→ Neisseria: 之前在一些教撰寫程式碼的書看到的概念 09/19 14:56
20F:→ Neisseria: 雖然那本書是用 Java,概念應該都通吧 09/19 14:57
21F:推 CoNsTaR: 流程圖沒有過時問題啊 畫那東西本來就一點意義也沒有 09/19 19:51
22F:推 xavier13540: 原來還真的有人在畫流程圖 09/22 04:20
23F:推 bladesaurus: 流程圖怎麼了、不同的需求就可以用不同的工具 09/22 11:48
24F:→ bladesaurus: 人家的專案或是團隊可能就很適合流程圖阿 09/22 11:49
25F:推 bladesaurus: 語言或工具意不在精美或潮流程度、能有效溝通就好 09/22 11:59
可以請問一下大家說流程圖過時的原因是什麼嗎?還是現在有更方便可以取代流程圖的工具
※ 編輯: zzss2003 (60.248.26.157), 09/22/2017 16:43:56
26F:→ MOONRAKER: 過時就太複雜啊 09/26 14:02
27F:→ MOONRAKER: 很多流程圖元件是從打孔卡時代就有的 現在都不合時宜 09/26 14:04
28F:→ MOONRAKER: 以前打孔卡時代輸入、顯示、印表是大事 現在都不需要 09/26 14:05
29F:→ MOONRAKER: 畫起來也不方便 學習階段寫虛擬碼就有不錯效果 09/26 14:06
30F:→ MOONRAKER: 準備正式文件的時候再畫不遲 09/26 14:08
31F:→ MOONRAKER: 另一個原因是流程圖的重點隨應用場合而異 09/26 14:12
32F:→ MOONRAKER: 往往到系統規劃的時候才會顯示出價值 學習階段不好畫也 09/26 14:22
33F:→ MOONRAKER: 不好改 往往浪費時間 09/26 14:22