




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.第三章第三章 DelphiDelphi基本程序設計基本程序設計.2本章知識點和基本要求本章知識點和基本要求順序結構順序結構選擇結構選擇結構循環結構循環結構過程與函數過程與函數J掌握順序結構、選擇結構、循環結構的使用方法掌握順序結構、選擇結構、循環結構的使用方法J掌握過程與函數的定義和使用規則掌握過程與函數的定義和使用規則J理解重載的含義。理解重載的含義。.2順序結構順序結構v順序結構是程序設計中最簡單、最順序結構是程序設計中最簡單、最常用的基本結構。在該結構中,各常用的基本結構。在該結構中,各操作塊(簡稱塊,對應于程序中的操作塊(簡稱塊,對應于程序中的“程序段程序段”)按照出現的先后順序)按
2、照出現的先后順序依次執行。它是任何程序的主體基依次執行。它是任何程序的主體基本結構,即使在選擇結構或循環結本結構,即使在選擇結構或循環結構中,也常以順序結構作為其子結構中,也常以順序結構作為其子結構。構。語句語句n-1n-1語句語句1 1語句語句2 2語句語句n n開始開始結束結束.2選擇結構選擇結構分支語句根據用戶輸入或程序運行的中間結果來確定轉分支語句根據用戶輸入或程序運行的中間結果來確定轉向執行哪個分支流程。向執行哪個分支流程。Object PascalObject Pascal提供的提供的ifif語句和語句和casecase語句用來實現程序的分支結構。語句用來實現程序的分支結構。vif
3、if語句語句 (1) if.then (1) if.then 語句語句語法:語法:if if 表達式表達式 thenthen 語句語句 注意注意:1 1、復合表達式書寫注意、復合表達式書寫注意運算符的運算優先級。每一個運算符的運算優先級。每一個表達式用括號括起。表達式用括號括起。2 2、語句若為復合語句,、語句若為復合語句,注意使用注意使用beginbegin和和endend。例:輸入長和寬,計算矩形面積和周長。例:輸入長和寬,計算矩形面積和周長。語句(塊)語句(塊)條件表達式條件表達式TrueTrueFalseFalse.2選擇結構選擇結構(2) if.then.else(2) if.the
4、n.else語句語句語法:語法:ifif 表達式表達式 thenthen 語句語句1 1 elseelse 語句語句2 2 ; ;注意注意:1 1、在語句在語句1 1末尾(末尾(elseelse之前)不能加分號。之前)不能加分號。 2 2、elseelse的配對。的配對。If If 條件表達式條件表達式 then if then if 條件表達式條件表達式 then then 語句語句11 11 Else Else 語句語句1212若若elseelse要與第一個要與第一個ifif配對,則應改為配對,則應改為If If 條件表達式條件表達式 then then beginbegin if if
5、條件表達式條件表達式 then then 語句語句11 11 endendElse Else 語句語句1212 條件表達式語句A語句BT TF F.例:例:var x,y:integer;beginx:=5;y:=100if x10 then y:=200else y:=300;write(y)end;例:分段函數例:分段函數例:將任意輸入的三例:將任意輸入的三整數按從大到小順序整數按從大到小順序顯示顯示.2選擇結構選擇結構.2選擇結構選擇結構例:編寫一個程序,用于判斷輸入的年份是不是閏年。例:編寫一個程序,用于判斷輸入的年份是不是閏年。注:是閏年的條件必須滿足下列條件之一:注:是閏年的條件必
6、須滿足下列條件之一:(1) 能被能被4整除,但不能被整除,但不能被100整除的年份;整除的年份;(2) 能被能被400整除的年份。整除的年份。.2選擇結構選擇結構組件名組件名屬屬 性性屬屬 性性 值值Label1Label1CaptionCaption請輸入年份:請輸入年份:Label2Label2CaptionCaption顯示結果顯示結果Edit1Edit1TextTextButton1Button1CaptionCaption判斷判斷.2選擇結構選擇結構v嵌套過多的嵌套過多的if語句往往分不清語句往往分不清if與與else的匹配關系,影的匹配關系,影響程序的清晰,有礙閱讀。對于多分支的結
7、構宜采用響程序的清晰,有礙閱讀。對于多分支的結構宜采用case 語句。語句。其語法格式如下:其語法格式如下: case 選擇表達式選擇表達式 of 情況常量情況常量1: 語句語句1;情況常量情況常量2: 語句語句2; 情況常量情況常量n-1: 語句語句n-1; else 語句語句n; end; 語句語句n-1n-1計算選擇表達式的值計算選擇表達式的值inin常量常量1 1inin常量常量2 2inin常量常量n-1n-1語句語句1 1語句語句2 2語句語句n n.2選擇結構選擇結構注意注意: 的值必須是順序類型(如整型、字符的值必須是順序類型(如整型、字符型、布爾型、子界型等)。型、布爾型、子
8、界型等)。 中的值應該是中的值應該是 可能具有可能具有的值,各常量之間用逗號分隔。所有常量表中的值必的值,各常量之間用逗號分隔。所有常量表中的值必須互不相同。須互不相同。 可以是簡單語句,也可以是復合語句。可以是簡單語句,也可以是復合語句。例:教材例題。例:教材例題。例:修改成績判斷題,根據成績按例:修改成績判斷題,根據成績按“優秀優秀”、“良好良好”、“中等中等”、“及格及格”和和“不及格不及格”等輸出。等輸出。思考題:思考題:輸入兩個整數,分別代表年、月,輸出該月的天數。輸入兩個整數,分別代表年、月,輸出該月的天數。(提示:注意閏年的情況。)(提示:注意閏年的情況。).2循環結構循環結構v
9、循環語句可以使一個語句塊(循環體)重復執行,它是實現循環語句可以使一個語句塊(循環體)重復執行,它是實現復雜程序流程的基礎之一。復雜程序流程的基礎之一。Object PascalObject Pascal提供了三種循環提供了三種循環語句:語句:whilewhile語句語句、repeatrepeat語句語句、forfor語句語句。1. while1. while語句(語句(“當當”型)型)特點:特點:先判斷,再循環先判斷,再循環。其語法形式如下:其語法形式如下:whilewhile 條件表達式條件表達式 dodo 循環體循環體; ;注意注意:循環體若為復合語句要在:循環體若為復合語句要在begi
10、nbegin和和endend;之間。之間。例:求前例:求前n n個自然數的累加和。個自然數的累加和。例:用戶輸入任意字符串,若字符串中包含字例:用戶輸入任意字符串,若字符串中包含字符符00,則去掉,則去掉00后顯示,并統計去掉后顯示,并統計去掉00的次數。的次數。條件表達式條件表達式循環體語句(塊)循環體語句(塊)TF.2循環結構循環結構2. repeat語句(語句(“直到直到”型)型)特點:特點:先循環,后判斷,最少循環先循環,后判斷,最少循環1次次。其語法形式如下:其語法形式如下:repeatrepeat語句語句1;1;語句語句2;2;until until 條件表達式條件表達式; ;注意
11、注意:這里:這里不必不必把多個語把多個語句的循環體用句的循環體用beginbegin和和endend括起來。括起來。例:從例:從1 1開始累加,當累開始累加,當累加和剛剛大于加和剛剛大于7979時,顯示時,顯示最后一個被累加的數及累最后一個被累加的數及累加和。加和。 循環體語句(塊)循環體語句(塊)條件表達式條件表達式TF.2循環結構循環結構3.For3.For語句語句語法格式:語法格式:forfor 循環變量循環變量 = = 初值初值 toto 終值終值 dodo 循環體循環體 ;forfor 循環變量循環變量 = = 初值初值 downtodownto 終值終值 dodo 循環體循環體 ;
12、特點:特點:已知或可計算循環次數已知或可計算循環次數。和前兩種循環不同,。和前兩種循環不同,forfor循環循環中循環變量會隨循環次數中循環變量會隨循環次數自動遞增自動遞增1 1或遞減或遞減1 1,無需在循環體,無需在循環體內控制循環變量(循環次數在內控制循環變量(循環次數在進入循環前已確定進入循環前已確定,在循環體,在循環體內更改會出現編譯錯誤)內更改會出現編譯錯誤)注意注意:pascalpascal中中forfor循環本身無法控制步長(為循環本身無法控制步長(為1 1)For i:=For i:=初值初值 to to 終值終值 div step do div step do J:=J:=初
13、值初值+(i-1)+(i-1)* *step;step;.例:斐波那契(例:斐波那契(Fibonacci)數列問題)數列問題Fn=1 (n=2)作業:作業:1.輸入一行字符,計算其中數字字符的個數輸入一行字符,計算其中數字字符的個數2.計算表達式計算表達式1!+2!+3!+-+50!的值!的值3.按從大到小的次序,輸出從按從大到小的次序,輸出從1到到1000之間所有能同時之間所有能同時被被3和和7整除的數整除的數4.編寫一個簡略計算個人所得稅的程序,收入在編寫一個簡略計算個人所得稅的程序,收入在3000元元以下,交以下,交3%;收入在;收入在3000到到5000元(含元(含3000),交),交
14、6%,收入在收入在5000到到10000元(含元(含5000),交),交10%,10000元及以元及以上的,交上的,交15%。.2循環的嵌套循環的嵌套例:求小于給定數的素數。例:求小于給定數的素數。v對于有規律的復雜問題,嵌套是很好的解決方法。在多重循對于有規律的復雜問題,嵌套是很好的解決方法。在多重循環中,內循環和外循環是環中,內循環和外循環是相對的相對的,嵌套的層數是任意的,但,嵌套的層數是任意的,但算法的時間復雜度會隨層數成指數級增長,程序算法的時間復雜度會隨層數成指數級增長,程序可讀性可讀性也會也會降低,一般來說,不宜超過三層。降低,一般來說,不宜超過三層。例:求從例:求從1到指定數內
15、奇數的階乘之和。到指定數內奇數的階乘之和。例:例:“百錢百雞:雞翁一百錢百雞:雞翁一,值錢五值錢五,雞母一雞母一,值錢三值錢三,雞雛三雞雛三,值錢值錢一一,百錢買百雞百錢買百雞,問翁、母、雛各幾何問翁、母、雛各幾何? ”vbreak:強制退出循環,一般用在循環體內的:強制退出循環,一般用在循環體內的if結構中。結構中。vcontinue:短路循環。:短路循環。例:例:求不能被求不能被3 3整除的自然數的和(整除的自然數的和(S=1+2+4+5+7+NS=1+2+4+5+7+N),和),和不超過不超過10001000。顯示。顯示S S及及N N的最大值。的最大值。 .2過程與函數過程與函數vDe
16、lphiDelphi中,有許多預先定義好的子程序,它們統稱為運行庫。中,有許多預先定義好的子程序,它們統稱為運行庫。Object PascalObject Pascal也允許程序員自己定義子程序。子程序的引也允許程序員自己定義子程序。子程序的引入,降低了程序的復雜性。編寫子程序還可以提高代碼的入,降低了程序的復雜性。編寫子程序還可以提高代碼的重重用率用率。子程序實現的功能相對獨立。如此,將大大提高程序。子程序實現的功能相對獨立。如此,將大大提高程序編寫和維護的效率。編寫和維護的效率。vObject PascalObject Pascal的子程序分為兩種:的子程序分為兩種:過程過程(proced
17、ureprocedure)和)和函函數數(functionfunction)。)。過程和函數都是實現一定功能的語句塊,過程和函數都是實現一定功能的語句塊,可被其他模塊調用,也可自身進行遞歸調用。可被其他模塊調用,也可自身進行遞歸調用。過程和函數的過程和函數的區別主要在于過程本身沒有區別主要在于過程本身沒有返回值返回值,而函數有一個返回值。,而函數有一個返回值。.2過程過程v過程聲明過程聲明procedure procedure 過程名過程名( (形參表形參表);); beginbegin end;end;過程名過程名即過程標識符。即過程標識符。局部聲明部分局部聲明部分用于聲明僅限于該過程內用于
18、聲明僅限于該過程內引用的常量、自定義數據類型、變量、過程和函數等。引用的常量、自定義數據類型、變量、過程和函數等。參數參數表表內聲明參數的個數和類型,同類型參數之間以內聲明參數的個數和類型,同類型參數之間以逗號逗號分隔,分隔,不同類型參數之間以不同類型參數之間以分號分號分隔。分隔。例:編寫求階乘過程。例:編寫求階乘過程。.2函數函數v函數聲明函數聲明function function 函數名函數名( (形參表形參表):):返回數據類型返回數據類型; ; beginbegin end;end;函數首部函數首部除了聲明函數的標識符、形式參數表以外,除了聲明函數的標識符、形式參數表以外,必須必須在冒
19、在冒號之后聲明函數號之后聲明函數返回數據類型返回數據類型。局部聲明局部聲明部分與過程的局部部分與過程的局部聲明部分類似。聲明部分類似。函數名函數名本身作為本身作為一個特殊的變量一個特殊的變量,與系統預先定義的變量,與系統預先定義的變量ResultResult一樣,可在函數體中接受賦值,一樣,可在函數體中接受賦值,用來存儲函數返回值用來存儲函數返回值。例:編寫求階乘函數。例:編寫求階乘函數。.2參數參數過程或函數調用時,調用語句中傳遞給過程或函數的參過程或函數調用時,調用語句中傳遞給過程或函數的參數稱為數稱為實際參數實際參數,簡稱實參。過程和函數首部中聲明的參數,簡稱實參。過程和函數首部中聲明的
20、參數稱為稱為形式參數形式參數,簡稱形參。實參的個數、數據類型和順序必,簡稱形參。實參的個數、數據類型和順序必須與形式參數一一對應,若出現數據類型不符,編譯器會將須與形式參數一一對應,若出現數據類型不符,編譯器會將實參的數據類型進行轉換(如整型到實型),多個參數之間實參的數據類型進行轉換(如整型到實型),多個參數之間用逗號隔開。用逗號隔開。形式參數,以及過程和函數局部聲明的各種標識符均為形式參數,以及過程和函數局部聲明的各種標識符均為局部局部的,即它們的的,即它們的作用范圍只在該過程或函數中作用范圍只在該過程或函數中,在局部范,在局部范圍內有效。圍內有效。.2參數參數形式參數分為三類:形式參數分
21、為三類:值參數值參數(簡稱值參)、(簡稱值參)、常量參數常量參數和和變量參數變量參數(簡稱變參)(簡稱變參) 。三者在聲明時的修飾和實參的區。三者在聲明時的修飾和實參的區別分述如下:別分述如下: 值參數值參數聲明時,形參的前面無任何修飾,值參傳遞聲明時,形參的前面無任何修飾,值參傳遞的是一個值。調用時,實參的值拷貝給形參,的是一個值。調用時,實參的值拷貝給形參,形參值的改變形參值的改變不影響其對應實參的值不影響其對應實參的值。常量參數常量參數聲明時,形參的前面用保留字聲明時,形參的前面用保留字constconst修飾。修飾。常量參數的傳遞形式本質上類似于值參,但在子程序中,它常量參數的傳遞形式
22、本質上類似于值參,但在子程序中,它相當于局部的類型常量,相當于局部的類型常量,不能對常量參數進行賦值不能對常量參數進行賦值。常量參。常量參數的使用可以防止子程序對實參的修改。數的使用可以防止子程序對實參的修改。.2參數參數變量參數變量參數聲明時,形參的前面用保留字聲明時,形參的前面用保留字varvar修飾。變修飾。變參傳遞的是一個變量的地址,即實參把地址傳遞給參傳遞的是一個變量的地址,即實參把地址傳遞給變參,這變參,這樣變參和樣變參和實參指向的是同一地址空間,因此,在實參指向的是同一地址空間,因此,在過程和函數過程和函數中對變參的修改,直接影響實參中對變參的修改,直接影響實參。顯然可以利用變參
23、為被調。顯然可以利用變參為被調子程序(函數或過程)子程序(函數或過程)“傳遞傳遞”數據給主調程序。數據給主調程序。在函數或過程定義中,可以給在函數或過程定義中,可以給值參值參數設置一個數設置一個默認值默認值。在調用子程序(過程或函數)時,如果沒有提供相應的實參,在調用子程序(過程或函數)時,如果沒有提供相應的實參,那么子程序即以默認值作為初值。那么子程序即以默認值作為初值。注意注意:參數的默認值只能:參數的默認值只能從參數表的從參數表的右邊開始默認右邊開始默認,且中間不能跳躍且中間不能跳躍,此外,此外,變參不變參不能能設置默認值。設置默認值。例:見下頁例:見下頁.2函數和過程的重載函數和過程的
24、重載procedure FillArray(a:array of Integer;procedure FillArray(a:array of Integer; value:Integer=0); value:Integer=0); 值參值參valuevalue是默認參數,缺省值為是默認參數,缺省值為0 0,可以有如下兩種調用方,可以有如下兩種調用方式:式:FillArray(MyArray); / FillArray(MyArray); / 參數參數valuevalue使用缺省值使用缺省值0 0FillArray(MyArray,10); / FillArray(MyArray,10); /
25、 參數參數valuevalue指值指值1010v函數和過程的重載函數和過程的重載過程和函數重載是指定義多個名稱相同,而參數列表不過程和函數重載是指定義多個名稱相同,而參數列表不同的過程和函數。編譯器依據調用時實參表中同的過程和函數。編譯器依據調用時實參表中參數個數和類參數個數和類型型,自動匹配一個重載的過程或函數。重載過程和函數首部,自動匹配一個重載的過程或函數。重載過程和函數首部句尾應使用保留字句尾應使用保留字overloadoverload修飾。例:見下頁修飾。例:見下頁.2過程和函數的重載過程和函數的重載function add(a,b:integer):integer; overloa
26、d;function add(a,b:integer):integer; overload;beginbegin result := a + b; result := a + b;end;end;function add(a,b:real):real; overload;function add(a,b:real):real; overload;beginbegin result := a + b; result := a + b;end;end;function add(a,b:string):string; overload;function add(a,b:string):string; over
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設計施工公司管理制度
- 診所檔案信息管理制度
- 診所陽性患者管理制度
- 財富中心薪酬管理制度
- 賬戶交易權限管理制度
- 貨架安裝安全管理制度
- 貨車進出小區管理制度
- 2025年中國個人交通工具行業市場全景分析及前景機遇研判報告
- 景區賠償協議書范本
- 初中古詩文賞析:從名篇到實踐
- 《松果體細胞瘤》課件
- 《軟件安全測試》課件
- ZZ022酒店服務賽項規程
- 三年級上冊數學教案-第七單元 《分數的初步認識》 |蘇教版
- 2024-2030年中國小型渦噴發動機行業競爭格局展望及投資策略分析報告
- 《酒店營銷推廣方案》課件
- 大學生積極心理健康教育知到智慧樹章節測試課后答案2024年秋運城職業技術大學
- 危險化學品安全管理領導小組及工作職責
- 工程建筑勞務合作協議范本
- 房屋優先購買權申請書
- 留學銷售話術培訓
評論
0/150
提交評論