官术网_书友最值得收藏!

1.3 在計算機中表示算法的方法

知識點講解:光盤:視頻講解\第1章\在計算機中表示算法的方法.avi

在1.2.1節中演示的算法都是通過語言描述來體現的。其實除了語言描述之外,還可以通過其他方法來描述算法。在接下來的內容中,將簡單介紹幾種表示算法的方法。

1.3.1 用流程圖來表示算法

流程圖的描述格式如圖1-1所示。

圖1-1 流程圖標識說明

再次回到1.2.1節中的問題。

假設有80個學生,要求打印輸出成績在60分以上的學生。

針對上述問題,可以使用圖1-2所示的算法流程圖來表示。

圖1-2 算法流程圖

在日常流程設計應用中,通常使用如下3種流程圖結構。

① 順序結構。順序結構如圖1-3所示,其中A和B兩個框是順序執行的,即在執行完A以后再執行B的操作。順序結構是一種基本結構。

圖1-3 順序結構

② 選擇結構。選擇結構也稱為分支結構,如圖1-4所示。此結構中必含一個判斷框,根據給定的條件是否成立來選擇是執行A框還是B框。無論條件是否成立,只能執行A框或B框之一,也就是說A、B兩框只有一個,也必須有一個被執行。若兩框中有一框為空,程序仍然按兩個分支的方向運行。

圖1-4 選擇結構

③ 循環結構。循環結構分為兩種,一種是當型循環,一種是直到型循環。當型循環是先判斷條件P是否成立,成立才執行A操作,如圖1-5(a)所示。而直到型循環是先執行A操作再判斷條件P是否成立,成立再執行A操作,如圖1-5(b)所示。

圖1-5 循環結構

上述3種基本結構有如下4個特點,這4個特點對于理解算法很有幫助。

① 只有一個入口。

② 只有一個出口。

③ 結構內的每一部分都有機會被執行到。

④ 結構內不存在“死循環”。

1.3.2 用N-S流程圖來表示算法

在1973年,美國學者提出了N-S流程圖的概念,通過它可以表示計算機的算法。N-S流程圖由一些特定意義的圖形、流程線及簡要的文字說明構成,能夠比較清晰明確地表示程序的運行過程。人們在使用傳統流程圖的過程中,發現流程線不一定是必需的,所以設計了一種新的流程圖,這種新的方式可以把整個程序寫在一個大框圖內,這個大框圖由若干個小的基本框圖構成,這種新的流程圖簡稱N-S圖。

遵循N-S流程圖的特點,N-S流程圖的順序結構圖1-6所示,選擇結構如圖1-7所示,循環結構如圖1-8所示。

圖1-6 順序結構

圖1-7 選擇結構

圖1-8 循環結構

1.3.3 用計算機語言表示算法

因為算法可以解決計算機中的編程問題,是計算機程序的靈魂,所以,可以使用計算機語言來表示算法。當用計算機語言表示算法時,必須嚴格遵循所用語言的語法規則。再次回到1.2.1節中的問題:1×2×3×4×5,如果用C語言編程來解決這問題,可以通過如下代碼實現。

        main(){
         int i, t; //定義兩個變量
         t=1;
         i=2; //t初始值為1, i初始值為2
         while(i<=5){
         t=t*i;
         i=i+1;
         }
         printf("%d", t);
        }

上述代碼是根據1.2.1節中的語言描述算法編寫的,因為是用C語言編寫的,所以,需要嚴格遵循C語言的語法。例如在上述代碼中,主函數main()、變量和printf()輸出信息都遵循了C語言的語法規則。

主站蜘蛛池模板: 凉城县| 大宁县| 芜湖市| 开鲁县| 永修县| 镇远县| 汤原县| 胶南市| 黄梅县| 白水县| 酉阳| 玉田县| 民丰县| 乃东县| 德令哈市| 磐石市| 牙克石市| 清徐县| 定州市| 大邑县| 台安县| 聂荣县| 巨野县| 深泽县| 铜鼓县| 张掖市| 烟台市| 石棉县| 波密县| 屏东县| 方城县| 铜陵市| 成都市| 红河县| 北辰区| 扎鲁特旗| 安福县| 水城县| 西乌| 吉林省| 七台河市|