算法與程序設(shè)計(jì)(高中選修)復(fù)習(xí)資料_第1頁(yè)
算法與程序設(shè)計(jì)(高中選修)復(fù)習(xí)資料_第2頁(yè)
算法與程序設(shè)計(jì)(高中選修)復(fù)習(xí)資料_第3頁(yè)
算法與程序設(shè)計(jì)(高中選修)復(fù)習(xí)資料_第4頁(yè)
算法與程序設(shè)計(jì)(高中選修)復(fù)習(xí)資料_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上主題一 利用計(jì)算機(jī)解決問題的基本過程專心-專注-專業(yè)點(diǎn)擊考點(diǎn)1、 了解利用計(jì)算機(jī)解決問題的基本過程2、 了解問題分析與算法設(shè)計(jì)之間的關(guān)系3、 了解算法的基本特征4、 能用自然語(yǔ)言、流程圖或偽代碼描述算法5、 了解程序設(shè)計(jì)語(yǔ)言產(chǎn)生與發(fā)展過程考點(diǎn)注解1、 了解利用計(jì)算機(jī)解決問題的基本過程 一般來說,用計(jì)算機(jī)解決一個(gè)具體問題時(shí),大致經(jīng)過以下幾個(gè)步驟:首先要從具體問題抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法,最后編出程序進(jìn)行測(cè)試調(diào)整直道到最終解答。尋求數(shù)學(xué)模型的實(shí)質(zhì)就是分析問題,從中提取操作的對(duì)象,并找出這些操作對(duì)象之間含有的關(guān)系,然后用數(shù)學(xué)的語(yǔ)言加以描述。2

2、、 了解問題分析與算法設(shè)計(jì)之間的關(guān)系 任何一個(gè)問題必須弄清楚其內(nèi)容、性質(zhì)、規(guī)模,才能找到解決問題的方法,所以分析問題就是要確定用計(jì)算機(jī)做什么,接下來,就解決怎么做的問題,也就是算法。 算法就是解決問題的方法與步驟。有了算法才能轉(zhuǎn)化成指令代碼,計(jì)算機(jī)才能按照指令代碼一步一步去執(zhí)行,直到得到問題的解。 算法是程序設(shè)計(jì)的靈魂,算法獨(dú)立于任何一種程序設(shè)計(jì)語(yǔ)言,一個(gè)算法可以用多種程序設(shè)計(jì)語(yǔ)言來實(shí)現(xiàn)。 一個(gè)問題,可能有多種算法 ,應(yīng)該通過分析、比較、挑選一種最優(yōu)的算法。一個(gè)好算法必須用到科學(xué)的方法 ,應(yīng)該好好學(xué)習(xí)各學(xué)科處理問題的科學(xué)方法。3、 了解算法的基本特征 一個(gè)算法應(yīng)該具有以下特征: 1)有窮性:一

3、個(gè)算法必須保證它的執(zhí)行步驟是有限的,即它是能終止的。 2)確定性:算法中的每一個(gè)步驟必須有確切的含義,而不應(yīng)當(dāng)是模糊的,模棱兩可的。 3)可行性:算法的每一步原則上都能精確運(yùn)行 4)有零個(gè)或多個(gè)輸入:所謂輸入是指算法在執(zhí)行時(shí)需要從外界獲得數(shù)據(jù),其目的是為算法建立某些初始狀態(tài)。如果建立初始狀態(tài)所需的數(shù)據(jù)已經(jīng)包含在算法中了,那就不再需要輸入了。 5)有一個(gè)或多個(gè)輸出:算法的目的是用來求解問題的,問題求解的結(jié)果應(yīng)以一定的形式輸出。4、 能用自然語(yǔ)言、流程圖或偽代碼描述算法 一個(gè)算法可以用多種不同的方法來描述。一般用自然語(yǔ)言、流程圖、偽代碼描述。 1)自然語(yǔ)言 自然語(yǔ)言是人們?nèi)粘K玫恼Z(yǔ)言,如漢語(yǔ)、英

4、語(yǔ)、德語(yǔ)等。用自然語(yǔ)言描述算法符合我們的表達(dá)習(xí)慣,并且容易理解。缺點(diǎn):書寫較煩、不確定性、對(duì)復(fù)雜的問題難以表達(dá)準(zhǔn)確、不能被計(jì)算機(jī)識(shí)別和執(zhí)行。 用自然語(yǔ)言描述一下解決以下問題的算法:借助一個(gè)空杯將一杯橙汁和一杯可樂互換所盛放的杯子。 (1) 橙汁倒入空杯; (2) 可樂倒入剛空出的杯子; (3) 橙汁倒入剛倒出可樂的杯子 2)流程圖 流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。也稱為程序框圖,它是算法的一種圖形化表示方法。優(yōu)點(diǎn):形象、直觀、容易理解。 由鍵盤輸入一個(gè)任意值作為 n,求1到 n 的累加值。 用流程圖的方法

5、描述一下求一元二次方程 ax2+bx+c=0 (其中 a0 )的實(shí)數(shù)解的算法。Input 三個(gè)實(shí)數(shù)值(其中 a0 ) To a,b,c d=b2-4*a*c If d 大于等于 0 Then X1= ( -b-d ) /2*a X2= ( -b+d ) /2*a 輸出 X1和 X2的值 Else 輸出方程無實(shí)數(shù)解 3)偽代碼 偽代碼是介于自然語(yǔ)言和計(jì)算機(jī)程序語(yǔ)言之間的一種算法描述。 優(yōu)點(diǎn):簡(jiǎn)潔、易懂、修改容易 缺點(diǎn):不直觀、錯(cuò)誤不容易排查 比如: IF 九點(diǎn)以前 THEN do 私人事務(wù); ELSE 9點(diǎn)到18點(diǎn) THEN 工作; ELSE 下班; END IF這樣不但可以達(dá)到文檔的效果,同時(shí)

6、可以節(jié)約時(shí)間. 更重要的是,使結(jié)構(gòu)比較清晰,表達(dá)方式更加直觀. 5、 了解程序設(shè)計(jì)語(yǔ)言產(chǎn)生與發(fā)展過程程序設(shè)計(jì)語(yǔ)言泛指一切用于書寫計(jì)算機(jī)程序的語(yǔ)言。計(jì)算機(jī)語(yǔ)言的發(fā)展經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言的歷程,如圖1-1所示。1) 機(jī)器語(yǔ)言(Machine Language)計(jì)算機(jī)使用的是由“0”和“1”組成的二進(jìn)制數(shù),二進(jìn)制編碼方式是計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。計(jì)算機(jī)發(fā)明之初,科學(xué)家只能用二進(jìn)制數(shù)編制的指令控制計(jì)算機(jī)運(yùn)行。每一條計(jì)算機(jī)指令均由一組“0”、“1”數(shù)字,按一定的規(guī)則排列組成,若要計(jì)算機(jī)執(zhí)行一項(xiàng)簡(jiǎn)單的任務(wù),需要編寫大量的這種指令。這種有規(guī)則的二進(jìn)制數(shù)組成的指令集,就是機(jī)器語(yǔ)言(也稱為指令系統(tǒng))。

