李 信
(河北省實驗中學(xué),石家莊 050000)
信息時代的來臨以及中國在互聯(lián)網(wǎng)領(lǐng)域的飛速發(fā)展都對我們的日常生活產(chǎn)生了很大的影響,尤其是在大數(shù)據(jù)、人工智能紛紛被列入國家重點扶持的專業(yè)之后,對于高中數(shù)學(xué)的學(xué)習(xí)也產(chǎn)生了很大的引導(dǎo)作用。進(jìn)入信息科技時代,尤其是數(shù)學(xué)與計算機(jī)技術(shù)的結(jié)合,使得數(shù)學(xué)的作用與意義更加凸顯出來,其解決實際問題的應(yīng)用也越來越被明確。而高中數(shù)學(xué)學(xué)習(xí)過程中的程序框圖部分,更是這一理念的直觀體現(xiàn)。它展現(xiàn)了算法的直觀意義,是解決數(shù)學(xué)與實際問題的重要載體。通過借助程序框圖的表現(xiàn),可以將一些實際情景中的問題轉(zhuǎn)化為數(shù)學(xué)問題,從而表示數(shù)學(xué)問題的思維與邏輯過程,通過將實際問題以程序框圖的模式化語言表示出來,進(jìn)而可以移植到計算機(jī)上操作。程序框圖、算法的初步知識都是未來計算機(jī)語言、編程基礎(chǔ)的簡化體現(xiàn)。程序框圖及算法在當(dāng)前快速發(fā)展的新科技時代有著非常重要的作用,滲透至我們?nèi)粘I畹暮芏喾矫?,其代表的?shù)學(xué)思想也成為當(dāng)下新一代必備的素養(yǎng)[1]。
其實,算法(algorithm)這個詞最早出現(xiàn)于12世紀(jì),最初指的是用阿拉伯?dāng)?shù)字進(jìn)行算數(shù)運算的過程。它是由一系列明確和有限的計算步驟組成的。我們知道,利用計算機(jī)處理問題時,程序是必不可少的。因此,我們必須事先明確計算的方法,條件判斷和處理過程,這個以計算為中心的algorithm可稱為算法。
其實,簡單的來講,在數(shù)學(xué)中的解方程的步驟方法就是一個算法的具體體現(xiàn),在日常生活中我們也可以參考某些產(chǎn)品的使用說明書,其實也可稱為廣義的算法??偟膩碚f,算法指的是在解決問題時按照某種機(jī)械程序步驟,則一定可以達(dá)到某種結(jié)果的處理過程。而這種步驟也必須是明確的、有效的和有限的[2]。
目前,算法的主要表達(dá)形式有三種,這三種形式都各具特點,其優(yōu)缺點可簡要總結(jié)為下述幾點:
(1)算法的自然語言表示:即使用我們?nèi)粘S谜Z來描述某個算法。其優(yōu)點為:字面易于理解,先后順序表述的較為直接。但這一表述方法的缺點也同樣明顯:即表達(dá)冗長,容易造成大量文字?jǐn)⑹?,且在重?fù)操作、分情況處理等方面無法清楚表述。
(2)算法的程序框圖表示:通過框圖和流程線并輔以文字說明從而更加形象、直觀的表示算法。使用程序框圖的優(yōu)點在于,能夠簡潔形象表述問題,并且步驟執(zhí)行方向十分明確。
如常見的例子:“判斷一元二次方程ax2+bx+c=0是否存在實數(shù)根”,用程序框圖可表示為:
(3)算法的代碼或程序表示:使用能夠被計算機(jī)所識別的低級或高級語言將自然語言或者框圖所表述的解決問題的步驟進(jìn)行表述的方法。其主要特點就是能夠在計算機(jī)上執(zhí)行,但同時對于格式有著更嚴(yán)格的要求。
如上述問題:“判斷一元二次方程ax2+bx+c=0是否存在實數(shù)根”,使用自然語言表述為:
第一步,輸入方程系數(shù):a,b,c;
第二步,計算Δ=b2-4ac的值;
第三步,判斷Δ與0的關(guān)系,如Δ≥0則輸出“方程有實根”;若Δ<0則輸出“方程無實根”。
算法結(jié)束。
如果用計算機(jī)程序(此處選用basic語言)進(jìn)行表示,則為:
INPUT“a,b,c”;Δ=b2-4ac
IF Δ≤0THEN
PRINT“有實根”
ELSE PRINT“無實根”
END IF
END.
當(dāng)前,各類軟件應(yīng)用的開發(fā)都是依賴于計算機(jī)編程的途徑進(jìn)行的。而對于編程而言,數(shù)學(xué)算法是其中最基本同時也是最關(guān)鍵的部分。對于數(shù)學(xué)算法的合理應(yīng)用,能夠很大程度提高計算機(jī)編程效率,保證軟件開發(fā)的成功率。隨著當(dāng)前信息科技的迅速發(fā)展創(chuàng)新,算法對于計算機(jī)編程的影響進(jìn)一步深化,數(shù)學(xué)算法逐漸成為程序員需要具備的基本素養(yǎng)之一。
計算機(jī)編程以計算機(jī)語言作為根本,通過對計算機(jī)語言的研究和翻譯工作,從而能夠?qū)崿F(xiàn)多種類型不一的計算機(jī)功能,即軟件功能。本質(zhì)上,計算機(jī)誕生的目的就是為了能夠幫助人們借助于大量的數(shù)學(xué)計算,為人們提供精確的計算結(jié)果,以達(dá)到解決問題的目的。而算法的內(nèi)核就在于其與當(dāng)前計算機(jī)信息技術(shù)的緊密銜接與整合,其自身就具有程序性的特點,算法與計算機(jī)編程之間是存在相輔相成關(guān)系的。通過算法和程序框圖能夠幫助我們更好的了解和認(rèn)識計算機(jī)語言及編程的基礎(chǔ),而通過編程也可以讓我們更深入的了解算法的內(nèi)核以及驗證算法的知識。
傳統(tǒng)的程序框圖可以通過清晰的表示事物之間的路基關(guān)系,通過框圖和流程線以及文字說明簡單明了的體現(xiàn)了程序或者結(jié)構(gòu)件的相互聯(lián)系。而根據(jù)現(xiàn)有的技術(shù)基礎(chǔ),我們也容易得到源碼與流程圖之間的工具轉(zhuǎn)換,得到一個能夠矯正邏輯結(jié)構(gòu)正確性的流程圖[3]。
另一方面,通過將部分代碼實現(xiàn)的功能進(jìn)行整合形成代碼塊,進(jìn)而結(jié)合程序框圖實現(xiàn)代碼的簡化表達(dá),從而實現(xiàn)模塊化編程。這種編程方式,將一個完整的程序按照不同的功能劃分成了若干個小程序模塊,每一個小程序可以實現(xiàn)一個確定的功能,再通過類似程序框圖的邏輯結(jié)構(gòu)在這些模塊間建立起必要的聯(lián)系,從而能夠通過各個模塊的相互協(xié)作完成整改功能的一種程序設(shè)計方案[4]。這種模塊化程序的設(shè)計基本思路是由頂層向下、逐步分解,各模塊之間相對獨立、功能單一、結(jié)構(gòu)清晰、接口簡單。它具有多方面優(yōu)點:(1)控制了程序設(shè)計的復(fù)雜性。(2)提高了代碼的重用性。(3)易于維護(hù)和功能擴(kuò)充。(4)有利于團(tuán)隊開發(fā)。[5]這樣的變成形式目前在基礎(chǔ)程序?qū)W習(xí)領(lǐng)域已經(jīng)得到了較為廣泛的應(yīng)用,其實這種應(yīng)用就是程序框圖和復(fù)雜編程的結(jié)合,既降低了學(xué)習(xí)編程的門檻,同時可以幫助學(xué)習(xí)者較為清晰的認(rèn)識編程的過程,是值得我們更深一步去開發(fā)完善,并廣泛應(yīng)用于中學(xué)編程學(xué)習(xí)過程之中。