算法與程序設(shè)計(備課)概要課件_第1頁
算法與程序設(shè)計(備課)概要課件_第2頁
算法與程序設(shè)計(備課)概要課件_第3頁
算法與程序設(shè)計(備課)概要課件_第4頁
算法與程序設(shè)計(備課)概要課件_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

算法的概念與程序設(shè)計劉啟明算法的概念與程序設(shè)計劉啟明1第4節(jié)算法的概念與程序設(shè)計

【本章提要】

針對部分模塊進(jìn)行討論,研究其教學(xué)內(nèi)容、教學(xué)處理要點和教學(xué)中應(yīng)注意的問題。第4節(jié)算法的概念與程序設(shè)計

【本章提要】2

一、算法二、算法與程序三、重要的循環(huán)算法和遞歸算法四、排序問題五、常用算法一、算法3一、算法1.算法:對特定問題的求解步驟。2.算法復(fù)雜度3.算法的特征:有窮性、確定性、可行性4.計算方法:對求數(shù)值解的近似方法的研究【注意事項】計算機求解的問題:有兩大類(數(shù)值和非數(shù)值)【例題】交換兩個變量的值一、算法1.算法:對特定問題的求解步驟。4算法atbba算法atbba5算法main(){ floata,b,t; scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f\n",a,b);}算法main()6二、算法與程序

【程序兩要素】瑞士科學(xué)家沃思(NiklausWirth)有一個著明的公式程序=算法(操作步驟)+數(shù)據(jù)結(jié)構(gòu)(原料)

【說明】高級語言的數(shù)據(jù)類型非常豐富,如:字符型、整型、實型、邏輯型等。

【數(shù)組的概念】一組相關(guān)數(shù)據(jù)的集合,它在內(nèi)存中開辟了若干個連續(xù)的存儲單元,依次存儲。二、算法與程序7算法與程序

算法表示:

(1)自然語言

(2)傳統(tǒng)流程圖

(3)N-S結(jié)構(gòu)圖:又稱納薩-施內(nèi)德曼圖(Nassi-Sschneiderman).

結(jié)構(gòu)化程序設(shè)計(三種基本結(jié)構(gòu))

算法與程序算法表示:8【例題】求3個數(shù)中最小數(shù)

main(){inta,b,c,t;printf("請輸入三個整數(shù):");scanf(%d,%d,%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}printf("三個整數(shù)中最大得是%d\n",a);}【例題】求3個數(shù)中最小數(shù)9a>bYN交換a>cYN交換a>dYN交換……i=1ton-1min>a[i]YN交換a>bYN交換a>cYN交換a>dYN交換……i10三、重要的循環(huán)算法和遞歸算法循環(huán)算法兩類具有代表性的算法(窮舉和迭代)循環(huán)控制的方法(計數(shù)\標(biāo)志)例如:迭代算法的教學(xué)(二分法\牛頓切線)掌握知識與培養(yǎng)能力的統(tǒng)一主體與客體的統(tǒng)一【教案】用牛頓迭代法求下面方程在1.5附近的根。三、重要的循環(huán)算法和遞歸算法循環(huán)算法掌握知識與培養(yǎng)能力的11典型的遞歸算法Hanoi(漢諾)塔問題:

古代有一個梵塔,塔內(nèi)有3個座A、B、C,開始時A座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個老和尚想把這64個盤子從A盤移到C座,但每次只允許移動一個盤子,且在移動過程中在3個座上都始終大盤在下,小盤在上。在移動過程中可以利用B座,要求編程序打印出移動步驟。

算法的演示圖示如下所示:典型的遞歸算法Hanoi(漢諾)塔問題:12典型的遞歸算法ABC132典型的遞歸算法ABC13213四、排序問題例如:排序問題(n個元素排隊)

對數(shù)據(jù)進(jìn)行排序有哪些方法可以實現(xiàn)?

快速排序、冒泡排序、希爾排序、插入排序、歸并排序……采用冒泡排序方法對待排序的序列進(jìn)行排序。四、排序問題例如:排序問題(n個元素排隊)14

定義一個大小為6的數(shù)組a[6]a[1]a[2]a[3]a[4]a[5]a[6]初始965743一次后695743二次后659743三次后657943四次后657493五次后657439第一趟冒泡排序最大值注:經(jīng)過第一趟冒泡排序,我們找出了待排序序列中的最大值9,最大值9存放在了數(shù)組a的最后一個位置。定義一個大小為6的數(shù)組a[6]最大值注:經(jīng)過第一趟冒泡排序15

a[1]a[2]a[3]a[4]a[5]a[6]初始657439一次后567439二次后567439三次后564739四次后564379第二趟冒泡排序注:經(jīng)過第二趟冒泡排序后,我們找到了次大值7,次大值7存放在數(shù)組a的倒數(shù)第二個位置a[5]次大值最大值a[1]a[2]a16流程圖是用一些圖框表示各種操作。用圖形表示算法,直觀形象、易于理解。

N-S流程圖---全部的算法寫在一個矩形框內(nèi),在框內(nèi)還可以包含其他的從屬于它的框,或者說,由一些基本的框組成一個大的框。這種流程圖又稱為N-S結(jié)構(gòu)化流程圖。據(jù)此在這里我們可畫出上述冒泡排序算法的N-S流程圖流程圖是用一些圖框表示各種操作。用圖形表示算法,直觀形象、易17描述算法

輸入n個數(shù)給a[1]到a[n]fori=1ton-1forj=1ton-ia[j]>a[j+1]真假a[j]<=>a[j+1]輸出a[1]到a[n]冒泡排序算法N-S流程圖描述算法18N-S圖描述算法依次對數(shù)據(jù)序列進(jìn)行冒泡排序:第三趟冒泡排序結(jié)果5-4-3-6-7-9第四趟冒泡排序結(jié)果4-3-5-6-7-9第五趟冒泡排序結(jié)果3-4-5-6-7-9最后我們得到從小到大的順序序列為:3-4-5-6-7-9對n個數(shù)據(jù)進(jìn)行排序,需進(jìn)行n-1趟的冒泡排序;每趟冒泡排序過程中,(第i趟冒泡排序中)兩兩數(shù)據(jù)比較進(jìn)行了n-i次N-S圖描述算法依次對數(shù)據(jù)序列進(jìn)行冒泡排序:對n個數(shù)據(jù)進(jìn)行排19

程序如下所示:main(){inta[6];inti,j,t;

printf(“input6numbers:\n”);

for(j=1;j<=6;j++)

scanf(“%d”,&a[i]);

for(j=1;j<6;j++)for(i=1;i<6-j;i++)if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“theorderednumbers:\n”);for(i=1;i<=6;i++)printf(“%d”,a[i]);}

