程式設計的方法

2022-12-16 13:36:03 字數 2542 閱讀 7524

加入時間:2023年5月13日顯示次數:72

投票評論

1.模組化:

(1)把乙個較大的程式劃分為若干子程式,每乙個子程式解決乙個總是獨立成為乙個模組;(2)每乙個模組又可繼續劃分為更小的子模組;

(3)程式具有一種層次結構。注:運用這種程式設計方法,考慮問題必須先進行整體分析,避免邊寫邊想。2.自頂向下:

(1)先設計第一層(即:頂層),然後步步深入,逐層細分,逐步求精,直到整個問題可用程式語言明確地描述出來為止。(2)步驟:

首先對問題進行仔細分析,確定其輸入、輸出資料,寫出程式執行的主要過程和任務;然後從大的功能方面把乙個問題的解決過程分成幾個問題,每個子問題形成乙個模組。(3)特點:先整體後區域性,先抽象後具體。

3.自底向上:

(1)即先設計底層,最後設計頂層;

(2)優點:由表及裡、由淺入深地解決問題;

(3)不足:在逐步細化的過程中可能發現原來的分解細化不夠完善;(4)注意:該方法主要用於修改、優化或擴充乙個程式。4.例子:求1到n之間的素數。

解:要求1到n之間的素數,程式要做的事就是從1開始依次找,判斷是否是素數,是則列印出來,否則繼續往下找,直到n為止。於是初步設想成:

beginread(n);number:=2;

while number〈n do begin

if number是乙個素數then write(number);number取下乙個值;end end.

第二步:細化「number是乙個素數」及「number取下乙個值」。

(1)細化「number是乙個素數」:「number是乙個素數」這是乙個布林值,當number是乙個素數時為true,否則為false。細化如下:

k:=2; lim:=number-1; repeat if nubmer能被k整

除then prim:=false else begink:=k+1;prim:

=true;end; until not(prim) or (k達到lim);(2)細化「number取下乙個值」:number:=number+1;第三步:

細化「number能被k整除」及「k達到lim」。(1)細化「number能被k整除」:number mod k=0;(2)細化「k達到lim」:

k<=lim;第四步:補充完整程式。

第五步:從所有的素數除了2之外都是奇數的角度出發優化程式。

程式設計步驟:

1.分析問題:對要解決的問題,首先必須分析清楚,明確題目的要求,列出所有已知量,找出題目的求解範圍、解的精度等。

例「第10周練習」第7題——兔子的繁殖問題,必須找出其繁殖規律。2.建立數學模型:

對實際問題進行分析之後,找出它的內在規律,就可以建立數學模型。只有建立了模型的問題,才能可能利用計算機來解決。如上例,可推出遞推公式u[n]=u[n-1]+u[n-2](這是菲波那契數列)

3.選擇演算法:建立數學模型後,還不能著手程式設計序,必須根據資料結構,解決問題的演算法。一般選擇演算法要注意:

(1)演算法的邏輯結構盡可能簡單;(2)演算法所要求的存貯量應盡可能少;

(3)避免不必要的迴圈,減少演算法的執行時間;(4)在滿足題目條件要求下,使所需的計算量最小。

4.編寫程式:把整個程式看作乙個整體,先全域性後區域性,自頂向下,一層一層分解處理,如果某些子問題的演算法相同而僅引數不同,可以用子程式來表示。5.除錯執行;6.分析結果;

7.寫出程式的文件:主要是對程式中的變數、函式或過程作必要的說明,解釋程式設計思路,畫出框圖,討論執行結果等。

8.例1:輸入奇數n,計算並輸出n位的魔方陣。(說明:

(1)魔方陣就是n*n個不同的正整數按方陣排列時,它的每一行,每一列以及沿對角線的幾個數的和具有同一性質的方陣。

(2)由1到n*n個自然數數構成的魔方陣是最基本的,又稱為「幻方」,這種方陣的每行、每列和每個對角線上的元素的和全部相等,亦即等於乙個常數。該常數是n(n*n+1)/2。

(3)方法:首先確定1的位置,通常放在第一行的中間位置;然後當前自然數的右上方放下乙個自然數;如果當前自然數在第一行但不在最右側,則下乙個自然數在最後一行,列數右移一列;如果當前自然數在第一行最右側,則下乙個自然數在當前自然數的下側;如果當前自然數在其它行的最右側,則下乙個自然數在上一行的最左側。

9.例2:任何乙個整數的立方都可以寫成一串奇數之和。說明:

(1)這是著名的尼科梅切斯定理。即1^3=1 2^3=3+5=8 3^3=7+9+11=27(2)資料間關係的規律:

·n^3是n個奇數之和,如2^3是2個奇數之和,3^3是3個奇數之和;

·這n個奇數是相鄰的,只要知道各式的第乙個奇數也就知道所有的n個奇數:組成1^3的1個奇數是奇數序列中的第1個奇數;組成2^3的2個奇數中最大的奇數是奇數序列中的第3(3=1+2)個奇數(值為5);組成3^3的3個奇數中最大的奇數是奇數序列中的第6(6=1+2+3)個奇數(值為11);由此推出:組成n^3的n個奇數中最大的奇數是奇數序列中的第m(m=1+2+3+...

+n)個奇數,即:m=n(n+1)/2·奇數序列中第m個奇數的值是:modd=2m-1 modd表示「第m個奇數」,是組成n^3的奇數序列中最大的乙個奇數。

例如,第2個奇數是3,第6個奇數是11。·n^3=modd+(modd-2)+(modd-4)+...(modd-2(n-1))

程式設計的基本方法

高一教材第6章第一節 常熟市實驗中學蔣雯 課題 程式設計的基本方法 高一教材第6章第一節 教材分析 一 教材結構 在前面五章中均以操作為主,但是我們使用的實際上都是別人已經編寫好的程式。一切處理最終都要通過執行程式來完成。在第六章中介紹了vb的簡單程式設計,讓學生掌握一些簡單的程式設計方法,而第一節...

程式設計方法

1.對兩個8位元組無符號數求和,這兩個數分別用變數data1及data2表示。將兩數之和的最高進製放在al中,兩數之和的其他位按從高到低順序依次放在si,bx,cx,dx中。解 程式如下 data segment data1 db 0cdh,0bch,0abh,9ah,78h,56h,34h,12h...

PLC程式設計常用的方法

1 單流程及程式設計方法 1使用起保停電路模式的程式設計方法 在梯形圖中,為了實現前級步為活動步且轉換條件成立時,才能進行步的轉換,總是將代表前級步的中間繼電器的常開接點與轉換條件對應的接點串聯,作為代表後續步的中間繼電器得電的條件。當後續步被啟用,應將前級步關斷,所以用代表後續步的中間繼電器常閉接...