freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序設(shè)計提高班培訓講義(已修改)

2025-06-17 21:57 本頁面
 

【正文】 程序設(shè)計提高班培訓講義 胡苗坤 ( 2021 寒假) 第一講 順序結(jié)構(gòu)程序設(shè)計 主要內(nèi)容: 熟練掌握賦值語句、輸入輸出語句的用法 掌握順序結(jié)構(gòu)程序設(shè)計常用方法 基本運算符的使用 常用函數(shù)和過程 一、賦值語句(: =) 格式:變量名: =表達式 功能:將表達式的 值計算出來賦給相應的變量。 不管什么計算機語言,賦值語句都是最基本最常用的語句,通過它給變量賦值來進行各種運算、處理。 如 a:=10*5。 {a 的值為 50} a:=a+1; {將 a 的值增加 1,常用此語句來進行計數(shù) } s:=s+a。 {將 s 的值增加 a,常用類似的累加語句來進行求和 } t:=t*a。 {將 t 的值變?yōu)樵瓉淼?a 后倍,常用類似的語句來進行累乘 } 例題 1:交換兩個數(shù)值型變量 a 和 b 的值 [分析與算法選擇 ]: 要交換兩個變量的值,可以聯(lián)想起現(xiàn)實世界中交換兩個容器 A和 B 中所裝的東西,一般要先引進一個 空的容器 C,先將一個容器(如 A)里的倒入 C,再將另一個容器 B 的倒入A,最后將 C 的倒入 B,從而實現(xiàn) A、 B 容器內(nèi)容的互換。 [方法 1]:引進第三個變量 c:=a。 a:=b。 b:=c。 [方法 2]:先合并后分開 a:=a+b。 {如原來 a=3,b=5,執(zhí)行此語句后 a=8,b=5} b:=ab。 {執(zhí)行此語句后 a=8,b=3} a:=ab。 {執(zhí)行此語句后 a=5,b=3} 還有其它一些辦法,但都沒有上面的兩種方法通用。如可先乘再除,這種方法對于有一個變量為 0 的情況就不正確了。也可能會出 現(xiàn)除數(shù)為 0 的情況。 例題 2:計算四個變量的乘積 [分析與算法選擇 ]: 一般的計算,可以直接用一個表達式將運算結(jié)果給一個變量就行了。如果變量的個數(shù)不確定,或者說變量的個數(shù)很多,此時用一個表達式就不方便了,可行的方法是來一個就算一個,直到全部的都算好結(jié)束。在后面的循環(huán)中常用這種方法。 [參考程序 ]: program example5_2。 var t:longint。 a,b,c,d:integer。 begin write(?Enter integer a,b,c,d:?)。 readln(a,b,c,d)。 t:=1。 t:=t*a。 t:=t*b。 t:=t*c。 t:=t*d。 writeln(?a*b*c*c=?,t)。 end. [補充說明 ]: 累加時,存放累加值的變量初值一般為 0;而累乘時必須將相應變量的初值賦為 1。如上述程序中 t 的初值為 1,如果沒有這句,系統(tǒng)默認的初值為 0,那么乘下來結(jié)果也是 0。 二、 read/readln 讀取數(shù)據(jù) 格式: read(變量 ) 或 read(變量 1,變量 2,?? ) readln(變量 ) 或 readln(變量 1,變量 2,?? ) 功能:在運行程序時讀入 相應數(shù)據(jù)給指定變量,直到讀入的數(shù)據(jù)滿足為止,這里所說的滿足有兩個方面的含義,一是類型的一致,二是數(shù)據(jù)的滿足。 Readln 跟 read 不同的地方就是它執(zhí)行完后將到下一行。 例: read(a,b,c) 。 根據(jù)事先定義的類型由用戶在運行程序時輸入相應的數(shù)據(jù)給 a,b,c,也可分開寫成三個read 語句: read(a)。read(b)。read(c)。 readln(a,b,c)。 與 read(a,b,c)不同是讀完數(shù)據(jù)后另起一行,如果將它分為三個語句 readln(a)。 readln(b)。 readln(c)執(zhí)行 時可能讀入的數(shù)據(jù)跟原來不一樣,自己上機去試試吧! readln。 空讀語句,一般起到讓程序運行時停止由用戶回車后繼續(xù)或跨過一行中其余的數(shù)據(jù),保證下一個讀語句從下一行頭一個數(shù)據(jù)開始讀取。 三、 write/writeln 輸出語句 語句功能:輸出指定表達式的值。 如 wirte(a),write(?Jiangshu?)。 分別輸出 a 的值和 Jiangshu ( 1)場寬 在輸出項后用“:數(shù)字”指明輸出的寬度。 如 write(5:6),則輸出: 5 {5 的前面有 5 個空格,整個輸出項占 6 個字符的位置 } 對于實數(shù) 類型的還可以通過“:數(shù)字 1:數(shù)字 2”指明輸出數(shù)字的寬度和小數(shù)點后的位數(shù)。 如: write(:10:5) 將輸出: {整個輸出項占 10 個字符位置,整數(shù)部分占 4 位,小數(shù)點 1 位,小數(shù)部分 5位,其中整數(shù)部分不足的在高位補空,小數(shù)部分不足在后面補 0} 如果指定的寬度比原輸出項應有的寬度小呢? 對于整數(shù)或字符等類型的,將自動調(diào)整到最小所要的寬度,如 write(?ABCD?:2)仍將輸出 ABCD。 對于實數(shù),小數(shù)部分會取自定的位數(shù),將尾部去除(四舍五入),并自動適應到最少的寬度。 [思考 ]: 如何對小數(shù)點后指定位進行四舍五入? [解答 ]: 一種方法是直接指定輸出小數(shù)點后指定的位數(shù),如對于變量 a 要保留到小數(shù)點后第三位并考慮四舍五入,可以直接寫為 write(a:0:3)。這種方法跟系統(tǒng)的設(shè)置有關(guān),也就是說這樣不能保證任何時候都正確。 可以對指定位加 5后從這位始截尾。如要求對實型變量 a要求精確到小數(shù)點后兩位,對小數(shù)點后第三位進行四舍五入,可以用這樣的輸出語句 write(a+:0:2)。一般來說對于變量的處理,可以先按這種方法(即相應位加 5后再去尾)通過賦值語句進行處理,輸出時不進行處理,只 是直接輸出就行了。 四、 writeln 跟 wirte 的區(qū)別 writeln 語句在輸出完指定內(nèi)容后另起一行, write 只管輸出除非真滿一行后才另起一行。 空的 wirteln 起到一個輸出空行的作用,如果它前面有 write 語句,則在其它輸出空行(可能不滿一行),保證下一個輸出另起一行。在程序中經(jīng)常用一個空的 writeln 語句起換行的作用。 五、一個語句多個輸出項 一個 write 或 writeln 中可以有多個輸出項,各項之間用逗號間隔。 如 write(1,2,3); 它與三個 write 語句作用一樣: write(1)。write(2)。write(3)。 再如 writeln(1,2,3)。 輸出 123 后換行。 與它等同的分開寫的形式為: write(1)。write(2)。writeln(3); 練習及作業(yè): (1) 輸入三角形的三邊,輸出三角形的面積(假設(shè)這三邊一定能構(gòu)成三角形)。 計算三角形面積的公式: p:=(a+b+c)/2 s:=sqrt(p*(pa)*(pb)*(pc)) (2) 輸入一個三位整數(shù),逆向輸出,如輸入 123,輸出為 321,如果個位數(shù)是零,則輸出二位數(shù),如 : 320,輸出為 23。 (3) 輸入一個 10000 以內(nèi)的整數(shù),輸出它的位數(shù) (4) 分錢游戲:甲、乙、丙三人共有 24 元錢,先由甲分錢給乙、丙兩人,所分給的數(shù)與各人已有數(shù)相同;接著由乙分給甲、丙,分法同前;再由丙分錢給甲、乙,分法亦同前。經(jīng)上述三次分錢之后,每個人的錢數(shù)恰好一樣多。求原先各人的錢數(shù)分別為多少? 第二講 分支結(jié)構(gòu)程序設(shè)計 主要內(nèi)容: 掌握復合語句、基本 IF 語句及 CASE 語句語法格式和執(zhí)行過程; 能夠根據(jù)實際情靈活運用 IF 語句和 CASE 語句 掌握 IF 語句的嵌套原則 一.復合語句 1.為什么要用復合語句 在 程序中有時候要將多個語句結(jié)合起來作為一個整體,象一個語句一樣來使用。這時就要用到復合語句,用 begin 和 end 將多個語句結(jié)合在一起。 2.格式: begin 語句 1; 語句 2; ?? 語句 N; end。 {說明: end 前的最后一個分號可以不寫,也可以寫,相當于其后是一個空語句。 } 其效果跟普通的語句一樣,也就是將多個語句合并成一個語句來使用,特別是在后面的條件語句或循環(huán)語句里執(zhí)行的是多個語句要像一個語句一樣時就必須要使用復合語句。 二.條件語句( ifthenelse) 格式 1:一個分支 if 條件 then 語句; 格式 2:兩個分支 if 條件 then 語句 1 else 語句 2; 注意 else 前沒有分號,否則會出錯。(思考這是為什么?) 1.條件的描述 在使用條件語句時主要的難點就是條件的描述和滿足條件或不滿足條件時要執(zhí)行的語句的描述。 條件通過布爾表達式來描述。 例:條件語句與自然語言描述的對比 ( 1) if a1 then a:=a1 else a:=a+1。 如果 a 大于 1 那么將 a 的值減少 1,否則將 a 的值增加 1 ( 2) if (ab) and (bc) then s:=(ab)*(bc)。 如果 a 大于 b 并且 b 大于 c,那么 s 的值為( ab)乘以 (bc) ( 3) if (a0) or (b0) then s:=a+b。 如果 a0 或者 b0,那么 s 的值等于 a+b ( 4) if f then t:=t+1。 {這里 f 為布爾型的變量 } 如果 f 成立即等于 true,那么 t 的值增加 1 2.語句的選擇 滿足條件時執(zhí)行什么、不滿足條件時執(zhí)行什么要先搞清楚。 當滿足條件時或不滿足條件時執(zhí)行的是多個語句時要使用復合語句的格式。當然單個語句也使用復合語句的格式也不會錯,只不過多此一舉 而已,并不影響程序的執(zhí)行,有時先這樣寫是為了后來的擴充。 例:條件語句與自然語言描述 if a0 then begin a:=a+1。 s:=s+1。 end。 如果 a 小于 0,那么執(zhí)行兩部分:( 1) a 的值增加 1;( 2) s 的值增加 1。 三、 多分支語句 case {有時也叫多路分支 } 1.格式: case 表達式 of 值 1: 語句 1; 值 2: 語句 2; ?? [else 語句 ] end。 2.示例 ( 1) 兩個分支的情況,還不如直接用條件語句 case random(Maxint) mod 2 of 0: writeln(?Even digit?)。 1: writeln(?Odd digit.?)。 end。 {等同于 if random(maxint) mod 2=0 then writeln(?Even digit.?) else writeln(?Odd digit.?)。} 根據(jù)隨機產(chǎn)生的非負整數(shù)情況來確定 偶數(shù)時:輸出 ?Even digit?; 奇數(shù)時:輸出 ?Odd digit.? ( 2) 根據(jù)字符型變量 ch 的值來確定不同的執(zhí)行 case ch of ?A?..?Z?,?a?..?z?: writeln(ch,? is an identifier character.?)。 ?0?..?9?: writeln(ch,? is a decimal digit.?)。 else writeln(ch,? is a special character.?)。 end。 {等同于: if ((ch=?A?) and (ch=?Z?)) or ( (ch=?a?) and (ch=?z?)) then writeln(ch,? is an identifier character.?) else if (ch=?0?) and (ch=?9?) then writeln(ch,? is a decimal digit.?) else writeln(ch,? is a special character.?)。 } 3.使用注意點 當有 else 部分時它上面的語句的最后一行可以有分號也可以沒有分號,這點跟ifthenelse 不一樣; case 語句結(jié)構(gòu)中最后要有一個 end 作為結(jié)尾;其中的語句可以是單語句也可以是復合語句。 [練習及作業(yè) ]: 輸入三個整數(shù),按由大到小的順序輸出。 設(shè)三個數(shù)為 a, b, c,一種方法可以用條件的并列,列舉出可能有的 6種情況。另一種方法是用條件的嵌套,從而輸出結(jié)果。 2. 編寫程序輸入年份和月份,輸出這個月的天數(shù)。 3. 編一個隨機產(chǎn)生一個 100 以內(nèi)的四則運算題,要求先輸出這個四則運算的式子,這個四則運算的式子要能確保第一 個數(shù)不小于第二個數(shù),如果是除法的話要能確保能夠整除,然后讓用戶輸入結(jié)果,如果輸入的結(jié)果正確則輸出“ Right!”否則輸出“ Error!”。 [分析與提示 ]: 用隨機函數(shù)來產(chǎn)生四則運算的操作數(shù)和操作符,其中操作數(shù)都是 100 以內(nèi)的整數(shù),所以可以直接用 random(100)就行了,如果第一個數(shù)比第二個數(shù)小則交換兩個數(shù)。而操作符(運算符)只有四種可能,因此先用隨機函數(shù)產(chǎn)
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1