7、不同系列的CPU,具有不同的機(jī)器語(yǔ)言,如目前個(gè)人計(jì)算機(jī)中常用AMD公司的系列CPU和Intel公司的系列CPU,具有不同的機(jī)器語(yǔ)言。機(jī)器語(yǔ)言是計(jì)算機(jī)唯一能識(shí)別并直接執(zhí)行的語(yǔ)言,與匯編語(yǔ)言或高級(jí)語(yǔ)言相比,其執(zhí)行效率高。但其可讀性差,不易記憶;編寫程序既難又繁,容易出錯(cuò);程序調(diào)試和修改難度巨大,不容易掌握和使用。此外,因?yàn)闄C(jī)器語(yǔ)言直接依賴于中央處理器,所以用某種機(jī)器語(yǔ)言編寫的程序只能在相應(yīng)的計(jì)算機(jī)上執(zhí)行,無法在其他型號(hào)的計(jì)算機(jī)上執(zhí)行,也就是說,可移植性差。 2)匯編語(yǔ)言(Assemble Language)為了減輕使用機(jī)器語(yǔ)言編程的痛苦,20世紀(jì)50年代初,出現(xiàn)了匯編語(yǔ)言。匯編語(yǔ)言用比較容易識(shí)別、

8、記憶的助記符替代特定的二進(jìn)制串。下面是幾條Intel80x86的匯編指令:ADD AX , BX ;表示將寄存器AX 和 BX 中的內(nèi)容相加,結(jié)果保存在寄存器AX中。SUB AX , NUM ;表示將寄存器AX中的內(nèi)容減去NUM,結(jié)果保存在寄存器AX中。MOV AX , NUM ;表示把數(shù)NUM保存在寄存器AX中。通過這種助記符,人們就能較容易地讀懂程序,調(diào)試和維護(hù)也更方便了。但這些助記符號(hào)計(jì)算機(jī)無法識(shí)別,需要一個(gè)專門的程序?qū)⑵浞g成機(jī)器語(yǔ)言,這種翻譯程序被稱為匯編程序。匯編語(yǔ)言的一條匯編指令對(duì)應(yīng)一條機(jī)器指令,與機(jī)器語(yǔ)言性質(zhì)上是一樣的,只是表示方式做了改進(jìn),其可移植性與機(jī)器語(yǔ)言一樣不好??傊?,

9、匯編語(yǔ)言是符號(hào)化的機(jī)器語(yǔ)言,執(zhí)行效率仍接近于機(jī)器語(yǔ)言,因此,匯編語(yǔ)言至今仍是一種常用的軟件開發(fā)工具。 3) 高級(jí)語(yǔ)言盡管匯編語(yǔ)言比機(jī)器語(yǔ)言方便,但匯編語(yǔ)言仍然具有許多不便之處,程序編寫的效率遠(yuǎn)遠(yuǎn)不能滿足需要。1954年,第一個(gè)高級(jí)語(yǔ)言FORTRAN問世了。高級(jí)語(yǔ)言是一種用能表達(dá)各種意義的“詞”和“數(shù)學(xué)公式”按一定的“語(yǔ)法規(guī)則”編寫程序的語(yǔ)言,也稱為高級(jí)程序設(shè)計(jì)語(yǔ)言或算法語(yǔ)言。半個(gè)多世紀(jì)以來,有幾百種高級(jí)語(yǔ)言問世,影響較大、使用較普遍的有FORTRAN、A LGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C+、Visual C+、Vis

10、ual Basic 、Delphi、Java等。高級(jí)語(yǔ)言的發(fā)展也經(jīng)歷了從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言、面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的過程。高級(jí)語(yǔ)言與自然語(yǔ)言和數(shù)學(xué)表達(dá)式相當(dāng)接近,不依賴于計(jì)算機(jī)型號(hào),通用性較好。高級(jí)語(yǔ)言的使用,大大提高了程序編寫的效率和程序的可讀性。與匯編語(yǔ)言一樣,計(jì)算機(jī)無法直接識(shí)別和執(zhí)行高級(jí)語(yǔ)言,必須翻譯成等價(jià)的機(jī)器語(yǔ)言程序(稱為目標(biāo)程序)才能執(zhí)行,如圖1-2所示。高級(jí)語(yǔ)言源程序翻譯成機(jī)器語(yǔ)言程序的方法有“解釋”和“編譯”兩種。解釋方法采用邊解釋邊執(zhí)行的方法,如早期的BASIC 語(yǔ)言即采用解釋方法,在執(zhí)行BASIC 源程序時(shí),解釋一條BASIC語(yǔ)句,執(zhí)行一條語(yǔ)句。編譯方法采用相應(yīng)語(yǔ)言

11、的編譯程序,先把源程序編譯成指定機(jī)型的機(jī)器語(yǔ)言目標(biāo)程序,然后再把目標(biāo)程序和各種標(biāo)準(zhǔn)庫(kù)函數(shù)連接裝配成完整的目標(biāo)程序,在相應(yīng)的機(jī)型上執(zhí)行。如C、C+、Visual C+及Visual Basic等均采用編譯的方法。編譯方法比解釋方法更具有效率。同步集訓(xùn)一、選擇題1、人們利用計(jì)算機(jī)解決問題的基本過程一般有如下五個(gè)步驟(),請(qǐng)按各步驟的先后順序在下列選項(xiàng)(AD)中選擇正確的答案(    )調(diào)試運(yùn)行程序 分析問題 設(shè)計(jì)算法 問題解決 編寫程序A、B、C、D、2、在下圖中利用計(jì)算機(jī)解決問題的基本步驟流程圖中,對(duì)于標(biāo)注為(1)的流程線,以下說明正確的是()A 該流程線可有可無B

