版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十章程序設(shè)計(jì)基礎(chǔ)--1第十章程序設(shè)計(jì)基礎(chǔ)綱要算法2VB入門33程序與程序設(shè)計(jì)★31210.1程序與程序設(shè)計(jì)程序與程序設(shè)計(jì)31程序設(shè)計(jì)語言的發(fā)展32常見的程序設(shè)計(jì)語言333軟件=計(jì)算機(jī)程序+文檔資料10.1.1程序與程序設(shè)計(jì)計(jì)算機(jī)是依靠硬件和軟件的配合進(jìn)行工作的,硬件是計(jì)算機(jī)系統(tǒng)的基礎(chǔ),軟件附著在硬件上,指揮和控制硬件工作。那么,軟件是什么呢?
計(jì)算機(jī)程序(核心)文檔資料軟件軟件安裝說明書
用戶使用手冊(cè)
有關(guān)技術(shù)資料、服務(wù)信息等
10.1程序與程序設(shè)計(jì)4計(jì)算機(jī)程序=一系列指令的集合10.1程序與程序設(shè)計(jì)10.1.1程序與程序設(shè)計(jì)那么什么是計(jì)算機(jī)程序呢?事實(shí)上,為了能讓計(jì)算機(jī)解決實(shí)際問題并完成預(yù)定功能,人們需要按照解題步驟和功能要求,從計(jì)算機(jī)的指令系統(tǒng)中選出相關(guān)的指令并進(jìn)行編排(稱為編程),形成一組有序的指令集合。所以,計(jì)算機(jī)程序就是計(jì)算機(jī)為完成某一任務(wù)所必須執(zhí)行的一系列指令的集合。
而用程序設(shè)計(jì)語言(也稱計(jì)算機(jī)語言)來編寫計(jì)算機(jī)程序的過程就叫程序設(shè)計(jì)。510.1.2程序設(shè)計(jì)語言的發(fā)展計(jì)算機(jī)程序設(shè)計(jì)語言經(jīng)歷了從機(jī)器語言、匯編語言到高級(jí)語言的發(fā)展歷程。機(jī)器語言匯編語言高級(jí)語言第4代語言1GL2GL3GL4GL10.1程序與程序設(shè)計(jì)610.1.2程序設(shè)計(jì)語言的發(fā)展1.機(jī)器語言
機(jī)器語言是計(jì)算機(jī)誕生和發(fā)展初期使用的語言。機(jī)器語言程序是由0和1的二進(jìn)制代碼按一定規(guī)則組成的,并能被機(jī)器直接理解和執(zhí)行的指令集合。例如,計(jì)算A=8+12的機(jī)器語言程序如下:
10110:把8放入累加器A中
0010110000001100:12與累加器A中的值相加,結(jié)果仍放入A中
11110100:結(jié)束,停機(jī)10.1程序與程序設(shè)計(jì)710.1.2程序設(shè)計(jì)語言的發(fā)展1.機(jī)器語言
機(jī)器語言編寫的程序不僅難讀、難懂、難修改,而且不同機(jī)器使用的指令系統(tǒng)也不盡相同,所以現(xiàn)在已經(jīng)沒有人使用機(jī)器語言直接編程了。當(dāng)然,機(jī)器語言也有其優(yōu)點(diǎn),編寫的程序代碼不需要翻譯,因此占用空間少,執(zhí)行速度快。
10.1程序與程序設(shè)計(jì)810.1.2程序設(shè)計(jì)語言的發(fā)展2.匯編語言
匯編語言開始于20世紀(jì)50年代初。為了克服機(jī)器語言的缺點(diǎn),人們將機(jī)器指令的代碼用英文助記符來表示,例如用ADD表示加、JMP表示程序跳轉(zhuǎn)等。例如,計(jì)算A=8+12的匯編語言程序如下:
MOV
A,8
:把8放入累加器A中
ADD
A,12
:12與累加器A中的值相加,結(jié)果仍放入A中
HLT
:結(jié)束,停機(jī)
10.1程序與程序設(shè)計(jì)910.1.2程序設(shè)計(jì)語言的發(fā)展2.匯編語言匯編語言克服了機(jī)器語言難讀、難懂的缺點(diǎn),同時(shí)又保持了其編程質(zhì)量高,占存儲(chǔ)空間少,執(zhí)行速度快的優(yōu)點(diǎn)。故在編寫系統(tǒng)軟件和過程控制軟件時(shí),仍經(jīng)常采用匯編語言。
但匯編語言仍然是面向機(jī)器的語言。使用匯編語言編程需要直接安排存儲(chǔ),規(guī)定寄存器和運(yùn)算器的動(dòng)作次序等。此外,不同計(jì)算機(jī)的指令長度、尋址方式、寄存器數(shù)目等都不一樣,所以匯編語言程序的通用性較差。
10.1程序與程序設(shè)計(jì)1010.1.2程序設(shè)計(jì)語言的發(fā)展2.匯編語言匯編語言編寫的程序(源程序),必須經(jīng)過匯編程序(一種語言處理程序)翻譯成計(jì)算機(jī)所能識(shí)別的機(jī)器語言后,才能被計(jì)算機(jī)執(zhí)行
。
10.1程序與程序設(shè)計(jì)1110.1.2程序設(shè)計(jì)語言的發(fā)展3.高級(jí)語言
從最初與計(jì)算機(jī)交流的痛苦經(jīng)歷中,人們意識(shí)到,應(yīng)該設(shè)計(jì)一種這樣的語言,它接近于數(shù)學(xué)語言或自然語言,同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有計(jì)算機(jī)上通用。經(jīng)過努力,1954年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語言FORTRAN語言問世了。高級(jí)語言的表示形式近似于自然語言,對(duì)各種公式的表示近似于數(shù)學(xué)公式。而且,一條高級(jí)語言語句的功能往往相當(dāng)于十幾條甚至幾十條匯編語言的指令,程序編寫相對(duì)比較簡(jiǎn)單。因此,在工程計(jì)算、數(shù)據(jù)處理等方面,人們常用高級(jí)語言來編寫程序。
10.1程序與程序設(shè)計(jì)1210.1.2程序設(shè)計(jì)語言的發(fā)展3.高級(jí)語言
用高級(jí)語言編寫的程序稱為高級(jí)語言源程序,也不能直接執(zhí)行,必須經(jīng)過語言處理程序的解釋或編譯后才能執(zhí)行。10.1程序與程序設(shè)計(jì)1310.1.2程序設(shè)計(jì)語言的發(fā)展4.非過程化的程序語言
人們稱高級(jí)語言是第3代語言,其特點(diǎn)是面向過程。面向過程是指用戶在程序中不但要說明解決什么問題,還要告訴計(jì)算機(jī)如何去解決。計(jì)算機(jī)技術(shù)的發(fā)展要求新一代的計(jì)算機(jī)語言能夠根據(jù)用戶說明的問題,智能化的去自動(dòng)尋找解決方案,具有這種功能的語言稱為第4代語言(Fourth-GenerationLanguage,4GL)。目前4GL尚未發(fā)展成熟,主要面向基于數(shù)據(jù)庫應(yīng)用的領(lǐng)域(SQL),還不適用于科學(xué)計(jì)算、高速實(shí)時(shí)系統(tǒng)和系統(tǒng)軟件等的開發(fā)。10.1程序與程序設(shè)計(jì)1410.1.3常見的程序設(shè)計(jì)語言
第一個(gè)高級(jí)程序設(shè)計(jì)語言是FORTRAN語言,它是由美國IBM公司在20世紀(jì)50年代開發(fā)出來的。之后,隨著計(jì)算機(jī)應(yīng)用的發(fā)展,先后出現(xiàn)了COBOL、BASIC、PASCAL、C、C++、Java等高級(jí)語言。1.FORTRAN語言
由美國著名的計(jì)算機(jī)先驅(qū)人物約翰·巴克斯(JohnWamer)于1954年提出。FOUTRAN是FORmulaTRANslator的縮寫,意思是“公式翻譯機(jī)”。顧名思義,該語言主要用于科學(xué)計(jì)算。FORTRAN自推出之日起,版本不斷更新,功能不斷增強(qiáng),目前在工程應(yīng)用領(lǐng)域,F(xiàn)ORTRAN仍然被廣泛使用。10.1程序與程序設(shè)計(jì)1510.1.3常見的程序設(shè)計(jì)語言2.COBOL語言
COBOL(COmmonBusinessOrientedLanguage,通用事務(wù)處理語言)是在美國國防部推動(dòng)下,由政府機(jī)構(gòu)和工業(yè)界聯(lián)合開發(fā)的一種語言,于1960年正式推出,主要用于商業(yè)數(shù)據(jù)處理。
COBOL語言曾經(jīng)使用非常廣泛,20世紀(jì)70年代近一半的程序是用COBOL語言編寫的。當(dāng)前,在商業(yè)領(lǐng)域,COBOL語言仍然占有重要席位。10.1程序與程序設(shè)計(jì)1610.1.3常見的程序設(shè)計(jì)語言3.BASIC語言
BASIC(Beginner’sAll-purposeSymbolicInstructionCode,初學(xué)者的通用符號(hào)指令代碼)是1964年由美國的JohnG.Kemeny和ThomasE.Kurtz在FORTRAN語言的基礎(chǔ)上開發(fā)的。由于簡(jiǎn)單易學(xué),BASIC語言得到了廣泛普及。Microsoft公司對(duì)BASIC可謂是一往情深,從早期微型機(jī)上內(nèi)置的BASIC,到80年代產(chǎn)生的第一個(gè)編譯版本QuickBASIC,直到目前非常流行的VisualBasic,一直沒有中斷過對(duì)BASIC語言的的改進(jìn)。
最新出現(xiàn)的VisualBasic.NET,是采用Microsoft的.NET技術(shù)的VisualBasic語言。
10.1程序與程序設(shè)計(jì)1710.1.3常見的程序設(shè)計(jì)語言4.PASCAL語言
PASCAL是由瑞士計(jì)算機(jī)科學(xué)家NiklausWirth設(shè)計(jì)的一種語言,1968年提出后被全世界廣泛接受。這個(gè)語言的名字是為了紀(jì)念著名的法國數(shù)學(xué)家,也是計(jì)算科學(xué)的先驅(qū)BlaisePascal而起的。由于結(jié)構(gòu)小巧、語法嚴(yán)謹(jǐn)、數(shù)據(jù)類型豐富,從20世紀(jì)70年代末往后的很長一段時(shí)間里,PASCAL成為世界范圍的計(jì)算機(jī)專業(yè)教學(xué)語言。
20世紀(jì)80年代,隨著C語言的流行,PASCAL走向了衰落。目前,在商業(yè)上僅有Borland公司仍在開發(fā)基于PASCAL語言系統(tǒng)的Delphi,它使用了面向?qū)ο笈c軟件組件的概念,主要用于開發(fā)商用軟件。
10.1程序與程序設(shè)計(jì)1810.1.3常見的程序設(shè)計(jì)語言5.C與C++語言
C是由美國貝爾實(shí)驗(yàn)室的KennetL.Thompson和DennisM.Ritchie于1972年設(shè)計(jì)開發(fā)的,當(dāng)時(shí)主要用于編寫UNIX操作系統(tǒng)。后來由于其功能豐富、使用靈活、執(zhí)行速度快、可移植性強(qiáng),迅速成為最廣泛使用的程序設(shè)計(jì)語言之一。
C語言既可以用來開發(fā)系統(tǒng)軟件,也可以用來開發(fā)應(yīng)用軟件,應(yīng)用領(lǐng)域很廣泛。例如,在中國廣泛使用的計(jì)算機(jī)輔助設(shè)計(jì)軟件AutoCAD、數(shù)學(xué)軟件系統(tǒng)Mathematica等,以及許多語言編譯系統(tǒng)本身,其軟件系統(tǒng)的全部或部分都是用C語言開發(fā)的。C語言已經(jīng)成為最重要的軟件系統(tǒng)開發(fā)語言之一。10.1程序與程序設(shè)計(jì)1910.1.3常見的程序設(shè)計(jì)語言5.C與C++語言
1980年,貝爾實(shí)驗(yàn)室的BjarneStroustrup對(duì)C語言進(jìn)行了擴(kuò)充,加入了面向?qū)ο蟮母拍?,并?983年改名為C++。目前,C++已經(jīng)成為應(yīng)用最廣的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。Microsoft公司的VisualC++和Borland公司的C++Builder是C++語言最常用的開發(fā)工具,利用這些開發(fā)工具,可以高效率的開發(fā)出復(fù)雜的Windows應(yīng)用程序。
最新出現(xiàn)的C#語言使用了C++的語法和語義,是基于Microsoft公司推出的新一代軟件開發(fā)環(huán)境.NET平臺(tái)的高級(jí)程序設(shè)計(jì)語言。10.1程序與程序設(shè)計(jì)2010.1.3常見的程序設(shè)計(jì)語言6.Java語言
Java是Sun公司開發(fā)的一種跨平臺(tái)的網(wǎng)絡(luò)編程語言,于1995年正式發(fā)布。其語言風(fēng)格與C++接近,但舍棄了C++中一些不常用或容易被誤用的成分,如指針等。
Java語言最主要的特點(diǎn)是,同一個(gè)Java程序不用重新編譯就可以在不同平臺(tái)的計(jì)算機(jī)上運(yùn)行。Java在網(wǎng)絡(luò)上的獨(dú)特優(yōu)勢(shì)以及其跨平臺(tái)的特點(diǎn),使得它已經(jīng)成為Internet上最受歡迎的編程語言之一。10.1程序與程序設(shè)計(jì)2110.1.3常見的程序設(shè)計(jì)語言7.網(wǎng)頁設(shè)計(jì)類語言
目前,最常用的3種動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)語言有ASP(ActiveServerPages)、JSP(JavaServerPages)、PHP(HypertextPreprocessor)。三者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。
ASP是一個(gè)Web服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和執(zhí)行動(dòng)態(tài)的、互動(dòng)的、高性能的Web服務(wù)應(yīng)用程序。ASP支持VBScript、JScript等腳本語言。JSP是用Java語言作為腳本語言的,并可以在Servlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語言。它大量地借用C、Java和Perl語言的語法,并融合PHP自己的特性,使Web開發(fā)者能夠快速地寫出動(dòng)態(tài)生成頁面。10.1程序與程序設(shè)計(jì)2210.2算法算法的基本概念31算法的特征32算法的表示方法33算法的評(píng)價(jià)34常用算法★352310.2算法10.2.1算法的基本概念廣義的說,為解決一個(gè)問題而采取的方法和步驟,就稱為“算法”。本書所關(guān)心的當(dāng)然只限于“計(jì)算機(jī)算法”。所謂的計(jì)算機(jī)算法就是使用計(jì)算機(jī)來解決一個(gè)問題時(shí)所采取的特定方法和步驟。2410.2算法10.2.1算法的基本概念例如,要求出1+2+3+…+100的和,可設(shè)計(jì)如下的計(jì)算機(jī)算法。設(shè)兩個(gè)變量:一個(gè)變量sum用來存放求和的結(jié)果,另一個(gè)變量i用來存放每次被加的數(shù)值;
S1:使0=>sum;S2:使1=>i;
S3:使i的值累加到sum中,即sum+i=>sum;
S4:使i的值加1,i+1=>i;
S5:如果i<=100,返回S3繼續(xù)執(zhí)行;否則,算法結(jié)束。最后得到的sum的值就是要求的和。2510.2算法10.2.1算法的基本概念算法設(shè)計(jì)完成后,用某種程序設(shè)計(jì)語言描述出來就是計(jì)算機(jī)程序了。
算法與程序設(shè)計(jì)語言及程序的關(guān)系如圖所示。
2610.2.2算法的特征1.確定性算法的描述必須無歧義,以保證算法的執(zhí)行結(jié)果是確定的。
2.可行性
算法中的每一步操作都必須是可執(zhí)行的,也就是說算法中每一步都能通過手工或機(jī)器在有限時(shí)間內(nèi)完成。
3.輸入
一個(gè)算法有0個(gè)或多個(gè)輸入,在算法運(yùn)算開始之前給出算法所需數(shù)據(jù)的初值,這些輸入取自特定的對(duì)象集合。4.輸出
作為算法運(yùn)算的結(jié)果,一個(gè)算法產(chǎn)生一個(gè)或多個(gè)輸出,輸出是同輸入有某種特定關(guān)系的量。5.有窮性
一個(gè)算法總是在執(zhí)行了有窮步的運(yùn)算后終止,即該算法是可達(dá)的。10.2算法2710.2算法10.2.3算法的表示方法算法有很多種表示方法,常用的有自然語言、流程圖、N-S圖、偽代碼等。
1.自然語言用人們?nèi)粘J褂玫恼Z言,即自然語言來描述算法通俗易懂,但存在以下缺陷:
(1)易產(chǎn)生歧義,往往要根據(jù)上下文才能判別其確切含義;
(2)語句繁瑣、冗長,尤其是描述包含選擇和循環(huán)的算法時(shí),不太方便。因此,一般不用自然語言來描述算法,除非是很簡(jiǎn)單的問題。2810.2算法10.2.3算法的表示方法2.流程圖流程圖是用如圖所示的一些圖框、線條以及文字說明來描述算法。
流程圖表示的算法形象、直觀,便于交流。因此被廣泛使用。2910.2算法流程圖順序結(jié)構(gòu)入口分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)P條件,A語句1,B語句2出口AB出口入口nPAByP當(dāng)型出口入口nyA直到型P出口入口nyA30真假要求出1+2+3+…+100的和開始結(jié)束0→s1→i輸出si<=100s+i→si+1→i3110.2算法10.2.3算法的表示方法3.N-S圖
N-S圖是一種簡(jiǎn)化的流程圖,去掉了流程圖中的流程線,全部算法寫在一個(gè)矩形框內(nèi)。N-S圖三種基本結(jié)構(gòu)——順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的符號(hào)如圖所示。
N-S圖表示算法直觀、形象,且比流程圖緊湊易畫。實(shí)際應(yīng)用中也經(jīng)常采用。3210.2算法10.2.3算法的表示方法4.偽代碼
用流程圖和N-S圖表示算法直觀易懂,但畫起來比較費(fèi)事,尤其當(dāng)設(shè)計(jì)一個(gè)復(fù)雜算法并需要反復(fù)修改時(shí),就更加麻煩。為了設(shè)計(jì)算法時(shí)方便,常用一種稱為偽代碼的工具。所謂“偽代碼”就是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)來描述算法。偽意味著假,因此用偽代碼寫的算法是一種假代碼——不能被計(jì)算機(jī)所理解,但便于轉(zhuǎn)換成某種語言編寫的計(jì)算機(jī)程序。用偽代碼寫算法并無固定的、嚴(yán)格的語法規(guī)則,只要意思表達(dá)清楚,書寫格式清晰易讀即可。3310.2.4算法的評(píng)價(jià)1.正確性:無歧義,四個(gè)含義:
a.程序不含語法錯(cuò)誤;
b.程序?qū)捉M輸入的數(shù)據(jù)能夠得出滿足規(guī)格說明要求的結(jié)果;
c.程序?qū)τ诰倪x擇的典型、苛刻而帶有刁難性的幾組數(shù)據(jù)能夠得出滿足規(guī)格說明要求的結(jié)果;
d.程序?qū)τ谝磺泻戏ǖ妮斎霐?shù)據(jù)都能產(chǎn)生滿足規(guī)格說明要求的結(jié)果。達(dá)到d層的正確性極為困難,一般以c層作為正確性的衡量標(biāo)準(zhǔn)。2.可讀性:有助于對(duì)算法的閱讀、交流、理解、調(diào)試和修改。3.健壯性:對(duì)非法輸入數(shù)據(jù),能適當(dāng)作出反映或進(jìn)行處理。4.效率與低存儲(chǔ)量要求:時(shí)間復(fù)雜度和空間復(fù)雜度10.2算法3410.2算法10.2.4算法的評(píng)價(jià)時(shí)間復(fù)雜度:是從算法效率的角度來考慮的,指依據(jù)算法編寫出的程序在計(jì)算機(jī)上運(yùn)行所消耗的時(shí)間。常常從算法中選取一種基本操作,以該基本操作重復(fù)執(zhí)行的次數(shù)作為算法的時(shí)間復(fù)雜度。空間復(fù)雜度:指依據(jù)算法編寫出的程序在計(jì)算機(jī)上運(yùn)行時(shí)所占存儲(chǔ)空間的大小。通常也用算法所占輔助存儲(chǔ)空間大小的數(shù)量級(jí)來表示算法的空間復(fù)雜度。
3510.2算法10.2.5常用算法1.交換兩個(gè)變量的值
引例:設(shè)有兩個(gè)杯子A和B,分別盛放酒和醋,要求將它們互換。S1:C←AS2:A←BS3:B←C3610.2算法10.2.5常用算法1.交換兩個(gè)變量的值
已知變量x和y中分別存放了數(shù)據(jù),現(xiàn)在要交換其中的數(shù)據(jù)。為了達(dá)到交換的目的,需要引進(jìn)一個(gè)中間變量m(每個(gè)變量代表著一塊內(nèi)存區(qū)域),其算法如下:①將x中的數(shù)據(jù)送給變量m,即x→m;②將y中的數(shù)據(jù)送給變量x,即y→x;③將m中的數(shù)據(jù)送給變量y,即m→y。自然語言描述算法37開始結(jié)束輸入x,yx→my→xm→y輸出x,y開始輸入x,yx→my→xm→y輸出x,y結(jié)束流程圖NS流程圖3810.2算法10.2.5常用算法2.累加和累乘
累加和累乘是程序設(shè)計(jì)常用的算法,累加是指將數(shù)值不斷的累加到累加器上,如前面所介紹的1+2+3+…+100。累加器,存放累加和的變量。sum+xsum=sum+x累加器,sum為累加器變量3910.2算法10.2.5常用算法2.累加和累乘
例:5+10+15+…+100請(qǐng)同學(xué)們討論有多少種算法?算法1、直接賦值。如右圖注意:實(shí)際編程時(shí),省略號(hào)也必須換成數(shù)字,顯然本例中只有20個(gè)數(shù)字累加,還可以用這種方法,如果有幾萬個(gè)數(shù)字累加,這種方法就沒有辦法實(shí)現(xiàn)。4010.2算法10.2.5常用算法2.累加和累乘
例:5+10+15+…+100請(qǐng)同學(xué)們討論有多少種算法?算法2、使用公式。(5+100)+(10+95)+(15+90)+…+(50+55)
=105*10注意:本例中,根據(jù)數(shù)字規(guī)律可以使用上面的公式。但不具有通用性。4110.2算法10.2.5常用算法算法3、使用累加。使用循環(huán)變量i,取5~100之間的數(shù)字,步長為5。5*(1+2+3+…+20),循環(huán)變量i,取1~20之間的數(shù)字,步長為1請(qǐng)看右圖。真假4210.2算法10.2.5常用算法算法3、使用累加。使用循環(huán)變量i,取5~100之間的數(shù)字,步長為5。5*(1+2+3+…+20),循環(huán)變量i,取1~20之間的數(shù)字,步長為1請(qǐng)看右圖。真假4310.2算法10.2.5常用算法算法4、使用枚舉。使循環(huán)變量i取1~100之間的每個(gè)整數(shù),步長為1。
在循環(huán)中只有當(dāng)i是5的倍數(shù)時(shí)才將i累加到S中。請(qǐng)看右圖,這種方法的通用性最好。真真假假4410.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.根據(jù)條件確定答案的范圍,利用循環(huán)將范圍內(nèi)所有可能的情況一一列出。2.對(duì)所有可能的情況逐一驗(yàn)證。若某個(gè)情況符合條件,則為一個(gè)解;若全部情況均不符合條件,則問題無解。4510.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.m的因子范圍為1-m之間的整數(shù)。2.設(shè)置變量i取1-m之間的每個(gè)整數(shù),對(duì)i的每個(gè)取值進(jìn)行判斷。例:顯示出正整數(shù)m的所有因子。真假假真4610.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.m和n最大公約數(shù)的范圍為n~1之間的整數(shù)。2.設(shè)置變量i從n開始向1變化,當(dāng)找到第一個(gè)能夠同時(shí)整除m和n的數(shù),即是m、n最大公約數(shù)。例:顯示出正整數(shù)m和n的最大公約數(shù)(m>=n)。真假假真4710.2算法10.2.5常用算法4.遞推法(迭代法)
從初值出發(fā),歸納出新值與舊值間的關(guān)系,利用循環(huán)來完成迭代,每次循環(huán)時(shí)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。例:猴子吃桃子問題。小猴有桃若干,每天吃掉現(xiàn)有數(shù)的一半多一個(gè),到第7天要吃時(shí)只剩下一個(gè)了,問小猴原有桃子多少個(gè)?設(shè)第n天的桃子為xn,它是前一天的桃子數(shù)的一半少1個(gè),遞推公式xn-1=(xn+1)×24810.2算法10.2.5常用算法4.遞推法(迭代法)
4910.2算法10.2.5常用算法5.求最值
如果要求最大值,在n個(gè)數(shù)中先假設(shè)第1個(gè)數(shù)為最大值并存入變量max,用變量max依次同第2、3、…、n個(gè)數(shù)據(jù)逐一比較,一旦某個(gè)數(shù)比max大,則用這個(gè)數(shù)來替換max中原有的值,所有數(shù)比較完,最大值也就獲得(打擂法)。5010.2算法10.2.5常用算法5.求最值
例:輸入三個(gè)數(shù),輸出其中的最大值。5110.2算法10.2.5常用算法5.求最值
例:輸入n個(gè)數(shù),輸出其中的最小值。52VisualBasic入門第二講1.VB簡(jiǎn)介2.VB安裝與啟動(dòng)3.VB的編程環(huán)境4.VB應(yīng)用程序設(shè)計(jì)的基本步驟531.VB的發(fā)展2.VB的特點(diǎn)1.VB簡(jiǎn)介VisualBasic是Microsoft公司于1991年在BASIC語言基礎(chǔ)上開發(fā)出的新一代的、面向?qū)ο蟮?、可視化的、以事件?qū)動(dòng)為運(yùn)行機(jī)制的程序設(shè)計(jì)語言。1992年至1997年,陸續(xù)推出2.0版、3.0版、4.0版、5.0版。1998年,推出了VisualBasic6.0版。Windows2000成功推出后,Microsoft公司又推出了功能更強(qiáng)的版本VB.net。541.VB的發(fā)展2.VB的特點(diǎn)可視化的編程面向?qū)ο蟮某绦蛟O(shè)計(jì)事件驅(qū)動(dòng)的編程機(jī)制結(jié)構(gòu)化程序設(shè)計(jì)語言強(qiáng)大的數(shù)據(jù)庫訪問能力1.VB簡(jiǎn)介551.VB的安裝2.VB的啟動(dòng)2.
VB的安裝與啟動(dòng)3.VB的退出1.安裝要求硬件要求:586以上CPU,16MB以上內(nèi)存,100MB以上硬盤等。軟件要求:Windows95/98/2000/XP或WindowsNT。2.安裝安裝步驟:將光盤插入光驅(qū),根據(jù)安裝程序的提示,逐一回答問題,如接受協(xié)議、輸入序列號(hào)、單擊“下一步”等,即可完成安裝。
VisualBasic6.0的聯(lián)機(jī)幫助文件使用MSDN(MicrosoftDeveloperNetworkLibrary)文檔的幫助方式,與VB6.0系統(tǒng)不在同一CD盤上,而與“VisualStudio6.0”產(chǎn)品的幫助集合在兩張CD盤上,在安裝過程中系統(tǒng)會(huì)提示插入MSDN盤。561.VB的安裝2.VB的啟動(dòng)3.VB的退出啟動(dòng)運(yùn)行VisualBasic有以下三種啟動(dòng)方式:1.通過“開始”按鈕單擊桌面上的“開始”/“程序”菜單,然后打開“MicrosoftVisualStudio6.0中文版”子菜單中的“MicrosoftVisualBasic6.0中文版”程序,即可啟動(dòng)VB6.0。2.利用快捷方式若桌面上有VB6.0的快捷圖標(biāo),雙擊快捷圖標(biāo)也可啟動(dòng)VB6.0。3.利用運(yùn)行命令可以在“開始”菜單的運(yùn)行對(duì)話框中輸入如下命令來啟動(dòng)VB6.0。
C:\ProgramFiles\MicrosoftVisualStudio\VB98\VB6.exe2.
VB的安裝與啟動(dòng)571.VB的安裝2.VB的啟動(dòng)3.VB的退出退出
1.菜單文件/退出方式;
2.標(biāo)題欄關(guān)閉按鈕方式;
3.快捷鍵Alt+F4方式。2.
VB的安裝與啟動(dòng)581.主窗口3.VB的編程環(huán)境1.主窗口:是設(shè)計(jì)者的工作環(huán)境,由標(biāo)題欄、菜單欄和工具欄組成,還包含各功能窗口。2.屬性窗口:所有窗體或控件的屬性設(shè)置。3.代碼窗口:編輯窗體、標(biāo)準(zhǔn)模塊的代碼。4.工程資源管理器窗口:保存應(yīng)用程序所有文件。5.立即窗口:為調(diào)試應(yīng)用程序而設(shè)置的。6.窗體(form)窗口:設(shè)計(jì)VB程序的界面。7.工具箱窗口:供用戶在窗體上設(shè)計(jì)的各種控件的制作工具。2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口591.主窗口:?jiǎn)?dòng)VB進(jìn)入“新建工程”窗口,選擇“標(biāo)準(zhǔn)EXE”,打開主窗口。其他窗口包含在其中1.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口3.VB的編程環(huán)境601.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口標(biāo)題欄菜單欄工具欄窗體窗口代碼窗口窗體布局窗口屬性窗口工程資源管理窗口立即窗口工具箱窗口3.VB的編程環(huán)境61標(biāo)準(zhǔn)工具欄添加標(biāo)準(zhǔn)工程添加窗體菜單編輯器打開工程保存工程剪切復(fù)制粘貼查找撤消重復(fù)啟動(dòng)工程結(jié)束工程中斷工程工程資源管理器屬性窗口窗體布局窗口對(duì)象瀏覽器工具箱數(shù)據(jù)視圖窗口控件管理器1.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口3.VB的編程環(huán)境62對(duì)象列表框?qū)傩燥@示排列方式屬性列表框?qū)傩越忉尶驅(qū)傩悦麑傩灾祵傩源翱?.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口3.VB的編程環(huán)境63代碼窗口對(duì)象列表框代碼框過程查看按鈕過程列表框全模塊查看按鈕事件過程模板1.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口3.VB的編程環(huán)境64工程資源管理器窗口查看代碼折疊按鈕展開按鈕切換文件夾查看對(duì)象工程文件名窗體文件名1.主窗口2.屬性窗口3.代碼窗口4.工程資源管理器窗口7.工具箱窗口5.立即窗口6.窗體布局窗口3.VB的編程環(huán)境65立即窗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版高端壓路機(jī)銷售與技術(shù)支持合同3篇
- 二零二五年度企業(yè)員工借款利率調(diào)整及還款計(jì)劃合同3篇
- 2024年股權(quán)轉(zhuǎn)讓合同樣本
- 2024消防工程承包協(xié)議
- 2025版國際貿(mào)易融資貸款合同保證擔(dān)保3篇
- 2024版國際貿(mào)易采購合同中英文對(duì)照本一
- 2025年度橄欖樹苗種植園合作合同3篇
- 2024版招標(biāo)文件編寫與協(xié)議定價(jià)策略版B版
- 2024煤炭購銷居間服務(wù)與保障協(xié)議3篇
- 二零二五年度個(gè)人教育培訓(xùn)場(chǎng)地租賃合同范本6篇
- 2024年?duì)I銷部工作人員安全生產(chǎn)責(zé)任制(2篇)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之3:4組織環(huán)境-4.1理解組織及其環(huán)境(雷澤佳編制-2025B0)
- 2024年國家低壓電工電工作業(yè)證理論考試題庫(含答案)
- 2025年上半年山西呂梁市柳林縣招聘畢業(yè)生70人到村(社區(qū))工作(第二批)重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 2024年非煤礦山年終安全生產(chǎn)工作總結(jié)
- 部編版2024-2025學(xué)年三年級(jí)上冊(cè)語文期末測(cè)試卷(含答案)
- 研發(fā)部年終總結(jié)(33篇)
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范
- 游戲綜合YY頻道設(shè)計(jì)模板
- 紡紗學(xué)-ppt課件
- (高清版)嚴(yán)寒和寒冷地區(qū)居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)JGJ26-2018
評(píng)論
0/150
提交評(píng)論