第講程序設計基礎教學課件_第1頁
第講程序設計基礎教學課件_第2頁
第講程序設計基礎教學課件_第3頁
第講程序設計基礎教學課件_第4頁
第講程序設計基礎教學課件_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第講程序設計基礎1、紀律是管理關系的形式?!⒎{西耶夫2、改革如果不講紀律,就難以成功。3、道德行為訓練,不是通過語言影響,而是讓兒童練習良好道德行為,克服懶惰、輕率、不守紀律、頹廢等不良行為。4、學校沒有紀律便如磨房里沒有水。——夸美紐斯5、教導兒童服從真理、服從集體,養(yǎng)成兒童自覺的紀律性,這是兒童道德教育最重要的部分。——陳鶴琴第講程序設計基礎第講程序設計基礎1、紀律是管理關系的形式?!⒎{西耶夫2、改革如果不講紀律,就難以成功。3、道德行為訓練,不是通過語言影響,而是讓兒童練習良好道德行為,克服懶惰、輕率、不守紀律、頹廢等不良行為。4、學校沒有紀律便如磨房里沒有水?!涿兰~斯5、教導兒童服從真理、服從集體,養(yǎng)成兒童自覺的紀律性,這是兒童道德教育最重要的部分?!慂Q琴第九章

程序設計基礎計算機基礎知識29.1算法與程序設計概述2021/3/209.1.1程序的概念9.1.2算法的概念及特征1)算法的特征2)算法的評價9.1.3算法的表示方法1)用自然語言表示2)用傳統(tǒng)流程圖表示3)N-S流程圖4)用偽代碼表示9.1.4簡單的程序設計實例(下一講)9.1算法與程序設計計算機基礎知識32021/3/20計算機中的程序與日常生活中的程序的概念是類似的,只不過執(zhí)行日常生活程序的主體是人,而執(zhí)行計算機程序的主體是計算機。計算機程序就是要由計算機進行解釋和執(zhí)行的程序。它表示的是計算機處理事務的時間順序和處理問題的步驟。程序只能由計算機可以解釋和執(zhí)行的基本操作組成,組成計算機程序的基本單位一般稱為指令,因此簡單的說,程序就是事先編制好的具有特定功能的指令序列。9.1.1程序的概念62、程序設計既然程序是按一定次序編排的指令序列,那么編寫指令序列的過程就是程序設計。用什么來編寫指令序列?由于指令序列是給計算機執(zhí)行的,因此這些指令應該是以計算機能夠理解的語言表示的,這種語言就是程序設計語言?,F(xiàn)在能夠充當人和計算機之間的交流工具的,就是計算機語言,包括各種命令語言和程序設計語言,主要是程序設計語言。9.1.1程序的概念7*例1的FoxPro程序A=4.346B=-51.24C=8X1=(-B+SQRT(B*B-4*A*C))/(2*A)X2=(-B-SQRT(B*B-4*A*C))/(2*A)?"X1=",X1?"X2=",X29.1.1程序的概念8*例2的FoxPro程序INPUT"輸入數(shù)據(jù)到A"TOAINPUT"輸入數(shù)據(jù)到B"TOBINPUT"輸入數(shù)據(jù)到C"TOCIFB*B-4*A*C>=0X1=(-B+SQRT(B*B-4*A*C))/(2*A)X2=(-B-SQRT(B*B-4*A*C))/(2*A)?"X1=",X1?"X2=",X2ELSE?"無實數(shù)解!!"ENDIF9.1.1程序的概念9*例3的C語言程序#include<math.h>main(){floata,b,c,p,area;scanf("%f,%f,%f",&a,&b,&c);if((a+b>c)&&(a+c>b)&&(b+c>a)){p=(a+b+c)/2.0;area=sqrt(p*(p-a)*(p-b)(p-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,p=%7.2f\n,a,b,c,p);printf("area=%7.2f\n,area);}elseprintf("abc不能構(gòu)成三角形!!!");}9.1.1程序的概念10*例4的FoxPro程序sum=0n=10dowhilen<200ifmod(n,3)=0andint(n/5)<>n/5s=s+nendifstorn+1tonenddo5,10say"10~200內(nèi)被3整除但不能被5整除的所有數(shù)據(jù)之和為:"+str(s,5)9.1.1程序的概念111、算法的概念所謂算法是指解題方案的準確而完整的描述。算法是程序的靈魂,計算機程序設計的實質(zhì)是算法的設計。自從計算機廣泛用于解決現(xiàn)實問題以來,人們積累了大量的算法,這些算法是前人思想的結(jié)晶,也是新算法產(chǎn)生的基礎。學習和研究這些算法,對解決實際問題,以及研究新的算法都是極為必要的。每個算法實際上是按解題要求從所有的指令系統(tǒng)操作中選擇合適的操作所組成的一組指令序列。因此,計算機算法就是計算機能處理的操作所組成的指令序列。9.1.2算法的概念及特征12一個算法的功能不僅取決于所選用的操作,而且還與各操作之間的執(zhí)行順序有關。算法中各操作間的執(zhí)行順序稱為算法的控制結(jié)構(gòu)2、算法的基本要素一個算法通常由兩種基本要素組成,一是對數(shù)據(jù)對象的運算和操作,二是算法的控制結(jié)構(gòu)。一個算法的運算操作或控制結(jié)構(gòu)無論是簡單還是復雜,一般必須滿足以下五個重要特性:有窮性、確定性、可行性、輸入、輸出9.1.2算法的概念及特征131)有窮性對于任意一組合法輸入值,在執(zhí)行有窮步驟之后一定能結(jié)束,即:算法中的每個步驟都能在有限時間內(nèi)完成。2)確定性對于每種情況下所應執(zhí)行的操作,在算法中都有確切的規(guī)定,使算法的執(zhí)行者或閱讀者都能明確其含義及如何執(zhí)行。并且在任何條件下,算法都只有一條執(zhí)行路徑。3)可行性算法中的所有操作都必須足夠基本,都可以通過已經(jīng)實現(xiàn)的基本操作運算有限次實現(xiàn)之。4)輸入一個算法有零個或多個輸入。5)輸出一個算法有一個或多個有效信息的輸出。9.1.2算法的概念及特征143、算法的評價(算法復雜度)解決同一個問題的算法可以有多種,不同人員的設計不盡相同,其效率也存在差別,一個不好算法可能導致程序要運行幾天、幾個月甚至幾年,一個好的算法可能只要幾分種、幾秒鐘就可以完成。在設計算法時,應當遵循以下原則:首先是保證算法的正確性其次要具有良好的可讀性第三,算法應具有健壯性第四,算法執(zhí)行時間的高效性第五,降低對存儲空間的需求9.1.2算法的概念及特征15一般而言,方法有優(yōu)劣之分,算法的優(yōu)劣可以有多種不同的評價標準。例如,可以從時間上來評價,也可以從空間上來評價,或者從其他的角度來評價。人們當然愿意選擇較優(yōu)的算法。因此,為了有效解題,不僅需要保證算法的正確性,還要考慮算法的質(zhì)量,選擇合適的算法。從時間上來評價算法的優(yōu)劣,即執(zhí)行時間短的算法效率高,用算法的時間復雜度來度量。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量??梢杂盟惴ㄔ趫?zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量算法的工作量。9.1.2算法的概念及特征16例如,求1+2+…+100的結(jié)果,有人是先求1+2,再把和加上3,再加4,……,一直加到100;而高斯采取的辦法是,先將這100個數(shù)分為若干個組:(100)、(1,99)、(2,98)、……、(49,51)、(50),前面50個組每個組的和都是100,因此結(jié)果為50*100+50。當然還有其他的方法。從空間上來評價即為算法所需輔助空間越少越好,用算法的空間復雜度來度量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。9.1.2算法的概念及特征171)用自然語言表示(教材中有例)2)用傳統(tǒng)流程圖表示3)N-S流程圖4)用偽代碼表示【例】求1+2+…+100的和,算法描述如下。①將1賦值給x。②將2賦值給y。③將x與y相加,結(jié)果存放在x中。④將y加1,結(jié)果存放在y中。⑤若y大于100,則輸出結(jié)果x,算法結(jié)束,否則轉(zhuǎn)步驟③,算法繼續(xù)執(zhí)行。9.1.3算法的表示方法18【例】求1+2+…+100的和,算法描述二:①i←1,sum←0(即將1賦值給i,0賦值給sum)。②sum←sum+i(即將sum+i的結(jié)果保存到sum中)。③i←i+1。④判斷是否i≤100,如果是,轉(zhuǎn)到步驟②,否則,轉(zhuǎn)到步驟⑤。⑤輸出sum的值,算法結(jié)束。9.1.3算法的表示方法192)用傳統(tǒng)流程圖表示傳統(tǒng)流程圖是用規(guī)定的一組圖形符號、流程線和文字說明來表示各種操作的算法表示方法。9.1.3算法的表示方法處理框判斷框輸入輸出框連接點流程線起止框202)用傳統(tǒng)流程圖表示在算法設計中常用到三種基本流程控制結(jié)構(gòu),即順序、分支和循環(huán)結(jié)構(gòu)。①順序結(jié)構(gòu)。每一個基本的處理單位順序地被執(zhí)行,9.1.3算法的表示方法FT條件AB②分支結(jié)構(gòu)。又稱作選擇結(jié)構(gòu),根據(jù)邏輯條件的成立與否,選擇執(zhí)行不同的處理,當邏輯條件成立時,執(zhí)行處理A,否則執(zhí)行處理B。212)用傳統(tǒng)流程圖表示③循環(huán)結(jié)構(gòu)。當邏輯條件成立時,反復執(zhí)行處理A,直到邏輯條件不成立時結(jié)束(左)。9.1.3算法的表示方法FTA條件TFTA條件222)用傳統(tǒng)流程圖表示求1到100的自然數(shù)的和流程圖9.1.3算法的表示方法FT開始sum←0,i←1sum←sum+ii>100?輸出sum結(jié)束234)用偽代碼表示⑴賦值①給一個變量賦值變量名←表達式例s←12x←s*6.2+8②給多個變量賦相同的值變量名,變量名,變量名←表達式例x,y,z←3.5s,t←x+y9.1.3算法的表示方法244)用偽代碼表示⑵從鍵盤上輸入數(shù)據(jù)到一個變量input“數(shù)據(jù)類型”to變量名例INPUT“姓名”TOXMINPUT“數(shù)值數(shù)據(jù)”TOS⑶輸出一個或多個結(jié)果值output[“結(jié)果提示”,]表達式[,表達式……]例OUTPUT“二次方程式的根為:”,X,Youtput“1~100的數(shù)據(jù)和S=:”,sOUTPUTS9.1.3算法的表示方法254)用偽代碼表示⑷分支9.1.3算法的表示方法①單分支if<條件>