12、當(dāng)程序運(yùn)行不出結(jié)果時(shí),才需要該部分流程線C該部分流程線保證了問題解決的正確性D該部分流程線有錯(cuò)3、下列三種算法的描述,缺乏直觀性、簡(jiǎn)潔性,最容易產(chǎn)生歧義的是( )A、自然語(yǔ)言描述法 B、流程圖C、偽代碼4、流程圖中表示判斷的是(     )A、矩形框B、菱形框 C、圓形框D、橢圓形框5、“分支判斷”作為解決問題的算法的一個(gè)基本步驟,正是體現(xiàn)了計(jì)算機(jī)的( )能力。A、算術(shù)運(yùn)算能力B、邏輯運(yùn)算能力C、分布式運(yùn)算能力D、記憶存儲(chǔ)能力6、下面關(guān)于算法的描述,正確的是( )A、算法不可以用自然語(yǔ)言描述B、算法只能用框圖來描述C、一個(gè)算法必須保證它的執(zhí)行步驟是有限的

13、D、算法的框圖表示法有0個(gè)或多個(gè)輸入,但只能有一個(gè)輸出7、下面關(guān)于算法的描述,正確的是( )A、一個(gè)問題只有一個(gè)算法B、一個(gè)問題可能有多種算法C、能解決問題的算法都是好算法,沒優(yōu)劣之分D、算法不是程序設(shè)計(jì)所必需的8、下列關(guān)于算法的敘述,正確的是()A、解決一個(gè)問題的算法只有一種B、有窮性是算法的基本特征之一C、可行性不屬于算法基本特征D、算法對(duì)程序設(shè)計(jì)沒有任何作用9、下列關(guān)于算法的敘述,正確的是( )A、解決一個(gè)問題的算法只有一種B、算法必定有一個(gè)或一個(gè)以上的輸出C、算法中可以存在不確切的步驟D、描述算法的步驟可以是無窮的10、從以下計(jì)算S的算法可以看出,S的代數(shù)式表示是() 變量S的初值是0

14、;變量I從1起循環(huán)到N;循環(huán)表達(dá)式為S=S+(-1)*i;輸出變量S的值A(chǔ)12+34+(1)N*(N1)B12+34+(1)N1*nC1+2+3+4+(n1)+nD1234(n1)n11、下列選項(xiàng)都是屬于高級(jí)語(yǔ)言的是( )A、匯編語(yǔ)言 機(jī)器語(yǔ)言B、Basic語(yǔ)言 Pascal語(yǔ)言C、匯編語(yǔ)言 Basic語(yǔ)言 D、機(jī)器語(yǔ)言 Pascal語(yǔ)言12、下列選項(xiàng)都是屬于低級(jí)語(yǔ)言的是( )A、匯編語(yǔ)言 機(jī)器語(yǔ)言 B、Basic語(yǔ)言 Pascal語(yǔ)言C、匯編語(yǔ)言 Basic語(yǔ)言 D、機(jī)器語(yǔ)言 Pascal語(yǔ)言13、_是計(jì)算機(jī)能直接識(shí)別,理解執(zhí)行的語(yǔ)言。A、匯編語(yǔ)言 B、Pascal語(yǔ)言C、Basic語(yǔ)言 D

15、、機(jī)器語(yǔ)言14、下列關(guān)于程序設(shè)計(jì)言中機(jī)器語(yǔ)言的說法,正確的是()A、Visual Basic屬于機(jī)器語(yǔ)言的一種B、機(jī)器語(yǔ)言就是Visual BasicC、機(jī)器語(yǔ)言比高級(jí)語(yǔ)言更早出現(xiàn)D、高級(jí)語(yǔ)言比機(jī)器語(yǔ)言更早出現(xiàn)15、下列選項(xiàng)中,最先出現(xiàn)的程序設(shè)計(jì)語(yǔ)言是()A、匯編語(yǔ)言 B、高級(jí)語(yǔ)言C、Visual BasicD、機(jī)器語(yǔ)言16、不能被計(jì)算機(jī)直接識(shí)別,理解執(zhí)行的語(yǔ)言需要轉(zhuǎn)換,這種轉(zhuǎn)換是( )A、人工轉(zhuǎn)換或機(jī)器轉(zhuǎn)換B、計(jì)算機(jī)語(yǔ)言提供的解釋器或編譯器負(fù)責(zé)轉(zhuǎn)換C、操作系統(tǒng)負(fù)責(zé)轉(zhuǎn)換D、人工智能技術(shù)中的自然語(yǔ)言理解二、簡(jiǎn)答題1、簡(jiǎn)述什么是計(jì)算機(jī)程序、程序設(shè)計(jì)、程序設(shè)計(jì)語(yǔ)言、算法2、簡(jiǎn)述算法的特征。3、簡(jiǎn)述程

16、序設(shè)計(jì)語(yǔ)言的發(fā)展歷程4、高級(jí)語(yǔ)言編制的源程序計(jì)算機(jī)無法直接識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被計(jì)算機(jī)執(zhí)行。請(qǐng)問有哪些轉(zhuǎn)換方式,這些方式有什么區(qū)別?三、閱讀流程圖,寫出其處理的任務(wù)問題1、開始輸入正整數(shù)n賦初值s=0 i=1s=s+ii=i+1i>n嗎輸出s的值結(jié)束否是該流程圖處理的任務(wù)是: 備注:x mod y 是x除y的余數(shù),如10 mod 4 余數(shù)是22、該流程圖處理的任務(wù)是:開始輸入正整數(shù)n賦初值s=0 i=1s=s+ii=i+1i>n嗎輸出s的值結(jié)束否是 四、用流程圖表示如下問題的算法,由鍵盤輸入兩個(gè)整數(shù) a 、 b,輸出其中較大的數(shù)。 主題一 利用計(jì)算機(jī)解決問題的基本過程同步集訓(xùn)答案

17、一選擇題:1、D 2、C 3、A4、B5、B6、C7、B8、B9、B10、D11、B12、A13、D14、C15、D16、B6、 簡(jiǎn)答題1、計(jì)算機(jī)程序就是指計(jì)算機(jī)如何去解決問題或完成任務(wù)的一組機(jī)器操作的指令或語(yǔ)句的序列,是算法的一種描述,簡(jiǎn)稱程序。程序設(shè)計(jì)就是尋求解決問題的方法,并將其實(shí)現(xiàn)步驟編寫成計(jì)算機(jī)可以執(zhí)行的程序的過程。程序設(shè)計(jì)語(yǔ)言泛指一切用于書寫計(jì)算機(jī)程序的語(yǔ)言。算法就是解決問題的方法和步驟。2、一個(gè)算法應(yīng)該具有以下特征: 1)有窮性:一個(gè)算法必須保證它的執(zhí)行步驟是有限的,即它是能終止的。 2)確定性:算法中的每一個(gè)步驟必須有確切的含義,而不應(yīng)當(dāng)是模糊的,模棱兩可的。 3)可行性:算法

