




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、全國青少年信息學計全國青少年信息學計算機奧林匹克競賽算機奧林匹克競賽第一章 算法的初步認識第二頁,共86頁。1.1 什么是算法?什么是算法? 算法就是一組有窮的規則,它規定了解決某一特定類型問題的一系列運動,通俗的說就是解決問題的方法與步驟。算法也可以理解為:程序(數據處理)程序(數據處理)+數據結構(數據組織)數據結構(數據組織)算法的性質:1.有限性,算法中的運算項是有限的,且每個運算都可在有限的時間內完成的;2.確定性,即算法中的每一項運算都有明確的定義,無二義性;3.輸入輸出,可以沒有輸入,但是一定要有輸出運算項;4.可行性,即對于任意給定的合法輸入均可得到相應的正確輸出結果。第三頁,
2、共86頁。1.2 算法的描述算法的描述自然語言流程圖(N-S流程圖)程序語言 cobol,pascal,basic,c,c+,java ABpA B不成立成立AA當當P P直到直到P P第四頁,共86頁。【例1-1】交換A和B的值自然語言:(1)賦A和B的初值;(2)把A的值給X;(3)把B的值給A;(4)把X的值給B;(5)輸出A、B的值;vccA 3,B 4X AA BB X流程圖:程序設計語言:Program p1_1;Var a,b,x:integer;BeginA:=3;b:=4;X:=a;a:=b;b:=x;Writeln(a=,a,b=,b);End.【練一練】用流程圖表示將【練
3、一練】用流程圖表示將A和和B兩個數中較大的數給兩個數中較大的數給MAX;第五頁,共86頁。第三章 Pascal語言基礎知識第六頁,共86頁。3.1 程序設計的入門語言程序設計的入門語言Pascal3.2 Pacal基本符號基本符號3.3 Pascal保留字保留字3.4 Pascal標識符標識符3.5 Pascal的數據類型的數據類型3.6 常量和變量常量和變量3.7 Pascal標準函數標準函數3.8 Pascal的運算符及表達式的運算符及表達式3.9 ASCII碼碼3.10 Pascal程序的結構程序的結構第七頁,共86頁。3.1程序設計的入門語言程序設計的入門語言Pascal Pascal
4、是世界上第一個結構化結構化程序設計程序設計高級語言高級語言。結構化結構化順序結構順序結構選擇結構選擇結構循環結構循環結構一個入口一個入口一個出口一個出口層次分明層次分明例:結構化程序的結構由三種基本結構組成,下面( )不屬于這三種基本結構? (A)順序結構 (B)輸入輸出結構 (C)分支結構 (D)循環結構B第八頁,共86頁。Pascal程序的一般結構Program 程序名(參數表); 說明部分Begin語句部分End.(1)程序首部由保留字Program開頭,后面跟一個程序名;其格式為: Program 程序名;程序名;程序名由用戶自己取,它的第一個字符必須是英文字母或下劃線,其后的字符只能
5、是字母或數字和下劃線組成,程序名中不能出現運算符、標點符和空格。第九頁,共86頁。Pascal程序的說明部分(2)說明部分程序中所用的常量、變量,或類型、及過程與自定義函數,需在使用之前預先說明,定義數據的屬性(類型)。Var S,R,C: Real; 是變量說明。只有被說明為某一類型的變量,在程序中才能將與該變量同類型的數值賦給該變量。變量說明的格式為: Var 變量表:類型;變量表:類型;第十頁,共86頁。Pascal程序的語句部分(3)語句部分指由保留字 Begin (開始開始)至 End. (結尾)之間的語句系列,是解決問題的具體處理步驟,也是程序的執行部分執行部分。Pascal程序不
6、管是哪部分,每句末尾都必須有分號分號(;),但允許最接近 End 的那個語句末尾的分號省略;程序結束的End末尾必須有圓點圓點(. ),是整個程序的結束標志。程序中花括號“ ”之間的部分為注釋部分。Program 程序名; 標號說明; (Label)常量說明; (Const) 說明部分類型說明; (Type)變量說明; (Var)過程或函數說明; Begin 程序體 (主程序) 語句系列; 語句部分End. 程序首部 第十一頁,共86頁。【練一練】【練一練】1.Pascal程序的執行部分是_。A.程序體 B.語句 C.程序的說明部分和語句部分 D.整個程序2.標準pascal程序說明部分的正確
7、順序是_。A.lableconstvartype B. varconstlabletypeC. lableconsttypevar D. constvartypelable BC第十二頁,共86頁。3.2 Pascal基本符號基本符號1.英文字母英文字母A Z a z 除字符串中的字母外,其他地方的字母不區分大小寫。除字符串中的字母外,其他地方的字母不區分大小寫。Var a:integer; var A:integer;2.數字數字0 1 2 3 4 5 6 7 8 93.特殊符號特殊符號+ - * / = = ( ) := . , ; : . 除規定的基本符號外,不允許使用其他的符號。除規定
8、的基本符號外,不允許使用其他的符號。第十三頁,共86頁。3.3 Pascal保留字保留字保留字:已被系統使用、有專門的用途。保留字:已被系統使用、有專門的用途。1.程序、函數、過程的起始符號PROGRAM, FUNCTION, PROCEDURE2.說明部分的專用定義符號ARRAY, CONST, FILE, LABEL, PACKED, VAR, RECORD,SET, TYPE3.語句專用符號CASE, DO,DOWNTO,ELSE, FOR,GOTO,IF, OF, REPEAT,THEN,TO,UNTIL,WHILE,WITH ,FORWARD4.運算符號AND, DIV, IN, M
9、OD, NOT,OR5.分隔符號BEGIN,END6.空指針常量NIL第十四頁,共86頁。3.4 Pascal標識符標識符標識符:以字母或下劃線開頭的字母、數學、下劃線序列。標識符:以字母或下劃線開頭的字母、數學、下劃線序列。1.常用的標準標識符:標準常量FalseMaxintTrue標準類型BooleanCharReal Integer Text標準函數AbsArctanChr CosEofEolnExpLnOdd Ord PredRoundSin SqrSqrt SuccTrunc標準過程Get NewPack Page Put ReadReadln Reset RewriteUnpack
10、 WriteWriteln標準文件InputOutput2.用戶自定義標識符:由你自己根據需要來定義。允許大小寫混合,但不能與標準標識符或保留字同名。允許大小寫混合,但不能與標準標識符或保留字同名。第十五頁,共86頁。【練一練】【練一練】1.下列中合法的PASCAL標識符是( )。A1B2C3 (B) FOR (C) 2AB (D) A12.下列是非法的標識符的是( )。A.A23456 B.A_17 C.3X D.P5Q3.下例不是保留字的是( )。(A)A.NEW B.PROGRAM C.DIV D.VARACA第十六頁,共86頁。3.5 Pascal的數據類型的數據類型1.標準數據類型標
11、準數據類型數據類型分類類型符號運算符運算優先級運算結果類型整數類型正整數、負整數、零shortint、 integer、 longint、 byte、Word+、-、*、div、mod*、div、mod+、- 整數實數類型正實數、負實數、實數零Real+、-、*、/*、/ +、-可以與整數混合運算,結果為實數字符類型字符:char字符串:string布爾類型(有序數據)真、假True、falseNot、and、orNotandor布爾類型2.自定義類型自定義類型 枚舉型、子界型第十七頁,共86頁。下面( )是Pascal數。(A)73e4 (B)-e4 (C)36.74-e6 (D)1,742
12、,258下面( )是實數。(A)10 (B)0.0 (C)0 (D)0下面有效的Pascal字符型數據是( )。(A)This is (B)6 (C)Y (D)ABD第十八頁,共86頁。3.6 常量和變量常量和變量1.常量:在程序執行過程中其值不能改變的數據。2.變量:變量:相對于常量,在程序執行中值可變。常量定義:常量定義出現在說明部分。它的語法格式是:const=;.=;例如:例如:const a=12 隱含說明隱含說明a是整型;是整型; 變量說明:變量說明出現在說明部分。它的語法格式是:var:;.:;第十九頁,共86頁。下面常量定義中正確的是( )。 (A)const d=40 or
13、d=100 (B)const s : 0.5 (C)const s=2.15 (D)const s : =(25);下列變量說明中,不合法的是( )。(A)var a = real; (B)var r : Real (C)var red : Integer (D)var i1,i2 : Integer;CA第二十頁,共86頁。3.7 Pascal標準函數n熟悉各個標準函數的用途熟悉各個標準函數的用途n注意函數的自變量的類型和函數值的類型注意函數的自變量的類型和函數值的類型標準函數標準函數1.數學函數Abs(x)inc(x)sqr(x)sqrt(x)Abs(-1)=1 inc(5)=6 sqr(
14、3)=9 sqrt(16)=4 2.轉換函數chr(x)ord(x) round(x)trunc(x)chr(97)=aord(A)=65 round(4.6)=5trunc(1.999)=13.順序函數Pred(x) succ(x) Pred(b)=a succ(a)=b 4.邏輯函數Odd(x) eoln(x) eof(x) odd(5)=true第二十一頁,共86頁。下列函數值是整型的是( )。 (A)chr(23) (B)ord(false) (C)succ(false) (D)odd(98)下列函數值不可能是布爾類型的是( )。(A)odd(x) (B)ord(x) (C)pred(
15、x) (D)succ(x)BB設有變量說明:VAR AA:(C,G,A,J,K);則函數SUCC(A)的取值是( )。 (A) G (B) 3 (C) J (D) BC第二十二頁,共86頁。3.8 Pascal的運算符及表達式1.運算符a.算術運算符+-*/divmod b.邏輯運算符not and or c.關系運算符 = =2.表達式 算術表達式、邏輯表達式、關系表達式注意表達式中的運算符優先級別:(1)同級運算從左到右,不同級別運算從高到低運算;(2)括號優先級最高,從內到外逐層降低;(3)not優先級為4;(4)*,/,div,mod,and優先級別為3;(5)+,-,or優先級別為2
16、。(6)關系運算符優先級別為1。第二十三頁,共86頁。表達式35 div 3 mod 4的值是( )。(A)0 (B)2 (C)3 (D)6下列表達式中,其值為TRUE的是( )。 (A) 150=150 (B)100150(C)ABS(-200)200 (D)SUCC(A)SUCC(A)表達式10*4 mod 5 * 22 / 4* 5的值是 。 i是j的整數倍的布爾表達式 ,m是偶數的布爾表達式是 ,y是閏年的布爾表達式是 。 C0i mod j=0 Not(odd(m)或者或者m mod 2 =0 (y mod 4 =0)and(y mod 100 0) or (y mod 400 =0
17、) A第二十四頁,共86頁。3.9 ASCII碼ASCII碼:美國標準信息交換代碼 8位二進制 右面7位表示字符 最高位檢驗錯誤,或空閑不用常用字符的常用字符的ASCII:字符字符 ASCII碼碼0 48A 65a 97第二十五頁,共86頁。有一編碼規則如下:原碼:A B C X Y Z密碼:Z Y X C B A已知原碼變量為x,則密碼的表達式是 。Chr(ord(A)+ord(Z)-ord(x) 第二十六頁,共86頁。3.10 Pascal程序的結構program exam1; var r,c,s:integer;begin readln(r); c:=3.14*2*r; s:=3.14*
18、r*r; writeln(c,s);end.程序首部說明部分執行部分程序體讀入圓的半徑r求周長c求面積s輸出周長與面積第二十七頁,共86頁。第四章 順序結構程序設計第二十八頁,共86頁。4.1 賦值語句賦值語句變量標識符變量標識符 := 表達式;表達式;注意:注意:1. 不要與=混淆,具有方向性2. 先計算表達式的值,后賦值給變量3. 兩邊類型應相同,例外:當表達式的值為整型時,能自動轉變成實型后賦給一個實型變量4. 一個賦值語句只能給一個變量賦值5. 變量可進行多次賦值6. 賦值語句左邊只能是單個變量第二十九頁,共86頁。Program P4_1(input,output); Const a
19、=128;Var b,d:integer; c:real;Begin b:=a div 16; 先計算a div 16,得8,再賦給b c:=a/b; 計算a/b得16,再自動變為實型16.0賦給c d:=a; d的值為128End.第三十頁,共86頁。Program P4_2(input,output); Var b,d:integer; Begin a:=1; b:=2; a:=b; b:=a;End.在程序中,經常用a:=a+1作計數器,a:=a+x作累加器,a:=a*x作累乘器。第三十一頁,共86頁。下列( )程序行是對的。(A)x:=y:=5; (B)a+b:=c3 (C)y:=1;
20、y:=y+1; (D)i:=x10;C已知R1,R2是實型變量,I1,I2是整型變量下列中錯誤的賦值語句是( )。 (A)I2:=I1+I2 DIV I1 (B)I1:=I1/I2(C)R2:=3/5*SQR(R1+R2) (D)R1:=R2+I1B有變量說明: VAR I1,I2:INTEGER; R1,R2:REAL; B1,B2:BOOLEAN; 設各變量均已賦值,下列語句中無語法錯誤的是( )。 (A)B2:=ORD(R1R2) (B)I2:=I1+R1 (C)B1:=I1=I2 (D)B1:=B1+B2C第三十二頁,共86頁。4.2 輸入(輸入(read、readln)語句)語句輸入
21、語句的格式:輸入語句的格式: read(變量列表);(變量列表); readln(變量列表);(變量列表);執行該語句時,程序進入等待狀態,等待用戶從鍵盤輸入數據,輸入的數據執行該語句時,程序進入等待狀態,等待用戶從鍵盤輸入數據,輸入的數據將依次賦給變量表中的變量。將依次賦給變量表中的變量。第三十三頁,共86頁。注意:注意:1. 變量表中的變量可以是一個,也可以是多個,多個時,要以逗號分開。2. 從鍵盤輸入數據時,數據的個數不能少于變量的個數,否則系統仍處于等待狀態。當數據多于變量個數時,對于readln語句便將其忽略。對于read語句,要么將其忽略,要么被下一個語句讀入。3. 輸入數值型數據
22、時,數據間用空格或回車鍵分隔,最后一定要按回車。輸入字符型數據時,數據間不能用空格或回車分隔,必須連續輸入。4. 從鍵盤輸入的數據必須是常量,且與變量的類型要一致。5. Readln后可以沒有變量名表,()中內容是可選項。此時該語句只相當讀入“回車”符。第三十四頁,共86頁。n輸入數值型的數據時,用空格間隔,直到輸入回車。n輸入字符型時,就不能用空格間隔,也不能用回車分隔。設x是整型變量,y是實型變量,ch1和ch2是字符型變量,輸入語句寫作: Read(x,y,ch1,ch2);若想得到的執行結果為:x=50,y=4.2,ch1=a,ch2=b。輸入:50 4.2ab如果出入:如果出入:50
23、 4.2 ab 結果會是怎么樣的?結果會是怎么樣的?第三十五頁,共86頁。Read與與Readln的區別:的區別:當輸入的個數多于變量的個數時,readln忽略掉多余;read要么忽略,要么被下一個輸入語句讀入。1. Read后面必須有變量表,且只能是變量;readln后允許沒有變量表,若沒有,其作用的是換行讀取數據。(1)Read(a); Read(b,c,d,e); Read(f,g);(2)Readln(a); Readln(b,c,d,e); Readln(f,g);如果兩組語句輸入相同的數據:1 2 34 5 67 8 9 那么兩組語句的執行結果會怎樣?a=1b=2 c=3 d=4
24、e=5f=6 g=7a=1b=4 c=5 d=6 e=7f=0 g=0第三十六頁,共86頁。4.3 輸出(輸出(write、writeln)語句)語句 輸出可以是一項,也可以是多項,輸出多項時各項以逗號分隔。 輸出項可以是任何一個標準數據類型。 輸出項可以是常量,變量,表達式,字符串,函數。 Write語句輸出完最后一項后不換行,此語句至少含有一個輸出項。Writeln語句輸出完最后一項后換行,該語句允許沒有輸出項,此時該語句不輸出任何內容,只起換行作用。輸入語句的格式:輸入語句的格式: write(變量列表);(變量列表); writeln(變量列表);(變量列表);第三十七頁,共86頁。P
25、rogram P4_3(input,output); Const a=1; b=2;Begin writeln(6); writeln(a); writeln(sqr(3); writeln(a+b); writeln(a+b,a+b); write(pi=); writeln(3.14);End.第三十八頁,共86頁。輸出項可以是常量,變量,表達式,字符串。Write與與writeln的區別的區別Write輸出后不換行,而writeln換行。Write至少有一個輸出項,而writeln可以沒有輸出項,僅起換行作用。場寬場寬場寬:數據輸出時所占據的列數。1.標準場寬標準場寬整型 12 實型 1
26、7(以科學計數法輸出)字符型 1 布爾型 4(true)或5(false)默認時按標準輸出,小于場寬時左側補空格默認時按標準輸出,小于場寬時左側補空格第三十九頁,共86頁。2.自定義場寬自定義場寬(1)單場寬)單場寬場寬可以是正整數,也可是值為正整數的整型表達式。輸出超過場寬時,自定義場寬失效,按實際位數輸出。輸出項可以是:整型,布爾型和字符型,但不允許是實型。(2)雙場寬)雙場寬雙場寬:用來表示實數的輸出格式。定義:輸出項:總場寬:小數位數輸出項:總場寬:小數位數沒有達到場寬時,左側補空格;超出時,按實際輸出。雙場寬的輸出結果并未改變該數的精度。Writeln(-10.1195:9:3);輸
27、出: -10.120第四十頁,共86頁。設有程序 PROGRAM exam(Input,Output); Var ch1,ch2,ch3:Char; BEGIN Readln(ch1,ch2,ch3); Readln(ch1,ch2); Readln(ch1); Writeln(ch1,ch2,ch3) END. 運行以上程序時,若輸入為: abc def ghi 則輸出是( )。 (A) abc (B) gec (C) ceg (D) adgB第四十一頁,共86頁。下面的輸出語句中錯誤的語句是( ) (A)Writeln($is used to mean US doller); (B)Wri
28、teln(The word china has five letters); (C)Writeln(The sign $is used to mean USdoller); (D)Writeln(The word china has five letters);D設A,B,C為整型變量,并有以下程序段: READ(A); READLN(B,C); READLN(C,B); READLN(A,B); WRITELN(A:2,B:2,C:2); 若運行時輸入: 1 2 3 4 5 6 7 8 9 則輸出是( )。(A) 1 2 3 (B) 1 4 7 (C)7 8 3 (D)7 8 4D第四十二頁
29、,共86頁。寫出程序的運行結果 PROGRAM P4_3 (Input,Output); Var a:integer; b:real; c:char; d:boolean; BEGIN a:=78; b:=2003.09; c:=%; d:=true; writeln(a,a:2); writeln(b,b:5:2); writeln(c,c:2); writeln(d,d:5); writeln(zhe:6); END.第四十三頁,共86頁。4.4 編程需要好算法編程需要好算法n分析問題n設計算法n編寫程序n上機調試數學模型方法和步驟實現算法編輯、調試、運行算法的特點:算法的特點:有窮性:有
30、限個步驟終止確定性:每一項計算有明確的定義可行性:每一項計算在有限時間內完成1. 輸入輸出:輸入可無,輸出必有第四十四頁,共86頁。4.5 編程小指揮編程小指揮流程圖流程圖表述方法優點缺點自然語言日常使用通俗易懂文字敘述繁瑣容易產生歧義流程圖形象、直觀邏輯清楚、易理解占版面多繪畫麻煩N-S圖簡化成幾何圖形第四十五頁,共86頁。N-S圖:圖:基本結構:順序結構、選擇結構、循環結構第四十六頁,共86頁。 輸入兩個數(例如2和3),將其中的大數存入max。試用三種方式描述算法。(1)自然語言描述算法為變量a賦值2,為變量b賦值為3;將a的值賦給max;比較b與max;當bmax時,將b的值賦給max
31、;輸出max的值。(2)流程圖1.(3)N-S圖第四十七頁,共86頁。用用N-S圖寫出下列問題的算法。圖寫出下列問題的算法。1.某航空公司,對旅客隨身攜帶的物品收費標準為:30kg以下(含30kg)不收費,超出30kg的部分每千克收20元。2.求n!。(n!=1*2*3*n)。第四十八頁,共86頁。【練一練】輸出下列程序的結果【練一練】輸出下列程序的結果1.Program ex1;Var a,b,s,d:integer;L,e,g:boolean;Begin A:=3; b:=7; S:=a+b; d:=a div b; l:=ab; write(s=,s:5); writeln(d=,d:5
32、); writeln(l=,l); writeln(e=,e,g=,g); Writeln(b/a:5:5);End.2.Program ex2;Var a,b:integer;C,d:boolean;Begin a:=8; b:=7; c:=odd(a);d:=odd(b); Writeln(c=,c); Writeln(d=,d); If ab then Begin If c=d then write(c) Else write(d) endEnd.結果是:結果是:s= 10 d= 0L=trueE=false g=false2.33333結果是:結果是:C=falseD=truetrue
33、第四十九頁,共86頁。4.6 順序結構程序設計順序結構程序設計 有三個小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。現在他們做一個游戲。從甲開始,將自己的糖分三份,自己留一份,其余兩份分別給乙與丙,多余的糖果自己吃掉,然后乙與丙也依次這樣做。問最后甲、乙、丙三人各有多少粒糖果? program ex2;var A,B,C:integer;beginA:=50;B:=43;C:=13; 初始時每個小朋友所擁有的糖果數A:=A div 3; B:=B+A;C:=C+A;甲小朋友分糖果后,每個人擁有的糖果數變化情況B:=B div 3; A:=A+B;C:=C+B; 乙小朋友分糖果后
34、,每個人擁有的糖果數變化情況C:=C div 3; A:=A+C;B:=B+C; 丙小朋友分糖果后,每個人擁有的糖果數變化情況writeln(A=,A,B=,B,C=,C); 輸出結果readln;end.第五十頁,共86頁。4.7 應用實例應用實例例例1:雞兔同籠問題。已知雞和兔的總數量是雞兔同籠問題。已知雞和兔的總數量是H,雞兔腿的總數量為,雞兔腿的總數量為F,求雞和兔各,求雞和兔各多少只。多少只。分析:設雞為分析:設雞為c只,兔為只,兔為r只,則有只,則有C+r=H2*c+4*r=F解得:解得:c=(4*H-F) DIV 2, r=H-c第五十一頁,共86頁。程序:程序:雞兔同籠問題。已
35、知雞和兔的總數量是雞兔同籠問題。已知雞和兔的總數量是H,雞兔腿的總數量為,雞兔腿的總數量為F,求雞和兔各多少,求雞和兔各多少只。只。第五十二頁,共86頁。第五章 選擇結構程序設計第五十三頁,共86頁。5.1 邏輯運算及布爾表達式邏輯運算及布爾表達式(1)布爾常量 const t=true; f=false; 在程序的執行部分就可以用t代表“真”,f代表“假”。(2)布爾變量 var t,f:boolean; 定義后t和f就成了布爾變量,他們的值可能是true或false;Pascal語言系統中將語言系統中將true和和false的序號定為的序號定為1和和0,可以看出,可以看出true要大于要大
36、于false,即:即:falsetrue.注意:布爾變量的值只允許通過賦值獲得,不能通過注意:布爾變量的值只允許通過賦值獲得,不能通過read語句輸入。語句輸入。第五十四頁,共86頁。(3)關系表達式)關系表達式 關系表達式是由關系運算符連接而成的表示變量關系的式子,表達運算符前后數據之間的大小關系。關系運算對數據的比較則是按照其序號大小關系進行比較的,如:XY。關系運算符:關系運算符: 等于等于 = 不等于不等于 小于小于 小于等于小于等于 =第五十五頁,共86頁。(4)邏輯運算)邏輯運算 邏輯運算符:not(非)、OR(或)、AND(與)PQP or QP and QTrueTrueTru
37、eTrueTrueFalseTrueFalseFalseTrueTrueFalseFalseFalseFalseFalsePNot PTrueFalseFalseTrue第五十六頁,共86頁。邏輯運算的注意點邏輯運算的注意點notandor括號函數、not*、/、div、mod、and+、-、or、=、=、=、同級從左至右1. 邏輯表達式中,如果邏輯運算符連接的是布爾表達式,必須用括號將布爾表達式括起來,否則會發生邏輯錯誤,例如(a=0)。表達式True AND NOT Odd(-202)(7-3y then writeln(x=,x) else writeln(y=,y); end.例:輸入
38、兩個整數,輸出其中較大者。程序如下:例:輸入兩個整數,輸出其中較大者。程序如下:第五十九頁,共86頁。5.2 條件(條件(if)語句)語句5.1.2復合語句復合語句if a mod 2 =0 thenbegin writeln(a, -oushu);b:=a;writeln(b);endelse writeln(a,-jishu);復合語句的格式復合語句的格式Begin 語句語句1; 語句語句2; 語句語句3; 語句語句n;end;第六十頁,共86頁。Program example2; var a,b:integer; begin readln(a,b); if ab then begin w
39、riteln(1) a); writeln(2) b); end else begin writeln(1) b); writeln(1) a); end; end.例:某超市要根據兩種貨物例:某超市要根據兩種貨物a和和b的庫存情況制定進貨順序,原則是的庫存情況制定進貨順序,原則是庫存少的具有優先進貨權。程序如下:庫存少的具有優先進貨權。程序如下:復合語句復合語句復合語句復合語句第六十一頁,共86頁。Program test1; var x,y,z,t:integer; begin write(Please input x,y,z:); readln(x,y,z); if xy then be
40、gin t:=x; x:=y; y:=t; end; if xz then begin t:=x; x:=y; y:=t; end; if yz then begin t:=x; x:=z; z:=t; end; writeln(x,y:4,z:4); end.練一練:已知程序如下,輸出程序運行的結果。練一練:已知程序如下,輸出程序運行的結果。輸入數據:輸入數據:12 33 45結果為:結果為:45 33 12第六十二頁,共86頁。5.3 條件(條件(if)語句的嵌套)語句的嵌套注意:注意:多層嵌套if語句時,要注意if、then、else的配套;其中else是與最近最近的一個if配套的。1.
41、 為了增強程序的可讀性,最好將條件嵌套語句寫成縮進式形式。IF 條件 THEN BEGIN if 條件1 then else ; END ELSE BEGIN if 條件2 then else ; end; 第六十三頁,共86頁。Program example4; var x:real; y:integer; begin write(Please input x:); readln(x); if x0 then y:=-1 else例:有一個函數表達式為:例:有一個函數表達式為:y =-1 x00 x01 x0 then y:=1 else y:=0;Writeln(y=,y);End.第六十
42、四頁,共86頁。Program example5; var score:real; if score=60 begin then writeln(C) write(Please input the score:); else writeln(D); readln(score); end. write(deng ji shi:); if score=90 then writeln(A) else if score=80 then writeln(B) else 例:輸入某同學的數學百分制成績,要求輸出成績等級例:輸入某同學的數學百分制成績,要求輸出成績等級A、B、C、D。規定。規定90分以上為分
43、以上為A,80-90分為分為B,60-79分為分為C,60分分以下者為以下者為D。第六十五頁,共86頁。下列程序段運行后,變量value的值為( )。X:=20;If X=10 then value:=5*X else value:=4*X;(A)100 (B)80 (C)90 (D)70下列程序段運行后,變量max的值為( )。a:=5; b:=10;max:=a;if bmax then max:=b;(A)5 (B)10 (C)5和10 (D)以上都不是AB已知x=10,y=20,z=30,以下程序段執行后x,y,z的值應是( )。 IF xy THEN z:=x; x:=y; y:=z
44、; (A) x=10,y=20 ,z=30 (B) x=20,y=30,z=30 (C)x=20,y=30 ,z=10 (D) x=20,y=30,z=20A第六十六頁,共86頁。(C)if (ab)and (c=d) then x:=yelse m:=n(D)if ab thenbeginif c=d then x:=yend else m:=n當同時滿足a=b時把n賦給m,應選用的程序段是( )。 (A) if ab then if c=d then x:=y else m:=n (B) if ab then begin if c=d then write(c); else write(d
45、); endend.輸出:c=falsed=truetrue第六十七頁,共86頁。5.4 分情況(分情況(case)語句)語句 Case語句: 當多分支選擇的各個條件由同一個表達式表達式的不同結果值決定時,可以用case語句實現。 格式:格式:case 表達式 of 標號1:語句1; 標號2:語句2; 標號n:語句n; else 語句n+1end; 有序類型(整型、字符型、布爾有序類型(整型、字符型、布爾型、枚舉型、子界型),不能是型、枚舉型、子界型),不能是實型實型case語句在使用時有幾點要注意:語句在使用時有幾點要注意: 1. end與case對應;標號與語句之間用“:”分隔;else與
46、語句之間不用分隔符。 2. 標號必須是一常量,其類型與表達式的類型一致。 3. 可以多個標號對應同一條語句,標號之間用“,”分隔。 4. 語句可以是多個語句,但必須用語句括號beginend括起 5. case語句也可以嵌套第六十八頁,共86頁。Program example6; var x,y,s:real; ch:char; begin write(Please input x,y,s:); readln(x,y); readln(ch); case ch of +: s:=x+y; -: s:=x-y; *: s:=x*y; /: s:=x/y; end; writeln(x:8:2,c
47、h,y:8:2,=,s:8:3) end.例:設計一個簡單的計算器,具有加、減、乘、除。例:設計一個簡單的計算器,具有加、減、乘、除。第六十九頁,共86頁。例:從鍵盤上讀入年和月,輸出該月有多少天。例:從鍵盤上讀入年和月,輸出該月有多少天。program pcase2;var year,month,day:integer; runnian:boolean;begin write(Enter year and month:); readln(year,month); case month of 1,3,5,7,8,10,12: day:=31; 4,6,9,11: day:=30;以上處理31天
48、和30天的情況 2:begin runnian:=(year mod 400=0) or (year mod 4=0) and (year mod 1000); case runnian of true: day:=29; false: day:=28; end; end; 以上處理2月的情況:閏年29天,平年28天 end;end.第七十頁,共86頁。Program test1; var num1,num2:integer; begin write(Please input the first integer:); readln(num1); write(Please input the s
49、econd integer:); readln(num2); if (num1num2) then writeln(num1,num2) else if (num1=num2) then writeln(num1,=,num2) else writeln(num1,num2);end.閱讀程序寫結果:閱讀程序寫結果:輸入:輸入:45 88 輸入:輸入:33 22 輸出:輸出:4588輸出:輸出:3222第七十一頁,共86頁。Program test2; var a,b,c,d,sum:longint; begin readln(a,b,c,d); a:=a mod 23; b:=b mod 2
50、8; c:=c mod 33; sum:=a*5544+b*14421+c*1288 d; sum:=sum+21252; sum:=sum mod 21252 if (sum=0) then sum:=21252; writeln(sum); end.輸入:輸入:283 102 23 320 輸出:輸出:8910第七十二頁,共86頁。Program test3; var a,b:integer; begin read(a,b); case a of 1: b:=a*10; 2: b:=a*20; 3: b:=a*30; 4: b:=a*40; 5: b:=a*50; else b:=0; e
51、nd; writeln(b); end.輸入:輸入:3 4 輸入:輸入:8 5 輸出:輸出:90輸出:輸出:0第七十三頁,共86頁。Free Pascal實例演示Program p2_01(input,output);Var a,b,c: integer; begin writeln(請輸入兩個數:請輸入兩個數:); read(a,b); c:=a; a:=b; b:=c; writeln(交換后的值是:交換后的值是:,a:5,b:5); end.這是一段這是一段Pascal語言寫的代碼,它運行的結果是什么?解決了什么問題呢?語言寫的代碼,它運行的結果是什么?解決了什么問題呢?第七十四頁,共8
52、6頁。編輯器中的代碼編輯器中的代碼菜單欄菜單欄編輯窗口編輯窗口狀態欄狀態欄第七十五頁,共86頁。File菜單的介紹File菜單用于對文件的管理,如新建文件、打開文件、保存文件等。菜單用于對文件的管理,如新建文件、打開文件、保存文件等。子菜單子菜單快捷鍵快捷鍵功能描述功能描述New創建新的編輯窗口,以創建新的編輯窗口,以NONAME00.PAS為新為新的文件的初始名的文件的初始名OPENF3顯示打開文件對話框,供選擇打開已有的文件顯示打開文件對話框,供選擇打開已有的文件SAVEF2將當前的文件存盤將當前的文件存盤SACVE AS以用戶指定的路徑和文件名將當前文件存盤SAVE ALL所有編輯窗口內
53、的文件存盤Change dir改變當前工作目錄print打印當前窗口中的內容Print setup打印機設置ExitALT+X推出推出PASCAL第七十六頁,共86頁。Edit菜單的介紹Edit菜單用于對當前窗口中的內容進行編輯,如復制、粘貼、刪除等。菜單用于對當前窗口中的內容進行編輯,如復制、粘貼、刪除等。子菜單子菜單快捷鍵快捷鍵功能描述功能描述UndoAlt+Backspace撤銷最近的操作Redo撤銷Undo的操作CutShift+Del刪除選定的文本,并將其置于剪貼板中刪除選定的文本,并將其置于剪貼板中CopyCtrl+Ins將選中的文本復制到剪貼板中將選中的文本復制到剪貼板中PasteShift+Ins將剪貼板中的文本粘貼到當前窗口光標處將剪貼板中的文本粘貼到當前窗口光標處ClearCtrl+Del刪除所選定的文本刪除所選定的文本show clipboard顯示剪貼板中的內容第七十七頁,共86頁。Search菜單的介紹Search菜單提供與字符串搜索的相關功能,如執行程序、單步執行等。菜單提供與字符串搜索的相關功能,如執行程序、單步執行等。子菜單快捷鍵功能描述Find顯示顯示Find對話框,在當前編輯框中尋找指定的對話框,在當前編輯框中尋找指定的字符串字符串Replace顯示顯示replace對話框,查找并替換指定的字符對話框,查找
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國滑板鞋齒輪行業投資前景及策略咨詢研究報告
- 2025年中國DVD5母盤行業投資前景及策略咨詢研究報告
- 商業空間衛生管理優化方案
- 教育技術創新助力遠程教育發展
- 教育政策與提高教育公平性探討
- 教育技術創新實驗室AI技術實踐分享
- 深度解析虛擬現實教育在各學科的應用
- 教育心理學在跨文化教育中的應用研究
- 海員培訓實操課件
- 煤礦地面安全培訓
- 2025年廣東省廣州市南沙區中考二模道德與法治試題
- 2025屆重慶市普通高中學業水平選擇性考試預測歷史試題(含答案)
- T/CSPSTC 112-2023氫氣管道工程施工技術規范
- 24春國家開放大學《農業推廣》調查報告參考答案
- 機械原理課程設計-沖壓機構及送料機構設計說明書
- 押金收據條(通用版)
- [甘肅]最新甘肅省造價文件匯編(310頁)
- 鋼框架結構計算書畢業設計
- 品牌中國產業聯盟簡介ppt課件
- 肝素鈉生產工藝綜述
- 壓力管道氬電聯焊作業指導書
評論
0/150
提交評論