程序如下所示:main()20

比較沉淀(起泡)選擇重要提示:課堂上強調(diào)以學(xué)生為中心建構(gòu)主義認(rèn)為,學(xué)習(xí)不是知識經(jīng)驗從外到內(nèi)的輸入過程,而是學(xué)習(xí)者通過新舊知識經(jīng)驗之間充分的相互作用而“生成”自己的知識的過程,學(xué)習(xí)要以學(xué)習(xí)者為中心。五、常用算法

比較沉淀(起泡)選擇五、常用算法21算法的概念與程序設(shè)計劉啟明算法的概念與程序設(shè)計劉啟明22第4節(jié)算法的概念與程序設(shè)計

【本章提要】

針對部分模塊進(jìn)行討論,研究其教學(xué)內(nèi)容、教學(xué)處理要點和教學(xué)中應(yīng)注意的問題。第4節(jié)算法的概念與程序設(shè)計

【本章提要】23

一、算法二、算法與程序三、重要的循環(huán)算法和遞歸算法四、排序問題五、常用算法一、算法24一、算法1.算法:對特定問題的求解步驟。2.算法復(fù)雜度3.算法的特征:有窮性、確定性、可行性4.計算方法:對求數(shù)值解的近似方法的研究【注意事項】計算機求解的問題:有兩大類(數(shù)值和非數(shù)值)【例題】交換兩個變量的值一、算法1.算法:對特定問題的求解步驟。25算法atbba算法atbba26算法main(){ floata,b,t; scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f\n",a,b);}算法main()27二、算法與程序

【程序兩要素】瑞士科學(xué)家沃思(NiklausWirth)有一個著明的公式程序=算法(操作步驟)+數(shù)據(jù)結(jié)構(gòu)(原料)

【說明】高級語言的數(shù)據(jù)類型非常豐富,如:字符型、整型、實型、邏輯型等。

【數(shù)組的概念】一組相關(guān)數(shù)據(jù)的集合,它在內(nèi)存中開辟了若干個連續(xù)的存儲單元,依次存儲。二、算法與程序28算法與程序

算法表示:

(1)自然語言

(2)傳統(tǒng)流程圖

(3)N-S結(jié)構(gòu)圖:又稱納薩-施內(nèi)德曼圖(Nassi-Sschneiderman).

結(jié)構(gòu)化程序設(shè)計(三種基本結(jié)構(gòu))

算法與程序算法表示:29【例題】求3個數(shù)中最小數(shù)

main(){inta,b,c,t;printf("請輸入三個整數(shù):");scanf(%d,%d,%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}printf("三個整數(shù)中最大得是%d\n",a);}【例題】求3個數(shù)中最小數(shù)30a>bYN交換a>cYN交換a>dYN交換……i=1ton-1min>a[i]YN交換a>bYN交換a>cYN交換a>dYN交換……i31三、重要的循環(huán)算法和遞歸算法循環(huán)算法兩類具有代表性的算法(窮舉和迭代)循環(huán)控制的方法(計數(shù)\標(biāo)志)例如:迭代算法的教學(xué)(二分法\牛頓切線)掌握知識與培養(yǎng)能力的統(tǒng)一主體與客體的統(tǒng)一【教案】用牛頓迭代法求下面方程在1.5附近的根。三、重要的循環(huán)算法和遞歸算法循環(huán)算法掌握知識與培養(yǎng)能力的32典型的遞歸算法Hanoi(漢諾)塔問題:

古代有一個梵塔,塔內(nèi)有3個座A、B、C,開始時A座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個老和尚想把這64個盤子從A盤移到C座,但每次只允許移動一個盤子,且在移動過程中在3個座上都始終大盤在下,小盤在上。在移動過程中可以利用B座,要求編程序打印出移動步驟。

算法的演示圖示如下所示:典型的遞歸算法Hanoi(漢諾)塔問題:33典型的遞歸算法ABC132典型的遞歸算法ABC13234四、排序問題例如:排序問題(n個元素排隊)

對數(shù)據(jù)進(jìn)行排序有哪些方法可以實現(xiàn)?

快速排序、冒泡排序、希爾排序、插入排序、歸并排序……采用冒泡排序方法對待排序的序列進(jìn)行排序。四、排序問題例如:排序問題(n個元素排隊)35

定義一個大小為6的數(shù)組a[6]a[1]a[2]a[3]a[4]a[5]a[6]初始965743一次后695743二次后659743三次后657943四次后657493五次后657439第一趟冒泡排序最大值注:經(jīng)過第一趟冒泡排序,我們找出了待排序序列中的最大值9,最大值9存放在了數(shù)組a的最后一個位置。定義一個大小為6的數(shù)組a[6]最大值注:經(jīng)過第一趟冒泡排序36

a[1]a[2]a[3]a[4]a[5]a[6]初始657439一次后567439二次后567439三次后564739四次后564379第二趟冒泡排序注:經(jīng)過第二趟冒泡排序后,我們找到了次大值7,次大值7存放在數(shù)組a的倒數(shù)第二個位置a[5]次大值最大值a[1]a[2]a37流程圖是用一些圖框表示各種操作。用圖形表示算法,直觀形象、易于理解。

N-S流程圖---全部的算法寫在一個矩形框內(nèi),在框內(nèi)還可以包含其他的從屬于它的框,或者說,由一些基本的框組成一個大的框。這種流程圖又稱為N-S結(jié)構(gòu)化流程圖。據(jù)此在這里我們可畫出上述冒泡排序算法的N-S流程圖流程圖是用一些圖框表示各種操作。用圖形表示算法,直觀形象、易38描述算法

輸入n個數(shù)給a[1]到a[n]fori=1ton-1forj=1ton-ia[j]>a[j+1]真假a[j]<=>a[j+1]輸出a[1]到a[n]冒泡排序算法N-S流程圖描述算法39N-S圖描述算法依次對數(shù)據(jù)序列進(jìn)行冒泡排序:第三趟冒泡排序結(jié)果5-4-3-6-7-9第四趟冒泡排序結(jié)果4-3-5-6-7-9第五

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論