18、的每一步原則上都能精確運(yùn)行 4)有零個(gè)或多個(gè)輸入:所謂輸入是指算法在執(zhí)行時(shí)需要從外界獲得數(shù)據(jù),其目的是為算法建立某些初始狀態(tài)。如果建立初始狀態(tài)所需的數(shù)據(jù)已經(jīng)包含在算法中了,那就不再需要輸入了。 5)有一個(gè)或多個(gè)輸出:算法的目的是用來求解問題的,問題求解的結(jié)果應(yīng)以一定的形式輸出。3、計(jì)算機(jī)語(yǔ)言的發(fā)展經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言的歷程4、高級(jí)語(yǔ)言源程序翻譯成機(jī)器語(yǔ)言程序的方法有“解釋”和“編譯”兩種。解釋方法采用邊解釋邊執(zhí)行的方法,如早期的BASIC 語(yǔ)言即采用解釋方法,在執(zhí)行BASIC 源程序時(shí),解釋一條BASIC語(yǔ)句,執(zhí)行一條語(yǔ)句。編譯方法采用相應(yīng)語(yǔ)言的編譯程序,先把源程序編譯成指定機(jī)

19、型的機(jī)器語(yǔ)言目標(biāo)程序,然后再把目標(biāo)程序和各種標(biāo)準(zhǔn)庫(kù)函數(shù)連接裝配成完整的目標(biāo)程序,在相應(yīng)的機(jī)型上執(zhí)行。如C、C+、Visual C+及Visual Basic等均采用編譯的方法。編譯方法比解釋方法更具有效率。三、閱讀流程圖,寫出其處理的任務(wù)問題1、 該流程圖處理的任務(wù)是:輸入兩個(gè)數(shù)a和b,求出它們的最大公約數(shù)并輸出。2、該流程圖處理的任務(wù)是:輸入一個(gè)數(shù)n,計(jì)算并輸出1到n的和 四、用流程圖表示如下問題的算法主題二 程序設(shè)計(jì)基礎(chǔ)點(diǎn)擊考點(diǎn)1、 能夠使用可視化程序開發(fā)工具設(shè)計(jì)簡(jiǎn)單的用戶界面。2、 知道常用的數(shù)據(jù)類型、變量、常量的含義;學(xué)會(huì)定義常量、變量的數(shù)據(jù)類型。3、 知道程序中運(yùn)算符、函數(shù)、表達(dá)式的

20、表示方式,能夠轉(zhuǎn)換數(shù)學(xué)表達(dá)式為程序接受的表達(dá)式。4、 學(xué)會(huì)使用順序結(jié)構(gòu)設(shè)計(jì)程序的基本方法。5、 學(xué)會(huì)使用選擇結(jié)構(gòu)設(shè)計(jì)程序的基本方法。6、 學(xué)會(huì)使用循環(huán)結(jié)構(gòu)設(shè)計(jì)程序的基本方法。7、 了解程序的編輯與翻譯過程方法,比較編譯型語(yǔ)言與解釋型語(yǔ)言的優(yōu)勢(shì)與不足??键c(diǎn)注解7、 能夠使用可視化程序開發(fā)工具設(shè)計(jì)簡(jiǎn)單的用戶界面。Visual Basic是可視化程序設(shè)計(jì)語(yǔ)言。可視化程序讓程序設(shè)計(jì)人員利用軟件提供的各種控件,像搭積木式地構(gòu)造應(yīng)用程序的各種界面。VB的集成開發(fā)環(huán)境如下:面向?qū)ο蟮某绦蛟O(shè)計(jì)以對(duì)象為中心,以事件為過程執(zhí)行起點(diǎn)。在可視化程序開發(fā)環(huán)境中,文本框、標(biāo)簽、命令按鈕等控件都叫對(duì)象。對(duì)象的特征稱為對(duì)象的

21、屬性。在對(duì)象上發(fā)生的事情稱為事件,常用的有單擊(click),雙擊(dblclick),加載(load),按鍵(keypress)等對(duì)象能夠執(zhí)行的操作叫方法。如form1.cls的作用是清除窗體form1中的內(nèi)容。8、 知道常用的數(shù)據(jù)類型、變量、常量的含義;學(xué)會(huì)定義常量、變量的數(shù)據(jù)類型。數(shù)據(jù)是程序處理的對(duì)象,不同類型的數(shù)據(jù)有不同的處理方法。數(shù)據(jù)可以依照類型進(jìn)行分類。數(shù)據(jù)類型用于確定一個(gè)變量所具有的值在計(jì)算機(jī)內(nèi)的存儲(chǔ)方式,以及對(duì)變量可以進(jìn)行何種操作。 VB 語(yǔ)言的數(shù)據(jù)類型比較豐富,此外還可以通過數(shù)據(jù)類型定義語(yǔ)句在基本數(shù)據(jù)類型的基礎(chǔ)上定義新的數(shù)據(jù)類型(自定義數(shù)據(jù)類型)。VB數(shù)據(jù)類型常量 在程序執(zhí)行

22、過程中,其值不能改變的量稱為常量。常量可以直接用一個(gè)數(shù)來表示,稱為常數(shù)(或稱為直接常量),也可以用一個(gè)符號(hào)來表示,稱為符號(hào)常量。1)直接常量(常數(shù))各種數(shù)據(jù)類型都有其常量表示,如表所示。 2)符號(hào)常量 常量在程序中也可用符號(hào)表示。符號(hào)常量的定義格式如下:訪問權(quán)限 Const <常量名> As 數(shù)據(jù)類型=<數(shù)值>如: Const PI As Single =3.1416表示定義 PI為符號(hào)常量,代表單精度型數(shù)值3.1416。 變量 在程序執(zhí)行過程中,其值可以改變的量稱為變量。1)變量的命名規(guī)則( 1)變量名首字符必須是字母;( 2)變量名只能由字母、數(shù)字和下劃線組成;(

23、3)變量名不能使用VB中的關(guān)鍵字(保留字);( 4)變量名在同一個(gè)作用域內(nèi)必須唯一;( 5)變量名長(zhǎng)度不超過255;( 6)變量的命名最好還應(yīng)遵守一定的編程約定。 2)變量的作用域變量的作用域是指變量的有效范圍,根據(jù)變量說明方式的不同,變量有三個(gè)作用域,見表 3)變量定義語(yǔ)句 ( 1)定義模塊或過程局部變量Dim <變量名> As <類型> , <變量名> As <類型> ( 2)定義全局變量Public <變量名> As <類型> , <變量名> As <類型> 9、 知道程序中運(yùn)算符、函數(shù)、表達(dá)

