自頂向下,逐步求精是結構化程式設計常用的方法。其中:
自頂向下是將複雜、大的問題劃分為小問題,找出問題的關鍵、重點所在,然後用精確的思維定性、定量地去描述問題。
逐步求精是將現實世界的問題經抽象轉化為邏輯空間或求解空間的問題。複雜問題經抽象化處理變為相對比較簡單的問題。經若干步抽象(精化)處理,最後到求解域中只是比較簡單的程式設計問題。
主要步驟大概是以下圖表
可以看到,求精過程有四種技術:順序、迴圈、分支選擇和遞迴。
這種結構化程式設計方法好處有:
1.程式層次分明,結構清晰;
2.便於集體開發程式;
3.便於除錯。
經典案例:在螢幕上輸出如圖所示的星號圖形
程式設計師不能只看到一堆星星,要用分解的思想,整理出關於圖的規律來,或者說,會分層次地看這個問題。這要訓練「自頂向下,逐步求精」的思維方式。
思路:首先看到的是乙個圖;這個圖有6行;每一行有若干個星號。可喜的是,每一行星號的個數還有規律:第i行星號的個數是2*i-1個!
偽**:
程式片段(1)
i=1;
while(i<=6)
「輸出第i行」的問題還需要分解下去。實際上,輸出「輸出第i行」就是要「重複輸出2*i-1個星號」,也用乙個迴圈結構完成。
j=1;
程式片段(2)
while(j<=2*i-1)
將程式片段(1)中的「輸出第i行」替換為程式片段(2),整個演算法也就清晰了。
通過使用自頂向下,逐步求精的方法,可以極大的簡化我們的程式設計,並使**更加清晰有條理性,希望大家能夠在以後的學習中多培養此類思路。
自頂向下,逐步求精
簡單來說,自頂而下,逐步求精 這是一種分解複雜任務的方法。學會分解任務,超級大分為大的 中的 小的 超小的,直到能用很直接的方法解決。是程式設計裡面很經典的方法。驗證哥德 猜想 任何乙個大於等於4的偶數均可以表示為兩個素數之和 第一步 設一上限數m,驗證從4到m的所有偶數是否能被 分解為兩個素數之和...
自頂向下,逐步求精
由於軟體導論課程的安排,我們已經學到了演算法結構的問題,所以今天我給大家介紹一下top down design。高亮宗旨!重點敲黑板 畢業聚餐點菜 很明顯 點菜就是你的big project,我們要將其分解成各個小任務從而求得實現。1.了解班級人數 2.了解少數名族同學的口味禁忌 3.了解各位同學的...
自頂向下,逐步求精
有時,我們會遇到一些很複雜的問題,不知道該如何下手去解決。這篇部落格將會介紹 自頂向下,逐步求精 這一方法,從而使複雜的問題簡單化,方便我們去解決。其實這一方法的基本思路就是將問題分解。自頂向下 其實就是按照一定的順序,把乙個大問題分解成很多的小問題,確保我們對這些小問題有充分的把握能夠解決。而 逐...