語句組endif②雙分支if<條件>

語句組Aelse語句組Bendif264)用偽代碼表示⑷分支9.1.3算法的表示方法③多分支(可省略)DOCASECASE<條件1>

語句組1CASE<條件2>

語句組2……CASE<條件N>

語句組NOTHER

語句組N+1ENDCASE【注】邏輯運算符3個:

NOTANDOR274)用偽代碼表示⑸循環(huán)9.1.3算法的表示方法①DOWHILE/ENDDO結(jié)構(gòu)(當條件為真時執(zhí)行循環(huán)體)DOWHILE<條件>循環(huán)體ENDDO②FOR/NEXT結(jié)構(gòu)(不超越終值時執(zhí)行循環(huán)體)FOR循環(huán)控制變量=初值(表達式)TO終值(表達式)STEP步長值(表達式)

循環(huán)體NEXT28綜合舉例:【例1】求數(shù)列1,1,2,3,5,8,13,21……前30項的數(shù)據(jù)和。X,Y←1N,S←2DOWHILEN<30G←X+YX←YY←GS←S+YN←N+1ENDDOOUTPUT“數(shù)列1,1,2,3,5,8,13,21……前30項的數(shù)據(jù)和S=”,SOUTPUT“數(shù)列當前項為”,N9.1.3算法的表示方法29【例2】從鍵盤上任意輸入十個非負數(shù)據(jù),求平均值。sum←0count←1dowhilecount≤10input“輸入數(shù)值數(shù)據(jù)”tox

溫馨提示

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

評論

0/150

提交評論