24、式的表示方式,能夠轉(zhuǎn)換數(shù)學(xué)表達(dá)式為程序接受的表達(dá)式。運(yùn)算符 是在代碼中對(duì)各種數(shù)據(jù)進(jìn)行運(yùn)算的符號(hào)。例如,有進(jìn)行加、減、乘、除算術(shù)運(yùn)算的運(yùn)算符,有進(jìn)行與、或、非、異或邏輯運(yùn)算的運(yùn)算符。 表達(dá)式 是由運(yùn)算符和運(yùn)算對(duì)象及圓括號(hào)組成的一個(gè)序列,它是由常量、變量、函數(shù)等用運(yùn)算符連接而成的式子。表達(dá)式是構(gòu)成程序代碼的最基本要素。1)賦值運(yùn)算符賦值語(yǔ)句的語(yǔ)法格式為:<變量名> = <表達(dá)式> 例如:Count=5。 2)算術(shù)運(yùn)算符與算術(shù)表達(dá)式( 1)算術(shù)運(yùn)算符VB中算術(shù)運(yùn)算符有(加)、(減)、*(乘)、(除)、(整除)、mod(模運(yùn)算,求余數(shù))和(冪)。( 2)算術(shù)運(yùn)算符及優(yōu)先級(jí):(乘

25、方)*、/(整除)mod(取余)、 ( 3)算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來的式子稱為算術(shù)表達(dá)式。運(yùn)算運(yùn)算對(duì)象可以是常量、變量或函數(shù)等。例如:Dim a As Integer,x As Singlea=5x = a 2 * a - 1.5 + a 2 + a Mod 2運(yùn)算結(jié)果為 X=5 2*5-1.5+52+5 mod 2 =125-1.5+2+1=126.53)字符串運(yùn)算符VB中的字符串運(yùn)算符主要用來將兩個(gè)字符串連接成一個(gè)字符串。VB提供了兩個(gè)字符串運(yùn)算符:“&”和“+”。如: "中國(guó)" & "江蘇" "中國(guó)

26、" +"江蘇"結(jié)果均為 "中國(guó)江蘇" 4)關(guān)系運(yùn)算符與關(guān)系表達(dá)式( 1)關(guān)系運(yùn)算符VB的關(guān)系運(yùn)算符用于對(duì)兩個(gè)數(shù)據(jù)進(jìn)行比較,其運(yùn)算結(jié)果為邏輯值True或False。關(guān)系運(yùn)算符有: =、<>、<、>、>=、<=、IS(用于比較兩個(gè)對(duì)象的引用變量)。( 2)關(guān)系表達(dá)式:由常量、變量、函數(shù)等用關(guān)系運(yùn)算符連接而成的式子稱為關(guān)系表達(dá)式。例如:Dim a As Integer,b As Integer, x As Booleana=3b=5x=a<b+3運(yùn)算結(jié)果為 x=3<8=True 5)邏輯運(yùn)算符與邏輯表達(dá)

27、式 ( 1)邏輯運(yùn)算符VB中常用的邏輯運(yùn)算符有Not、And、Or 和Xor,也稱為布爾運(yùn)算符。邏輯運(yùn)算符的運(yùn)算對(duì)象應(yīng)是邏輯值或關(guān)系表達(dá)式,運(yùn)算結(jié)果為邏輯值。如表所示邏輯運(yùn)算符的優(yōu)先級(jí)為: Not(非) And(與) Or(或) Xor(異或)( 2)邏輯表達(dá)式 用邏輯運(yùn)算符將運(yùn)算對(duì)象連接起來的式子,稱為邏輯表達(dá)式。例如:5>3 And 3>1Not x Or (b>c)邏輯表達(dá)式的值是一個(gè)邏輯值,用 True或False來表示。例如,邏輯表達(dá)式5>3 And 3>1,其結(jié)果為True。6)運(yùn)算規(guī)則 運(yùn)算符優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí):算術(shù)運(yùn)算符 字符運(yùn)算符關(guān)系運(yùn)算符邏輯

28、運(yùn)算符賦值運(yùn)算符。 算術(shù)函數(shù)字符函數(shù)轉(zhuǎn)換函數(shù)日期與時(shí)間函數(shù)10、 學(xué)會(huì)使用順序結(jié)構(gòu)設(shè)計(jì)程序的基本方法。按照語(yǔ)句代碼出現(xiàn)的先后順序依次執(zhí)行的程序結(jié)構(gòu)稱為順序結(jié)構(gòu),如圖所示11、 學(xué)會(huì)使用選擇結(jié)構(gòu)設(shè)計(jì)程序的基本方法。在一種以上可能的操作中按條件選取一個(gè)執(zhí)行的結(jié)構(gòu)稱為分支結(jié)構(gòu)。( 1)兩路分支:在兩種可能的操作中按條件選取一個(gè)執(zhí)行的結(jié)構(gòu)稱為兩路分支結(jié)構(gòu),也稱雙分支結(jié)構(gòu)。左圖為雙分支結(jié)構(gòu)流程圖。( 2)多路分支:在多種可能的操作中按條件選取一個(gè)執(zhí)行的結(jié)構(gòu)稱為多分支結(jié)構(gòu)。右圖為多分支結(jié)構(gòu)流程圖,執(zhí)行時(shí)從B1至Bn依次判斷每個(gè)條件是否成立,成立時(shí),就執(zhí)行相應(yīng)的操作,如果所有條件都不成立,就執(zhí)行Sn+1操作

29、。VB中用于實(shí)現(xiàn)分支結(jié)構(gòu)程序設(shè)計(jì)的語(yǔ)句有兩種,即If與Select語(yǔ)句。1、 If 語(yǔ)句VB中有三種形式的If語(yǔ)句,分別是單分支、雙分支和多分支If語(yǔ)句。1)單分支If語(yǔ)句單分支If語(yǔ)句的使用格式通常是:If <條件> Then<語(yǔ)句>End If2)雙選條件語(yǔ)句If <條件> Then<語(yǔ)句1>Else<語(yǔ)句2>End If執(zhí)行過程:當(dāng)表達(dá)式的值為真時(shí),執(zhí)行語(yǔ)句 1,否則執(zhí)行語(yǔ)句2。3)多選條件語(yǔ)句If <條件> Then<語(yǔ)句1>ElseIf <條件2> Then<語(yǔ)句2>.Else

30、If <條件n-1> Then<語(yǔ)句n-1>Else<語(yǔ)句n>End If2、 Select Case 語(yǔ)句 當(dāng)程序中分支較多,尤其需要多重嵌套的時(shí)候,使用 If分支語(yǔ)句比較冗長(zhǎng),而且結(jié)構(gòu)也不清晰,為此VB提供了一種更加簡(jiǎn)潔的分支語(yǔ)句Select Case。該語(yǔ)句對(duì)一個(gè)結(jié)果的多種情況進(jìn)行判斷,語(yǔ)法格式如下:Select Case <條件表達(dá)式>Case <表達(dá)式1><語(yǔ)句1>Case <表達(dá)式2><語(yǔ)句2>Case <表達(dá)式n-1><語(yǔ)句n-1>Case Else<語(yǔ)句

31、n>End Select 12、 學(xué)會(huì)使用循環(huán)結(jié)構(gòu)設(shè)計(jì)程序的基本方法。按條件重復(fù)執(zhí)行一種操作的結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)有兩種形式,即當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。( 1)當(dāng)型循環(huán)結(jié)構(gòu):先進(jìn)行判斷,然后根據(jù)判斷結(jié)果(真或假)再?zèng)Q定是否執(zhí)行循環(huán)體的循環(huán)結(jié)構(gòu)稱為當(dāng)型循環(huán)結(jié)構(gòu),如左圖所示。( 2)直到型循環(huán)結(jié)構(gòu):先執(zhí)行一次循環(huán)體,然后再根據(jù)判斷結(jié)果(真或假)決定是否繼續(xù)執(zhí)行循環(huán)體的循環(huán)結(jié)構(gòu)稱為直到型循環(huán)結(jié)構(gòu),如下圖所示。從上述兩種循環(huán)結(jié)構(gòu)的流程圖可以看出,對(duì)于當(dāng)型循環(huán)結(jié)構(gòu),程序有可能一次也不執(zhí)行循環(huán)體;對(duì)于直到型循環(huán)結(jié)構(gòu),程序至少要執(zhí)行一次循環(huán)體。循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。 VB中循環(huán)語(yǔ)句有兩種:

32、DoLoop語(yǔ)句和ForNext語(yǔ)句。DoLoop語(yǔ)句是條件型循環(huán),當(dāng)循環(huán)的執(zhí)行是由條件控制,在循環(huán)的次數(shù)不確定時(shí)通常選用該語(yǔ)句;For語(yǔ)句是計(jì)數(shù)循環(huán),在循環(huán)次數(shù)已知時(shí)選用該語(yǔ)句。 1、 DoLoop 語(yǔ)句(1)當(dāng)型循環(huán)語(yǔ)句 Do WhileLoop語(yǔ)句語(yǔ)句格式為:Do While <條件表達(dá)式>語(yǔ)句LoopDo While Loop語(yǔ)句的執(zhí)行過程是,先計(jì)算條件表達(dá)式的值,當(dāng)其值為True 時(shí),執(zhí)行循環(huán)體中的語(yǔ)句序列,然后再重新計(jì)算條件表達(dá)式的值,當(dāng)條件表達(dá)式的值為False時(shí),循環(huán)終止,執(zhí)行Loop語(yǔ)句后的語(yǔ)句。 Do UntilLoop 語(yǔ)句 語(yǔ)句格式為:Do Until &l

33、t;條件>語(yǔ)句LoopDo Until Loop 語(yǔ)句的執(zhí)行過程是,先計(jì)算條件表達(dá)式的值,當(dāng)其值為False時(shí),執(zhí)行循環(huán)體中的語(yǔ)句序列,然后再重新計(jì)算條件表達(dá)式的值,直到條件表達(dá)式的值為True時(shí),循環(huán)終止,執(zhí)行Do Until Loop 語(yǔ)句的下一條語(yǔ)句。( 2)直到型循環(huán)語(yǔ)句 Do Loop While語(yǔ)句語(yǔ)句格式為:Do語(yǔ)句Loop While<條件>Do Loop While語(yǔ)句的執(zhí)行過程是:先執(zhí)行循環(huán)語(yǔ)句,再判斷條件表達(dá)式的值,當(dāng)條件條件表達(dá)式的值為True時(shí)繼續(xù)執(zhí)行循環(huán)體,當(dāng)條件表達(dá)式的值為alse結(jié)束循環(huán),轉(zhuǎn)而執(zhí)行Loop While后面的語(yǔ)句。 Do Loop

34、 Until語(yǔ)句語(yǔ)句格式為:Do語(yǔ)句Loop Until<條件>Do Loop Until語(yǔ)句的執(zhí)行過程是:先執(zhí)行循環(huán)語(yǔ)句,再判斷條件表達(dá)式的值,當(dāng)條件條件表達(dá)式的值為False時(shí)繼續(xù)執(zhí)行循環(huán)體,直到條件為True結(jié)束循環(huán)轉(zhuǎn)而執(zhí)行Loop Until后面的語(yǔ)句。2、 ForNext 語(yǔ)句在循環(huán)次數(shù)已知的情況下,采用 ForNext語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)是比較合適的選擇。ForNext語(yǔ)句的格式如下:For <循環(huán)變量>=初值 To 終值 Step 步長(zhǎng)<語(yǔ)句>Exit For <語(yǔ)句>Next <循環(huán)變量>13、 了解程序的編輯與翻譯過程方

35、法,比較編譯型語(yǔ)言與解釋型語(yǔ)言的優(yōu)勢(shì)與不足。高級(jí)語(yǔ)言與自然語(yǔ)言和數(shù)學(xué)表達(dá)式相當(dāng)接近,不依賴于計(jì)算機(jī)型號(hào),通用性較好。高級(jí)語(yǔ)言的使用,大大提高了程序編寫的效率和程序的可讀性。與匯編語(yǔ)言一樣,計(jì)算機(jī)無法直接識(shí)別和執(zhí)行高級(jí)語(yǔ)言,必須翻譯成等價(jià)的機(jī)器語(yǔ)言程序(稱為目標(biāo)程序)才能執(zhí)行,高級(jí)語(yǔ)言源程序翻譯成機(jī)器語(yǔ)言程序的方法有“解釋”和“編譯”兩種。解釋方法采用邊解釋邊執(zhí)行的方法,如早期的BASIC 語(yǔ)言即采用解釋方法,在執(zhí)行BASIC 源程序時(shí),解釋一條BASIC語(yǔ)句,執(zhí)行一條語(yǔ)句。編譯方法采用相應(yīng)語(yǔ)言的編譯程序,先把源程序編譯成指定機(jī)型的機(jī)器語(yǔ)言目標(biāo)程序,然后再把目標(biāo)程序和各種標(biāo)準(zhǔn)庫(kù)函數(shù)連接裝配成完整

36、的目標(biāo)程序,在相應(yīng)的機(jī)型上執(zhí)行。如C、C+、Visual C+及Visual Basic等均采用編譯的方法。編譯方法比解釋方法更具有效率。同步集訓(xùn)一、單項(xiàng)選擇題1以下窗口可以在設(shè)計(jì)時(shí)直觀的調(diào)整窗口在屏幕上的位置()A代碼窗口B窗體布局窗口C窗體設(shè)計(jì)窗口D屬性窗口2在VisualBasic中,所有的窗體和控件都必定具有一個(gè)屬性是()AN ame BFontCCaption DFillcolor3Visual Basic窗體設(shè)計(jì)器的主要功能是:()A建立用戶界面 B編寫源程序代碼C畫圖 D顯示文字4Visual Basic中窗體文件的擴(kuò)展名是()AVBP BFRMCVBW DPDM5當(dāng)一

37、個(gè)工程含有多個(gè)窗體時(shí),其中的啟動(dòng)窗體是()A啟動(dòng)Visual Basic時(shí)建立的窗體B第一個(gè)添加的窗體C最后一個(gè)添加的窗體D在“工程屬性”對(duì)話框中指定的窗體6在窗體上畫一個(gè)名稱為L(zhǎng)abel1的標(biāo)簽。當(dāng)單擊標(biāo)簽時(shí),在標(biāo)簽中顯示“我喜歡學(xué)習(xí)VB語(yǔ)言”。下列能實(shí)現(xiàn)上述功能的程序是()APrivate Sub Label1_Click()Label1.Caption = "我喜歡學(xué)習(xí)VB語(yǔ)言"End SubBPrivate Sub Form1_Click()Label1.Caption = "我喜歡學(xué)習(xí)VB語(yǔ)言"End SubCPrivate Sub Label

38、1_Click()Label1.Enabled = "我喜歡學(xué)習(xí)VB語(yǔ)言"End SubDPrivate Sub Label1_Click()Label1.Visible = "我喜歡學(xué)習(xí)VB語(yǔ)言"End Sub7Visual Basic中工程文件的擴(kuò)展名是()AVBP BFRMCVBW DPDM8下面的四個(gè)VB邏輯表達(dá)式語(yǔ)法中,正確的是()A.x>y.And.x<>y B.x>yzC.x>y And <>z D.x>y And y<>z9表達(dá)式”123”+”A”&100的值是()A.

39、B.123A100C.”123A100” D.10代數(shù)式ab2÷(5c+d)的VB表達(dá)式是()A.a * b b / (5 c + d) B.a×b×b / (5 × c + d)C.a * b * b / 5 * c + d D.a * b * b / (5 * c + d)11按變量名的命名規(guī)則,下面字符中不能用于構(gòu)成變量名的是()A.字母 B.數(shù)字C.下劃線 D.空格12在程序中用到某一整型變量的數(shù)據(jù)范圍為-3276840000,則該變量類型應(yīng)聲明為()A.Integer B. ByteCLong D. Double13設(shè)a=2,b=3,c=4,d

40、=5,表達(dá)式3>2*b OR a=c AND b<>c OR c>d的值是()A1 B-1 CFalse DTrue14實(shí)現(xiàn)數(shù)值轉(zhuǎn)換字符串的函數(shù)是()ASTR() B.CHR()C.VAL() D.ASC()15實(shí)現(xiàn)字符串轉(zhuǎn)換數(shù)值的函數(shù)是()ASTR() BCHR()CVAL() DASC()二、填空題1在窗體上畫一個(gè)標(biāo)簽按鈕(名稱為L(zhǎng)abel1),編寫如下事件過程:Private Sub Label1_Click()Dim a, b, c As Integerb = 5c = 6Print a = b + cEnd Sub程序運(yùn)行后,單擊標(biāo)簽,輸出的結(jié)果是:_。2VB

41、應(yīng)用程序中窗體文件的擴(kuò)展名是_。3VB是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,構(gòu)成對(duì)象的三要素是_、_、_。4下列程序段執(zhí)行后,a=5b=9c=14a=a+bc=c-b則a=_、b=_、c=_。5若X=1,則Abs(X)=_。6表達(dá)式8 <> 5 + 3 Or Not 10 > 12 3的值是_。7表達(dá)式9 2 Mod 6 3 3 2的值為_。8若s=”I am John”,則LEN(s)的值為_。9ABS(-2)+SQR(16)=_。10補(bǔ)充完善下列程序段 從鍵盤輸入圓的半徑R,輸出圓的周長(zhǎng)L和面積S。Dim R As SingleDim L As Single Dim S As S

42、ingle _=InputBox("輸入半徑R ")       L=2*3.14*RS=3.14*R*RPrint "圓的周長(zhǎng)L= "LPrint "圓的面積S= "S 計(jì)算旅客的行李費(fèi),收費(fèi)標(biāo)準(zhǔn)為:20千克以下(包括20千克)不收費(fèi),超過20千克的部分每千克收20元。X表示行李重量,Y表示行李費(fèi)。    Dim X As Single    Dim Y As Single   

43、60;    X=InputBox("輸入行李重量")        If _  Then           Y=0        Else           Y=20*(X-20) &

44、#160;      End If    Print "行李費(fèi)= "Y 求s=2+4+6+100之和。Dim i As IntegerDim s As Integers=0For i=2 To 100 Step 2   s=_Next iPrint s 輸出100以內(nèi)(包含100)能被3整除的數(shù)。Dim I As IntegerI=1Do  If  I  Mod 3=0 Then Print I  End IfI=I+1Loop Unt

45、il _. 有一張單據(jù)上有一個(gè)5位數(shù)的號(hào)碼678,其中百位和十位上的數(shù)字看不清了,但知道該數(shù)能夠被78整除,也能被67整除,下面是用窮舉法求出該號(hào)碼的程序段:Dim a As Integer, b As IntegerDim n As LongFor a = 0 To 9  For b = 0 To       n = 67008 +   * 100 + b * 10 If n Mod 78 = 0 n  Mod67=0  Then    

46、60;  Print       End If  Next bNext a請(qǐng)將應(yīng)填寫的內(nèi)容寫在下面相應(yīng)的空格內(nèi)并運(yùn)行程序?qū)懗鲈撎?hào)碼(每空3分,共12分)。_ _主題二 程序設(shè)計(jì)基礎(chǔ)同步集訓(xùn)答案一選擇題:1、B 2、A 3、A4、B5、D6、A7、A8、D9、B10、C11、D12、C13、C14、A15、C16、B二、填空題1、11 14、 frm 15、 屬性、事件、方法 16、 a=14 b=9 c=5 17、 x=118、 False19、 920、 921、 622、 1)r 2)x<=20 3)s+i 4)i

47、=100 5)9 a and n主題三 算法與程序?qū)崿F(xiàn)點(diǎn)擊考點(diǎn)1、 理解解析法的基本思想。2、 了解枚(窮)舉算法求解問題的過程3、 了解使用數(shù)組存儲(chǔ)批量數(shù)據(jù)的基本方法4、 理解順序查找、二分查找算法思想5、 了解一到兩種經(jīng)典排序算法思想(如插入排序、冒泡排序)。6、 了解遞歸思想與遞歸的數(shù)學(xué)意義。考點(diǎn)注解1、 理解解析法的基本思想。 所謂解析法(analysis algorithm)是指用解析的方法找出表示問題的前提條件與結(jié)果之間關(guān)系的數(shù)學(xué)表達(dá)式,并通過表達(dá)式的計(jì)算來實(shí)現(xiàn)問題求解。解析法舉例:【出租車計(jì)費(fèi)】 某城市的出租車計(jì)費(fèi)標(biāo)準(zhǔn)為起步價(jià)10元(3公里內(nèi)),此外,在3公里到10公里之間每公里

48、2.1元,超過10公里部分每公里3元,輸入行車距離x,輸出車費(fèi)y。編寫數(shù)學(xué)表達(dá)式:設(shè)車程數(shù)為X公里,車費(fèi)為Y元,則Y= 10 (x<=3) 10+2.1*(x-3) (3<x<=10) 10+2.1*7+3*(x-10) (x>10)VB代碼:Privat sub command1_click()Dim x,y as singleX=val(inputbox("請(qǐng)輸入行車距離")If x<=3 then Y=10Elseif x>3 and x<=10 then Y=10+2.1*(x-3)Else Y=10+2.1*7+3*(x-

49、10)EndifPrint yEnd sub小結(jié):用解析法解決問題的關(guān)鍵就是找到求解問題的解析表達(dá)式。2、 了解枚(窮)舉算法求解問題的過程 窮舉法也叫枚舉法或列舉法。在研究對(duì)象是由有限個(gè)元素構(gòu)成的集合時(shí),把所有對(duì)象一一列舉出來,再對(duì)其一一進(jìn)行研究。帶入實(shí)際,一個(gè)個(gè)檢驗(yàn)是否符合,窮舉完所有對(duì)象問題將最終得以解決。這種方法一般在計(jì)算機(jī)中運(yùn)用,因?yàn)橛?jì)算機(jī)計(jì)算速度快,可以很快驗(yàn)證答案是否正確。窮舉法舉例:百錢買百雞問題。用100元錢買100只雞,公雞每只5元,母雞每只3元,小雞3只1元,要求每種都買,問能買公雞、母雞、小雞各買幾只?算法分析:設(shè)x為公雞數(shù)量,取值從1只到20只,y為母雞的數(shù)量,取值從

50、1只到33只,z為小雞的數(shù)量,判斷5元*x+3元*y+z/3是否等于100元,輸出每次符合條件的x,y,z即為所求。VB代碼:Privat sub command1_click()Dim x,y ,z as integerFor x=1 to 20 step 1For y=1 to 33 step 1z=100-x-yIf 5*x+3*y+z/3=100 thenPrint x,y,zNext yNext xEnd sub小結(jié):窮舉法的思路與解題步驟窮舉法的基本思路:把問題涉及的可能情況一一羅列出來,并且根據(jù)題目的條件和實(shí)際背景逐個(gè)作出判斷,從中挑選出符合條件的解答。窮舉法的解題步驟:1)、分

51、析問題,找出條件與未知數(shù),確定變量;2)、列舉出變量所有可能的情況,用循環(huán)或循環(huán)的嵌套實(shí)現(xiàn);3)、寫出符合條件的判斷語(yǔ)句,用選擇語(yǔ)句實(shí)現(xiàn);4)、輸出符合條件的情況;5)、優(yōu)化程序。3、 了解使用數(shù)組存儲(chǔ)批量數(shù)據(jù)的基本方法。 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在VB中定義數(shù)組的格式為:Dim 數(shù)組名(常量)as 數(shù)據(jù)類型下面舉例說明定長(zhǎng)數(shù)組的定義:Dim a(1 to 3)As IntegerDim b(5 to 9)As StringDim c(7)As Integer其中,例定義了一個(gè)具有三個(gè)元素的整型數(shù)

52、組,其下標(biāo)從1到3。例定義了一個(gè)具有五個(gè)元素的字符型數(shù)組,其下標(biāo)從5到9。例缺省了下界,它定義了一個(gè)具有八個(gè)元素的整型數(shù)組,其下標(biāo)從0到7。數(shù)組的賦值一般是通過循環(huán)來完成的。例如For i=0 to 50 step 1 Chinese(i)=100Next i數(shù)組元素是組成數(shù)組的。數(shù)組元素也是一種變量, 其標(biāo)識(shí)方法為數(shù)組名后跟一個(gè)下標(biāo)。 下標(biāo)表示了元素在數(shù)組中的順序號(hào)。數(shù)組中的數(shù)據(jù)在邏輯上應(yīng)該是相互關(guān)聯(lián)的。4、 理解順序查找、二分查找算法思想 【順序查找】 所謂順序查找就是從數(shù)組的第一個(gè)數(shù)開始,逐個(gè)與要查找的數(shù)進(jìn)行比較,如果相同則輸出找到的信息。以下程序是隨機(jī)生成num個(gè)整數(shù)放在數(shù)組d中,然后

53、輸入一個(gè)數(shù),在數(shù)組d中順序查找,如果找到就輸出在數(shù)組中的位置,否則輸出在數(shù)組中沒有找到的信息。Dim d(1 To 1000) As IntegerDim num As IntegerPrivate Sub Command1_Click() '生成隨機(jī)數(shù)按鈕num = Val(Text1.Text)If num <= 0 Or num >= 1000 Then Text1.Text = "數(shù)據(jù)個(gè)數(shù)不符合" Exit SubEnd IfRandomize '初始化隨機(jī)函數(shù)List1.ClearFor i = 1 To num j = Round(R

54、nd * 1000) 'rnd函數(shù)生成一個(gè)0,1)之間的隨機(jī)數(shù) List1.AddItem Str(i) + " " + Str(j) d(i) = j NextEnd SubPrivate Sub Command3_Click()Key = Val(Text2.Text)j = 1Do While j <= num If d(j) = Key Then Label5.Caption = "在數(shù)組的 " + Str(j) + " 位置中" Exit Do End If j = j+1LoopIf j = num + 1

55、Then Label5.Caption = "在數(shù)組中沒有找到" + Str(Key)End IfEnd Sub【二分查找】又稱,它是一種效率較高的查找方法。【二分查找要求】:1.必須采用 2.必須按關(guān)鍵字大小有序排列。 【優(yōu)缺點(diǎn)】折半查找法的優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動(dòng)而查找頻繁的有序列表。 【算法思想】首先,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。 重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時(shí)查找不成功。以下程序是在上面的command1_click中隨機(jī)生成nu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論