青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹_第1頁(yè)
青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹_第2頁(yè)
青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹_第3頁(yè)
青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹_第4頁(yè)
青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、青少年信息學(xué)競(jìng)賽簡(jiǎn)要介紹青少年信息學(xué)(計(jì)算機(jī))奧林匹克競(jìng)賽(早期稱為青少年計(jì)算機(jī)程序設(shè)計(jì)競(jìng)賽)是旨在廣大青少年中普及計(jì)算機(jī)教育,推廣計(jì)算機(jī)應(yīng)用的一項(xiàng)學(xué)科性競(jìng)賽活動(dòng)。全國(guó)從1984年開(kāi)始舉辦全國(guó)性競(jìng)賽。而自從1989年我國(guó)參加第一屆國(guó)際信息學(xué)奧林匹克(International Olympiad in Informatics, 簡(jiǎn)稱IOI)以來(lái),全國(guó)青少年計(jì)算機(jī)程序設(shè)計(jì)競(jìng)賽也更名為全國(guó)青少年信息學(xué)(計(jì)算機(jī))奧林匹克(National Olympiad in Informatics, 簡(jiǎn)稱NOI)。全國(guó)信息學(xué)奧林匹克競(jìng)賽是經(jīng)國(guó)家教委批準(zhǔn),中國(guó)科協(xié)具體領(lǐng)導(dǎo),由中國(guó)計(jì)算機(jī)學(xué)會(huì)主辦的。浙江省信息學(xué)奧林匹

2、克競(jìng)賽活動(dòng)從84年參加全國(guó)賽開(kāi)始,由省科學(xué)技術(shù)協(xié)會(huì)、省教育廳和省計(jì)算機(jī)學(xué)會(huì)聯(lián)合組織。 為促進(jìn)計(jì)算機(jī)普及并兼顧提高,從95年開(kāi)始全國(guó)舉辦信息學(xué)奧林匹克競(jìng)賽分區(qū)聯(lián)賽,根據(jù)浙江實(shí)際情況,我省將分區(qū)聯(lián)賽初、復(fù)賽作為省信息學(xué)奧賽的初賽和復(fù)賽。浙江省開(kāi)始幾年初賽試題自己命題,現(xiàn)在采用全國(guó)卷。一 信息學(xué)奧林匹克競(jìng)賽的內(nèi)容和考核方式:對(duì)學(xué)生學(xué)習(xí)計(jì)算機(jī)理論知識(shí)和實(shí)踐能力有一個(gè)整體性的全面要求,也即整個(gè)信息學(xué)(計(jì)算機(jī))競(jìng)賽已成為智力和應(yīng)用計(jì)算機(jī)能力的競(jìng)賽,涉及到有關(guān)計(jì)算機(jī)基礎(chǔ)知識(shí)、計(jì)算機(jī)軟件知識(shí)、程序設(shè)計(jì)知識(shí)、組合數(shù)學(xué)和運(yùn)籌學(xué)的知識(shí)、人工智能初步知識(shí)以及計(jì)算機(jī)應(yīng)用知識(shí)等,同時(shí)要求學(xué)生有較強(qiáng)的編程和上機(jī)調(diào)試的實(shí)踐能

3、力。 1 NOI全國(guó)分區(qū)聯(lián)賽初賽 (每年10月左右)對(duì)象:在校中學(xué)生, 分初中、高中組考試形式:筆試 性質(zhì): 普及確定獲初級(jí)選手證書(shū)名單及進(jìn)入復(fù)賽名單,在各地市舉行。2NOI全國(guó)分區(qū)聯(lián)賽復(fù)賽 (每年12月左右)對(duì)象:初賽優(yōu)勝者 分初中、高中組考試形式:上機(jī)試 性質(zhì):普及兼顧提高確定全國(guó)分區(qū)聯(lián)賽一、二等獎(jiǎng),省各等獎(jiǎng)及全國(guó)各級(jí)證書(shū)獲得者名單,在杭州進(jìn)行,省派評(píng)委協(xié)助測(cè)評(píng)。信息學(xué)奧林匹克競(jìng)賽復(fù)賽的考核方式是采用封閉式(連續(xù)34小時(shí))上機(jī)編程解題的形式,編程語(yǔ)言基本限于BASIC與 PASCAL,競(jìng)賽難度較大。程序完成后要通過(guò)嚴(yán)格的數(shù)據(jù)測(cè)試,這就對(duì)同學(xué)們編程能力有更高的要求:不但要能編程,編好的程序能

4、運(yùn)行,而且所設(shè)計(jì)的程序還要能通過(guò)在各種邊界條件下和各種環(huán)境下設(shè)置的測(cè)試數(shù)據(jù)。二 全國(guó)青少年信息學(xué)奧林匹克聯(lián)賽大綱競(jìng)賽大綱一、初賽內(nèi)容與要求:(表示普及組可不涉及,以下同)計(jì)基算本機(jī)常的識(shí)*誕生與發(fā)展 *特點(diǎn) *在現(xiàn)代社會(huì)中的應(yīng)用 *計(jì)算機(jī)系統(tǒng)的基本組成 *計(jì)算機(jī)中的數(shù)的表示 *計(jì)算機(jī)的工作原理# *計(jì)算機(jī)信息安全基礎(chǔ)知識(shí) *計(jì)算機(jī)網(wǎng)絡(luò) 計(jì) 基算 本機(jī) 操的 作*常見(jiàn)操作系統(tǒng)的使用基礎(chǔ)*常用輸入/輸出設(shè)備的種類、功能、使用*漢字輸入/輸出方法 *常用計(jì)算機(jī)屏示信息程序設(shè)計(jì)基本知識(shí)程序的表示*自然語(yǔ)言的描述 *PASCAL或BASIC語(yǔ)言數(shù)據(jù)結(jié)構(gòu)*簡(jiǎn)單數(shù)據(jù)的類型 *構(gòu)造類型:數(shù)組、字符串*了解基本

5、數(shù)據(jù)結(jié)構(gòu)(線性表、隊(duì)列與棧)程序設(shè)計(jì)*結(jié)構(gòu)化程序的基本概念 *閱讀理解程序的基本能力*具有完成下列過(guò)程的能力:現(xiàn)實(shí)世界(指知識(shí)范疇的問(wèn)題)信息世界(表達(dá)解法)計(jì)算機(jī)世界(將解法用計(jì)算機(jī)能實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和算法描述出來(lái))基本算法處 理*簡(jiǎn)單搜索 *字串處理 *排序 *查找 *統(tǒng)計(jì) *分類 *合并 *簡(jiǎn)單的回溯算法 *簡(jiǎn)單的遞歸算法二、復(fù)賽內(nèi)容與要求: 在初賽的內(nèi)容上增加以下內(nèi)容:計(jì)算機(jī)軟 件*操作系統(tǒng)的使用知識(shí) *編程語(yǔ)言的使用 數(shù)據(jù)結(jié)構(gòu)*結(jié)構(gòu)類型中的記錄類型 *指針類型 *文件(提高組必須會(huì)使用文本文件輸入)*鏈表 *樹(shù) *圖#程序設(shè)計(jì)*程序設(shè)計(jì)能力 *設(shè)計(jì)測(cè)試數(shù)據(jù)的能力*運(yùn)行時(shí)間和占用空間的估

6、算能力#算法處理*排列組合的應(yīng)用 *進(jìn)一步加深回溯算法、遞歸算法*分治法 *搜索算法:寬度、深度優(yōu)先算法*表達(dá)式處理:計(jì)算、展開(kāi)、化簡(jiǎn)等# *動(dòng)態(tài)規(guī)劃#三、初賽試題類型:注:試題語(yǔ)言兩者選一、高中學(xué)生必須參加提高組聯(lián)賽。 ( 程序設(shè)計(jì)語(yǔ)言:基本BASIC或TURBO PASCAL) *判斷 *填空 *完善程序 *讀程序?qū)戇\(yùn)行結(jié)果 *問(wèn)答四、推薦讀物: *分區(qū)聯(lián)賽輔導(dǎo)叢書(shū) *學(xué)生計(jì)算機(jī)世界報(bào)三 Pascal語(yǔ)言一、 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)實(shí)際上就是為了使程序具有合理的結(jié)構(gòu),以便保證和驗(yàn)證程序的正確性而規(guī)定的一套進(jìn)行結(jié)構(gòu)程序設(shè)計(jì)的方法。用結(jié)構(gòu)化程序設(shè)計(jì)的方法設(shè)計(jì)出來(lái)的程序稱為結(jié)構(gòu)化程序。結(jié)構(gòu)

7、化程序設(shè)計(jì)語(yǔ)言就是反映了結(jié)構(gòu)化程序設(shè)計(jì)的要求和限制,便于用來(lái)書(shū)寫(xiě)結(jié)構(gòu)化程序的語(yǔ)言。用這種語(yǔ)言書(shū)寫(xiě)的程序易于保證正確性。 二、 PASCAL語(yǔ)言的特色 從使用者的角度看,PASCAL語(yǔ)言有以下幾個(gè)主要特點(diǎn): 1、它是結(jié)構(gòu)化語(yǔ)言 PASCAL語(yǔ)言是結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。PASCAL語(yǔ)言提供了直接實(shí)現(xiàn)3種基本結(jié)構(gòu)的語(yǔ)句心以及定義子程序(“過(guò)程”和“函數(shù)”)的功能??梢苑奖愕臅?shū)寫(xiě)出結(jié)構(gòu)化的程序。在編寫(xiě)程序時(shí)可以完全不使用轉(zhuǎn)向語(yǔ)句。這就易于保證程序的正確性和易讀性。PASCAL語(yǔ)言強(qiáng)調(diào)的是可靠性、易讀性和概念性的清晰性。 2、有豐富的數(shù)據(jù)類型 PASCAL語(yǔ)言提供了整型、實(shí)型、字符型、布爾型、枚舉型、子

8、域型以及由以上類型構(gòu)成的數(shù)組類型、集合類型、記錄類型和文件類型。此外,還提供了指針類型。PASCAL語(yǔ)言所提供的豐富的數(shù)據(jù)結(jié)構(gòu)和上述的結(jié)構(gòu)化性質(zhì),使得它可以被方便地用來(lái)描述復(fù)雜的算法,得到質(zhì)量較高的程序。 3、能適應(yīng)于數(shù)值計(jì)算和非數(shù)值信息處理領(lǐng)域 在PASCAL語(yǔ)言出現(xiàn)之前,F(xiàn)ORTRAN語(yǔ)言主要處理科學(xué)計(jì)算,而COBOL語(yǔ)言則主要用于非數(shù)值信息處理。PASCAL語(yǔ)言則兼顧了這兩個(gè)不同領(lǐng)域的應(yīng)用。PASCAL語(yǔ)言可廣泛應(yīng)用于各種領(lǐng)域,還可以用于計(jì)算機(jī)輔助教育、計(jì)算機(jī)繪圖等應(yīng)用領(lǐng)域。 4、PASCAL程序的書(shū)寫(xiě)格式比較自由 PASCAL允許一行寫(xiě)多個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫(xiě)在多行上,這樣就可以使P

9、ASCAL程序?qū)懙孟裰v詩(shī)歌格式一樣優(yōu)美,便于閱讀。 除了以上優(yōu)點(diǎn)外,PASCAL語(yǔ)言還具有簡(jiǎn)單易學(xué)的特點(diǎn),許多學(xué)校把PASCAL作為程序設(shè)計(jì)課程的第一種程序設(shè)計(jì)語(yǔ)言。 PASCA:L語(yǔ)言的主要缺點(diǎn):不夠靈活,書(shū)寫(xiě)較麻煩。四 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)基礎(chǔ)課程之一,是十分重要的核心課程。計(jì)算機(jī)的所有系統(tǒng)軟件和應(yīng)用軟件都要用到各種類型的數(shù)據(jù)結(jié)構(gòu)。要想更好地運(yùn)用計(jì)算機(jī)來(lái)解決實(shí)際問(wèn)題,僅僅學(xué)習(xí)計(jì)算機(jī)語(yǔ)言而缺乏數(shù)據(jù)結(jié)構(gòu)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,而打好“數(shù)據(jù)結(jié)構(gòu)”這門(mén)課程的扎實(shí)基礎(chǔ),對(duì)于學(xué)習(xí)計(jì)算機(jī)專業(yè)的其他課程都是十分重要的。隨著計(jì)算機(jī)應(yīng)用領(lǐng)域不斷擴(kuò)大,非數(shù)值計(jì)算問(wèn)題占據(jù)了當(dāng)今計(jì)算機(jī)應(yīng)用的絕大多數(shù),簡(jiǎn)單的數(shù)據(jù)

10、類型已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足需要,各數(shù)據(jù)元素之間的復(fù)雜聯(lián)系已經(jīng)不是普通數(shù)學(xué)方程所能表達(dá)的。因此,掌握好數(shù)據(jù)結(jié)構(gòu)方面的知識(shí),對(duì)于提高我們解決實(shí)際問(wèn)題的能力將會(huì)有莫大的幫助。實(shí)際上一個(gè)好的程序無(wú)非是選擇一個(gè)合適的數(shù)據(jù)結(jié)構(gòu)和好的算法,而好的算法的選擇很大程度上取決于描述實(shí)際問(wèn)題的數(shù)據(jù)結(jié)構(gòu)的選取。所以,學(xué)好數(shù)據(jù)結(jié)構(gòu),將是進(jìn)一步提高我們程序設(shè)計(jì)的關(guān)鍵之一。五 算法例子1稱小球重量:有6個(gè)小球分別用16編號(hào), 其中5個(gè)重量相同?,F(xiàn)在有一架臺(tái)稱,一次能稱出放在上面的若干物體的總重,要求編一個(gè)程序,讓計(jì)算機(jī)找出一種稱法,只要稱3次就可以知道每個(gè)小球的重量。具體操作時(shí)由操作者默想6個(gè)物體的重量,然后由計(jì)算機(jī)用編號(hào)提問(wèn)若

11、干物體的重量,如此3次后程序應(yīng)能輸出每個(gè)物體的重量。PROGRAM EX02;VARS1, S2, S3, p: integer;BEGINP:=0;write(請(qǐng)輸入1號(hào)+2號(hào)+3號(hào)+4號(hào)的重量總和:); read(s1);write(請(qǐng)輸入1號(hào)+2號(hào)+5號(hào)的重量總和:'); read(S2);IF 3*s1<>4*s2 THENBEGINwrite('請(qǐng)輸入1號(hào)+3號(hào)的重量總和:); read(s3);IF S1+S3=2*S2 THEN BEGIN P:=1; Writeln(第1號(hào)重, S3+S2-S1,其余重,S2-S3);END;IF S3+2*S2 =

12、2*S1 THENBEGIN p:=1; writen(第2號(hào)重, 3*S2-2*S1, ,其余重,S1-S2); END;IF 2*S2+3*S33*S1 THENBEGIN p:=1; writeln(第3號(hào)重,S3-(S2 div 3),其余重,S2 div 3); END;IF 2*S23*S3 THEN BEGIN p:=1; writeln(第4號(hào)重,S1-3*(S3 div 2),其余重,S3 div 2); END;IF S1 =2*S3 THENBEGIN p:=1; writeln(第5號(hào)重,s2-2*(s3 div 2),其余重, s3 div 2), END;IF p:

13、=0 THEN writeln('輸入的數(shù)據(jù)不正確!');ENDELSE IF 3*s1 = 4*s2 THENBEGIN write('請(qǐng)輸入6號(hào)的重量:'); read(s3);writeln('第6號(hào)重',s3, '其余重' ,s2 div 3);END;Writeln;END.2打印奇數(shù)階幻方: 方法:M×M 階奇數(shù)幻方,在最后一行(第 M行)的中間(M+1)/2處填上1,左下方向填2, .,若前方已經(jīng)有數(shù),在原數(shù)的上方填入。 三階: 2 9 4 7 5 3程序如下: 6 1 8program huafang;

14、var i,j,k,n :integer; a: array1.20,1.20 of integer; 五階:9 2 25 18 11 begin 3 21 19 12 10 for i:= 1 to 20 do 22 20 13 6 4 for j:= 1 to 20 do ai,j:=0; 16 14 7 5 23 write('Input n:'); readln(n); 15 8 1 24 17 while (n mod 2=1) and (n<=19) do begin i:=n; j:=(n div 2)+1; ai,j:=1; for k:= 2 to n*

15、n do begin i:=i+1; j:=j-1; if i=n+1 then i:=1; if j=0 then j:=n; if ai,j=0 then ai,j:=k else begin i:=i-2; j:=j+1; if i<0 then i:=i+n; if j=n+1 then j:=1; ai,j:=k; end; end; for i:= 1 to n do begin for j:= 1 to n do write(ai,j:4); writeln; end; exit; end; write('Error!'); end.313個(gè)人編號(hào)圍成一圈,

16、從1開(kāi)始,4個(gè)一數(shù),數(shù)到者出列,打印出列的順序。(方法一:) Program EX1301; Const m=13;t=4; Var i,k,p :integer; A:array1.m of integer; Begin For i:= 1 to m do ai:=1; I:=0; k:=0; p:=0; Repeat I:=i+1;if i=m+1 then i:=1; K:=k+ai; If k=t then Begin Write(i:4);ai:=0; p:=p+1; k:=0; End; Until p=m; Writeln; End. (方法二:鏈接表) Program EX13

17、02; Const m=13;t=4; Var i,j,k,p :integer; A:array1.m of integer; Begin For i:= 1 to m-1 do ai:=i+1; Am:=1; i:=m; k:=1; p:=0; Repeat i:=ai; k:=k+1; If k=t then Begin Write(ai:4); ai:=aai; p:=p+1; k:=1; End; Until p=m; writeln; End.出列順序: 4 8 12 3 9 1 7 2 11 10 13 6 5計(jì)算機(jī)的數(shù)制、碼制及其運(yùn)算1 計(jì)算機(jī)是智能化的電器設(shè)備計(jì)算機(jī)就其本身來(lái)

18、說(shuō)是一個(gè)電器設(shè)備,為了能夠快速存儲(chǔ)、處理、傳遞信息,其內(nèi)部采用了大量的電子元件,在這些電子元件中,電路的通和斷,電壓高和低,這兩種狀態(tài)最容易實(shí)現(xiàn),最穩(wěn)定;也最容易實(shí)現(xiàn)對(duì)電路本身的控制。我們將計(jì)算機(jī)所能表示這樣的狀態(tài),用0,1來(lái)表示,就形成了用二進(jìn)制數(shù)表示計(jì)算機(jī)內(nèi)部的所有運(yùn)算和操作。計(jì)算機(jī)內(nèi)部是以二進(jìn)制形式表示數(shù)據(jù)的(指令、被處理的數(shù)據(jù))。二進(jìn)制數(shù)的運(yùn)算規(guī)則:00=0 01=1 10=1 11=10;0×0=0 0×1=0 1×0=0 1×1=12 進(jìn)位基數(shù)和位權(quán)值數(shù)的進(jìn)制與基數(shù)計(jì)數(shù)的進(jìn)制不同,則它們的基數(shù)也不相同,用到的數(shù)碼也不一樣。如表1-1所示。進(jìn)制

19、基數(shù)數(shù)碼二進(jìn)制201三進(jìn)制3012四進(jìn)制40123八進(jìn)制801234567十進(jìn)制100123456789十六進(jìn)制160123456789ABCDEF進(jìn)制基數(shù):指的是該進(jìn)位記數(shù)制中可能用到的數(shù)碼個(gè)數(shù)。對(duì)于任意計(jì)數(shù)進(jìn)制:每一位計(jì)滿這個(gè)基數(shù)后,都應(yīng)向高位進(jìn)位。二進(jìn)制,逢二進(jìn)一;八進(jìn)制,逢八進(jìn)一;十進(jìn)制,逢十進(jìn)一;十六進(jìn)制,逢十六進(jìn)一;R進(jìn)制(R為任意正整數(shù)):數(shù)碼個(gè)數(shù)為R個(gè),分別為0R-1,每一位數(shù)當(dāng)計(jì)滿R后,應(yīng)向高位進(jìn)位。數(shù)的權(quán)不同進(jìn)制的數(shù),基數(shù)不同,其每位上所代表的值的大小也不相同,我們稱之為“權(quán)”。如:(219)10=2×1021×1019×100 (按權(quán)展開(kāi)式)

20、2在百位上代表2個(gè)100即200;1在十位上代表1個(gè)10即10;9在個(gè)位上代表9個(gè)1即9。注:以后我們用下標(biāo)來(lái)注明圓括號(hào)內(nèi)數(shù)的進(jìn)制。 (11010)2=1×241×230×221×210×20(273)8=2×827×813×80(27B)16=2×1627×16111×160任意R進(jìn)制S:S=knkn-1k0.k-1k-2k-m = kn×Rnkn-1×Rn-1k0×R0.k-1×R-1k-2×R-2k-m×R-mR為進(jìn)位基

21、數(shù),Ri是對(duì)應(yīng)的權(quán)值。3 任意進(jìn)制的數(shù)轉(zhuǎn)換成十進(jìn)制整數(shù)將任意進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的基本方法是按權(quán)展開(kāi),然后求和按權(quán)相加法。因?yàn)樵谏鲜街谢鶖?shù)我們已經(jīng)轉(zhuǎn)換成了相應(yīng)的十進(jìn)制數(shù),所以展開(kāi)式即是一個(gè)十進(jìn)制數(shù)的表達(dá)式。(11010)2=1×241×230×221×210×20=(26)10(123)8=1×822×813×80=(83)10 (1AB)16=(427)104 十進(jìn)制整數(shù)轉(zhuǎn)換成任意進(jìn)制數(shù)將十進(jìn)制整數(shù)轉(zhuǎn)換成任意進(jìn)制數(shù)的基本方法是:將十進(jìn)制數(shù)除以所給定的進(jìn)制的基數(shù),再反向取余。例如:將十進(jìn)制數(shù)39用二進(jìn)制數(shù)表示,用除

22、二反向取余法。 (39)10=(100111)2(245)10=(365)8減權(quán)定位法:把十進(jìn)制數(shù)展開(kāi)成所指定進(jìn)制的基數(shù)的整數(shù)次冪之和,然后找到對(duì)應(yīng)位上取值。例如:將十進(jìn)制數(shù)123用二進(jìn)制數(shù)表示。(123)10=64+32+16+8+0+2+1=1×26+1×25+1×24+1×23+0×22+1×21+1×20 =(1111011)25 十進(jìn)制小數(shù)轉(zhuǎn)換成任意進(jìn)制數(shù)常用把給定的十進(jìn)制小數(shù)乘以給定進(jìn)制數(shù)的基數(shù),取積的整數(shù)部分,得到給定進(jìn)制小數(shù)的小數(shù)點(diǎn)的第1位;乘積的小數(shù)部分再乘以基數(shù),積的整數(shù)部分為小數(shù)點(diǎn)后的第2位;一直重復(fù)做

23、下去,就可以得到希望的進(jìn)制小數(shù)。例如:將十進(jìn)制小數(shù)0.75轉(zhuǎn)換成二進(jìn)制小數(shù)。0.75×2=1.50.5×2=1 (0.75)10=(0.11)2(0.315)10=(0.0101)2不是所有的十進(jìn)制小數(shù)都可以用一個(gè)精確的二進(jìn)制小數(shù)表示。6 二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換三位二進(jìn)制,正好能完全表示八進(jìn)制的8個(gè)數(shù)碼。二進(jìn)制000001010011100101110111八進(jìn)制01234567二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)的方法是:從小數(shù)點(diǎn)開(kāi)始,分別向左向右,每3位二進(jìn)制數(shù)為一組,用八進(jìn)制來(lái)書(shū)寫(xiě)。若左側(cè)位數(shù)不是3的倍數(shù),則最左側(cè)用0補(bǔ)充,若右側(cè)位數(shù)不是3的倍數(shù),則最右側(cè)用0補(bǔ)充。例如:(101

24、10111.01101)2=(267.32)8反過(guò)來(lái),八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法:將每個(gè)八進(jìn)制數(shù)用3位二進(jìn)制數(shù)來(lái)書(shū)寫(xiě)。例如:(1234.45)8=(1010011.100101)27 二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換二進(jìn)制0000000100101001101010111100110111101111十六進(jìn)制0129ABCDEF每四位二進(jìn)制數(shù)可以用一位十六進(jìn)制數(shù)表示。二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)方法:從小數(shù)點(diǎn)開(kāi)始,分別向左向右,每4位二進(jìn)制數(shù)為一組,用十六進(jìn)制來(lái)書(shū)寫(xiě)。若左側(cè)位數(shù)不是4的倍數(shù),則最左側(cè)用0補(bǔ)充,若右側(cè)位數(shù)不是4的倍數(shù),則最右側(cè)用0補(bǔ)充。例如:(110110111.01101)2=(1B7

25、.68)16十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)方法:將每個(gè)十六進(jìn)制數(shù)用4位二進(jìn)制來(lái)書(shū)寫(xiě),其最左或最右側(cè)的0可以省去。例如:(7AC.DE)16=(11110101100.1101111)2綜合例子:(3/32)10轉(zhuǎn)換成二進(jìn)制解:(3/32)10=3×2-5=(11)2×(0.00001)2=(0.00011)2總之:十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換必須用前面講的繁瑣方法進(jìn)行,因?yàn)?0不能用2的整數(shù)次冪進(jìn)行表示。也就是不能象八進(jìn)制或十六進(jìn)制數(shù)那樣用幾位二進(jìn)制數(shù)表示十進(jìn)制數(shù)的十個(gè)數(shù)碼。把十進(jìn)制數(shù)27.625轉(zhuǎn)換成二進(jìn)制、八進(jìn)數(shù)和十六進(jìn)制數(shù)。解:(27)10=(11011)2(0.625)1

26、0=(0.101)2(27.625)10=(11011.101)2=(33.5)8=(1B.A)16要把一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)或十六進(jìn)制,最先把它轉(zhuǎn)換成二進(jìn)制數(shù),再由二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制。課后練習(xí): 請(qǐng)用等號(hào)或不等號(hào)聯(lián)接下列不同進(jìn)位制數(shù)值的大小。(98.375)10 (142.3)8 (58.5)16 (1011000.0101)2 下面四個(gè)不同進(jìn)制的數(shù),最小的數(shù)是 。A (11011001)2 B (75)10 C (37)8 D (A7)16 小張用十六進(jìn)制、八進(jìn)制和十進(jìn)制寫(xiě)了如下一個(gè)等式:52-19=33式中三個(gè)數(shù)是各不相同進(jìn)位制的數(shù),請(qǐng)問(wèn)52、19、33,分別為 。A 八

27、進(jìn)制,十進(jìn)制,十六進(jìn)制 B 十進(jìn)制,十六進(jìn)制,八進(jìn)制C 八進(jìn)制,十六進(jìn)制,十進(jìn)制 D 十進(jìn)制,八進(jìn)制,十六進(jìn)制 十進(jìn)制算術(shù)表達(dá)式:3*512+7*64+4*8+5的運(yùn)算結(jié)果,用二進(jìn)制表示為( )A 10111100101 B 11111100101 C 11110100101 D 11111101101二進(jìn)數(shù)在計(jì)算機(jī)內(nèi)的表示數(shù)值數(shù)據(jù)是用于表示數(shù)量的大小,經(jīng)常用到數(shù)值范圍和數(shù)據(jù)精度。數(shù)值范圍指的是一種類型的數(shù)據(jù)所能表示的最大值和最小值;數(shù)據(jù)精度通常用實(shí)數(shù)所能指出的有效數(shù)字位數(shù)來(lái)表示。與用多少個(gè)二進(jìn)制位表示某類數(shù)據(jù),以及怎么對(duì)這些位進(jìn)行編碼有關(guān)。機(jī)器數(shù)與真值計(jì)算機(jī)中數(shù)的符號(hào)用數(shù)碼表示。一般情況下,

28、用0表示正,用1表示負(fù)。且符號(hào)位放在數(shù)的最高位。例:X1=(+1011011)2 真值數(shù)X2=(-1011011)20101101111011011機(jī)器數(shù) 連同符號(hào)位在一起作為一個(gè)數(shù),稱為機(jī)器數(shù)。而它的數(shù)值部分稱為真值數(shù)。一、 數(shù)的定點(diǎn)和浮點(diǎn)表示計(jì)算機(jī)在處理數(shù)據(jù)時(shí),要考慮到小數(shù)點(diǎn)的位置。如果將小數(shù)點(diǎn)固定在某一位置,則稱為定點(diǎn)表示;如果小數(shù)點(diǎn)可以任意移動(dòng),則稱為浮點(diǎn)表示。1 數(shù)的定點(diǎn)表示法定點(diǎn)小數(shù)和定點(diǎn)整數(shù)定點(diǎn)小數(shù)格式:小數(shù)點(diǎn)的位置固定在最高數(shù)據(jù)位的左邊,小數(shù)點(diǎn)前面再設(shè)一位符號(hào)位。任何m位二進(jìn)制小數(shù)在計(jì)算機(jī)中用m+1位二進(jìn)制表示。Ns ·N-1N-2N-m+1N-m符號(hào)位 小數(shù)點(diǎn) 數(shù)值

29、部分由于小數(shù)點(diǎn)總是在符號(hào)位與最高數(shù)據(jù)位之間,因此在計(jì)算機(jī)中不明確表示出來(lái)定點(diǎn)整數(shù)格式:小數(shù)點(diǎn)位置固定在最低數(shù)據(jù)位的右邊。整數(shù)又分為帶符號(hào)和不帶符號(hào)的兩類。帶符號(hào)的整數(shù),符號(hào)位安排在最高(最左)位。NsNn-1Nn-2N1N0·符號(hào)位 n位數(shù)值 小數(shù)點(diǎn)由于小數(shù)點(diǎn)固定在最低數(shù)據(jù)右邊,因此在計(jì)算機(jī)中不明確表示出來(lái)。n位帶符號(hào)整數(shù)N=NsNn-1Nn-2N1N0在計(jì)算機(jī)中用n+1位二進(jìn)制表示。對(duì)于不帶符號(hào)的整數(shù),把所有n+1位二進(jìn)制位全部視為數(shù)值。在不同計(jì)算機(jī)中,使用多種位數(shù)的整數(shù)。16位,32位,64位,64位二進(jìn)制來(lái)表示一個(gè)整數(shù)。2 數(shù)的浮點(diǎn)表示法浮點(diǎn)數(shù)是指小數(shù)點(diǎn)數(shù)據(jù)中的位置可以左右移動(dòng)

30、的數(shù)。一個(gè)數(shù)N要用浮點(diǎn)數(shù)表示可以寫(xiě):N=M*REM:浮點(diǎn)數(shù)的尾數(shù)。E:浮點(diǎn)數(shù)的指數(shù)或階碼。R:浮點(diǎn)數(shù)的基數(shù),是常數(shù)一般取2、8或16一旦機(jī)器的浮點(diǎn)部件設(shè)計(jì)好了,基數(shù)的大小也就確定了,不能再改變了,基數(shù)在浮點(diǎn)數(shù)表示中不出現(xiàn),是隱含的。浮點(diǎn)數(shù)的表示方法:EsEmE2E1MsMnM2M1階符階碼 數(shù)符數(shù)碼M:尾數(shù)。用定點(diǎn)小數(shù)表示,表示浮點(diǎn)數(shù)的有效位,其位數(shù) n的大小決定了浮點(diǎn)數(shù)的精度。E:階碼。用定點(diǎn)整數(shù)表示。階碼用于表示小數(shù)點(diǎn)在浮點(diǎn)數(shù)中的位置。其位數(shù)m的大小反映此浮點(diǎn)數(shù)所能表示的數(shù)的范圍。浮點(diǎn)數(shù)的規(guī)格化:規(guī)定計(jì)算機(jī)內(nèi)浮點(diǎn)數(shù)的尾數(shù)用純小數(shù)形式給出,而且當(dāng)尾數(shù)的值不為0時(shí),其絕對(duì)值應(yīng)大于或等于0.5,

31、不符合這一規(guī)定的浮點(diǎn)數(shù)要進(jìn)行規(guī)格化。(通過(guò)修改階碼的大小并同時(shí)左右移尾數(shù)的辦法使其滿足要求。)正數(shù):1/2S1,二進(jìn)制表示S=0.1負(fù)數(shù):-1/2S-1,二進(jìn)制表示S=1.1機(jī)器零:尾數(shù)為0,不論其階碼為何值。階碼的值遇到比它所能表示的最小值還小時(shí),不管尾數(shù)為何值。_階碼、尾數(shù)全變成0。浮點(diǎn)數(shù)常用格式:符號(hào)位階碼尾數(shù)總位數(shù)短浮點(diǎn)數(shù):182332長(zhǎng)浮點(diǎn)數(shù):1115264臨時(shí)浮點(diǎn)數(shù):1156480二、 二進(jìn)制數(shù)值數(shù)據(jù)的編碼方法編碼方法是研究在計(jì)算機(jī)中如何方便的表示定點(diǎn)小數(shù),定點(diǎn)整數(shù)和浮點(diǎn)數(shù)的正數(shù)、負(fù)數(shù)和零。最常用的編碼方法有原碼表示法、補(bǔ)碼表示法、反碼表示法三種。我們以定點(diǎn)小數(shù)為例:原碼表示法:1

32、、定義:用機(jī)器數(shù)的最高(左)一位代表符號(hào),其余各位給出數(shù)值(真值)的絕對(duì)值。X (0X1)X原=1-X (-1X0)1+|X|例:X1=0.1011 X2=-0.1011X1原=01011 X2原=11011符號(hào) 數(shù)值 符號(hào) 數(shù)值2真值零的原碼表示法+0原=00000-0原=100003原碼表示的范圍如果用 n位二進(jìn)制表示定點(diǎn)小數(shù),其中一位符號(hào)位。最大數(shù):+(1-2-(n-1)最小數(shù):-(1-2-(n-1)原碼編碼個(gè)數(shù):2n-1 0點(diǎn)兩個(gè)編碼例n=8最大數(shù):01111111對(duì)應(yīng)1-2-(8-1)=1-0.0000001=0.1111111=127/128最小數(shù):11111111對(duì)應(yīng)-(1-2-

33、(8-1)=-0.1111111=-127/128反碼表示法1、 定義:用機(jī)器數(shù)的最高一位代表符號(hào),數(shù)值位是對(duì)負(fù)數(shù)值各位取反的表示方法。取反01 10 X(0X1)X反=(2-2-n)+X (-1X0)例: X1=0.1011 X1反=01011X2=-0.1011 X2反=10100把任何一個(gè)二進(jìn)制負(fù)數(shù)的絕對(duì)值與它的反碼相加,得到的和永遠(yuǎn)1.1111,若在最后位上加1,恒等于2。2、 真值零的反碼表示法+0反=00000 -0反=11111反碼同原碼一樣,零的表示不是唯一的,有兩個(gè)。補(bǔ)碼表示法1、 模的概念例:11點(diǎn)6點(diǎn)往回?fù)?格 11-5=6往前撥7格 11+7=18 18-12=6舍掉進(jìn)

34、位的情況下:從11點(diǎn)中減去5和往11上加7結(jié)果是一樣的。例:9-3=69+7=16 16-10=6 (十進(jìn)制)而7=12-5 對(duì)于12進(jìn)制計(jì)數(shù)的基數(shù)12(模數(shù))7是5對(duì)于12的補(bǔ)碼。7=10-3 對(duì)于10進(jìn)制計(jì)數(shù)的基數(shù)10(模數(shù))7是3對(duì)于10的補(bǔ)碼。在計(jì)算機(jī)中,機(jī)器表示的數(shù)據(jù)字長(zhǎng)是固定的,對(duì)于n位數(shù)來(lái)說(shuō),模數(shù)大小是n位數(shù)全為1,且在最末位再加1。實(shí)際上模數(shù)的值已超出計(jì)算機(jī)所能表示的數(shù)的范圍,因此模數(shù)在機(jī)器中是表示不出來(lái)的,若運(yùn)算結(jié)果大模數(shù),則模數(shù)自動(dòng)丟掉。如果是n位整數(shù)(包括符號(hào)位),則它的模數(shù)是2n,若n位小數(shù),則它的模數(shù)總是2。同理:在二進(jìn)制定點(diǎn)小數(shù)減法運(yùn)算中,減去一個(gè)二進(jìn)制數(shù),也可以化

35、為加上這個(gè)數(shù)對(duì)于模數(shù)2的補(bǔ)碼。2、 定義:用機(jī)器數(shù)的最高(左)一位表示符號(hào)位,其余各位給出負(fù)數(shù)數(shù)值按2取模的結(jié)果。X (0 X1)X補(bǔ)=2+X ( -1X0)2-|X|例:X1=0.1011 X1補(bǔ)=01011X2=-0.1011 X2補(bǔ)=10101=10-0.10113、真值零的補(bǔ)碼表示法+0補(bǔ)=00000-0補(bǔ)=10-0.0000=00000+0補(bǔ)=-0補(bǔ)4、在補(bǔ)碼表示法中數(shù)的表示范圍定點(diǎn)小數(shù):最大:1-2-(n-1)最?。?1 -1補(bǔ)=10-1.0000=10000n=8 最大:1-2-7=0.1111111 補(bǔ)碼01111111最?。?1 補(bǔ)碼10000000由于在補(bǔ)碼表示法中零有唯一

36、的編碼,n位二進(jìn)制能表示2n個(gè)補(bǔ)碼數(shù)。5、補(bǔ)碼的求法1、 從反碼求補(bǔ)碼|X|+X反+0.0001=10X反+0.0001=10-|X|=X補(bǔ)、從原碼反碼補(bǔ)碼、補(bǔ)碼原碼除符號(hào)位外反轉(zhuǎn),再在未位加1。小結(jié)1、如果真值X為正數(shù),則X原=X補(bǔ)=X反2、如果真值X為負(fù)數(shù),X原、X補(bǔ)、X反表示不同。3、如果X=0,則X補(bǔ)有唯一編碼,X原有兩個(gè)不同表示方法,X反有兩個(gè)不同表示方法。4、在定點(diǎn)小數(shù)中,原碼和反碼的表示范圍為-1X1補(bǔ)碼的表示范圍為-1X1三、 整數(shù)的編碼方法可用原碼、補(bǔ)碼、反碼三種方法進(jìn)行編碼。1、 整數(shù)的編碼方法與小數(shù)的編碼方法的區(qū)別小數(shù)點(diǎn)位置表示范圍模數(shù)的差別2、 整數(shù)的編碼方法四、 浮點(diǎn)

37、的編碼方法EsEMsMM部分采用定點(diǎn)小數(shù)形式,可以用原碼表示,也可以用補(bǔ)碼表示。階碼多采用整數(shù)形式的移碼表示。1、 移碼的表示方法移碼定義X移=2n+X -2nX2n將這一定義與整數(shù)補(bǔ)碼相比較 X 0X2nX補(bǔ)= 2n+1+X -2nX0當(dāng)0X2n時(shí),X移=2n+X=2n+X補(bǔ)當(dāng)-2nX0時(shí),X移=2n+X=(2n+1+X)-2nX移是將X補(bǔ)的符號(hào)位變反。例:X=+1010101 X補(bǔ)=01010101 X移=11010101 X=-1010101 X補(bǔ)=10101011 X移=001010112、 移碼的特點(diǎn):符號(hào)位在最高位,正用1表示,負(fù)用0表示。五、 ASCII碼和BCD碼ASCII碼在

38、人們通常接觸和處理信息中,有相當(dāng)一部分是用字符或字符的組合來(lái)表示的。字符是指字母、數(shù)字以及其它一些可打印顯示的符號(hào)。計(jì)算機(jī)和外部設(shè)備之間進(jìn)行通訊聯(lián)系時(shí),還需要一些控制功能的特殊符號(hào)。例如,控制打印機(jī)的走紙符、換行符等。在計(jì)算機(jī)內(nèi)部,上述字符必須用一種二進(jìn)制代碼來(lái)表示。日前,在國(guó)際上廣泛采用的是美國(guó)標(biāo)準(zhǔn)信息交換代碼(American Standard Code for Information Interchange),簡(jiǎn)稱ASCII碼。ASCII碼是7位二進(jìn)制編碼,它可以表示27=128個(gè)字符。由于標(biāo)準(zhǔn)的7位ASCII碼所能表示的字符較少,不能滿足有些信息處理的需要,于是在ASCII碼地基礎(chǔ)上又

39、設(shè)計(jì)了一種擴(kuò)充的ASCII碼。擴(kuò)充的ASCII碼是一種8位二進(jìn)制編碼,它可以表示256個(gè)字符。BCD碼十進(jìn)制數(shù)在鍵盤(pán)輸入和打印時(shí),往往是將各個(gè)數(shù)字以ASCII碼來(lái)表示的。但是它在計(jì)算機(jī)內(nèi)運(yùn)算時(shí),是以二進(jìn)制形式進(jìn)行的。為了便于轉(zhuǎn)換,設(shè)計(jì)了一些二進(jìn)制編碼來(lái)表示十進(jìn)制數(shù),稱為二十進(jìn)制碼,即BCD碼(Binary Coded Decimal)。BCD碼是用四位二進(jìn)制代碼來(lái)表示一位十進(jìn)制數(shù)。從16個(gè)四位二進(jìn)制代碼00001111中,只須選擇其中10個(gè)作為十進(jìn)制數(shù)的10個(gè)數(shù)字的代碼就可以了。這樣就有多種BCD碼:如8421碼、2421碼、余3碼和格雷碼等。十進(jìn)制數(shù)字8421碼2421碼余3碼格雷碼0000

40、0000000110000100010001010000012001000100101001130011001101100010401000100011101105010101011000111060110011010011010701110111101010008100011101011110091001111111000100由于8421碼最常用,因此通常就把它稱為BCD碼。例如,十進(jìn)制數(shù)315用BCD碼表示為001100010101。注意:用BCD碼表示的數(shù),形式上像二進(jìn)制數(shù),但不是真正的二進(jìn)制數(shù)。例如,315轉(zhuǎn)換成二進(jìn)制數(shù)是100111011B。在計(jì)算機(jī)中,可以把用BCD碼表示的十進(jìn)制

41、數(shù)轉(zhuǎn)化成真正的二進(jìn)制數(shù)后,再進(jìn)行運(yùn)算,也可以直接對(duì)用BCD碼表示的十進(jìn)制數(shù)進(jìn)行計(jì)算。但需要進(jìn)行“十進(jìn)制調(diào)整”,以符合“逢十進(jìn)一”的十進(jìn)制運(yùn)算規(guī)則。PASCAL程序設(shè)計(jì)初步PASCAL從1971年正式推出至今,已成為世界上最廣泛使用的程序設(shè)計(jì)語(yǔ)言之一,PASCAL語(yǔ)言全面地體現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)的概念,具有豐富完備的數(shù)據(jù)類型、簡(jiǎn)明靈活的語(yǔ)句和清晰明了的模塊結(jié)構(gòu),書(shū)寫(xiě)格式自由,運(yùn)行效率高,查錯(cuò)能力強(qiáng),移植性好,程序設(shè)計(jì)風(fēng)格優(yōu)美,有助于養(yǎng)成結(jié)構(gòu)化程序設(shè)計(jì)的良好習(xí)慣。我們選擇的是Turbo Pascal 6.0的版本的教材。要使用計(jì)算機(jī)解決實(shí)際問(wèn)題,除了會(huì)理解題目和設(shè)計(jì)算法外,關(guān)鍵的一點(diǎn)就是要會(huì)編寫(xiě)程序

42、。程序其實(shí)就是用計(jì)算機(jī)語(yǔ)言來(lái)表述我們所設(shè)計(jì)的算法過(guò)程。計(jì)算機(jī)語(yǔ)言與我們的語(yǔ)言相類似,有著多種多樣的語(yǔ)言,不過(guò)這些語(yǔ)言最終的目的都是一致的,都是為了讓計(jì)算機(jī)看懂我們所設(shè)計(jì)的得算法。一 Pascal 程序形式:Program 程序名(程序參數(shù)表);說(shuō)明部分程序體1 每一個(gè)完整語(yǔ)句由分號(hào)結(jié)束。2 具體程序不一定包括全部說(shuō)明,但如果出現(xiàn),必須按這里所指定的前后次序編寫(xiě)。3 程序體不可少,程序體以END.結(jié)束,且最后一個(gè)句號(hào)不能漏掉。4 END前一句語(yǔ)句的分號(hào)可有可無(wú),有則編譯時(shí)多一個(gè)空行。Label 標(biāo)號(hào)說(shuō)明;Const常量說(shuō)明;Type類型說(shuō)明;Var變量說(shuō)明;Function函數(shù)說(shuō)明;Proced

43、ure過(guò)程說(shuō)明;Begin程序語(yǔ)句;程序語(yǔ)句;End.二 基本程序結(jié)構(gòu)和幾個(gè)概念:例:program pname;const n=4;type ar=array 1.4 of integer;var i:integer; a:ar;begin for i:=1 to n do read(ai); readln; for i:=n downto 1 do write(ai:4); writeln;end. 以上是一個(gè)PASCAL程序。從鍵盤(pán)讀入4個(gè)數(shù)據(jù),逆序輸出。 一般來(lái)說(shuō),一個(gè)PASCAL程序包括以下幾個(gè)部分: 程序頭:program pname; 其中,program是保留字,表示程序從這個(gè)

44、地方開(kāi)始,pname是標(biāo)識(shí)符,是程序的名字,可由程序員自定。保留字是PASCAL選定的,具有固定意義和用法的專用單詞或縮寫(xiě),這些單詞不允許作其它使用。如上,“program”就有“程序從這里開(kāi)始”這樣一種特別的意義,而“const”就有“常量說(shuō)明從這里開(kāi)始”的意義。我們不能再用“program”、“const”來(lái)作為其它變量、常量等的名字。標(biāo)識(shí)符是以字母開(kāi)頭的字母數(shù)字串。用來(lái)表示常量、變量、類型、文件、過(guò)程、函數(shù)和程序的名字。如“pname”、“i”、“j”、“a1”就是合法的標(biāo)識(shí)符;但“1a”、“#a”是非法的標(biāo)識(shí)符。有一點(diǎn)要注意的是,在PASCAL中,字母除了作為字符值或字符串值之外,其大

45、小寫(xiě)是無(wú)關(guān)的。如標(biāo)識(shí)符“A1”和“a1”在PASCLA看來(lái)是同一標(biāo)識(shí)符。在PASCAL中除了保留字和自定義的標(biāo)識(shí)符外,還有一類有特殊含義的標(biāo)識(shí)符,這類標(biāo)識(shí)符稱為標(biāo)準(zhǔn)標(biāo)識(shí)符。它們是用來(lái)標(biāo)記程序中經(jīng)常引用的處理對(duì)象,如常量、函數(shù)。(PASCAL定義的保留字和標(biāo)準(zhǔn)標(biāo)識(shí)符附后) 標(biāo)識(shí)符在命名的時(shí)候要注意:1、名字要易記易讀,有意義。如8皇后問(wèn)題程序名可以是“queen”也可以是“huanghou”等;2、不能用保留字、標(biāo)準(zhǔn)標(biāo)識(shí)符作為自定義的標(biāo)識(shí)符。 說(shuō)明部分:const n=4; type ar=array 1.4 of integer; var i:integer; a:ar; 其中,const部分

46、是常量說(shuō)明,說(shuō)明一些在以下部分用到的,在整個(gè)程序執(zhí)行過(guò)程不改變值的量。這些量PASCAL稱為常量。在程序中用到這個(gè)值的地方均用常量名來(lái)代替。如上題中定義“n=4”指本程序處理4個(gè)數(shù)值,在下面的程序體中就用“n”來(lái)代替具體的值(如for i:=1 to n)。如果要改變處理數(shù)據(jù)個(gè)數(shù),則只在常量說(shuō)明部分修改“n=4”這一句就行了,而不用在程序中每一個(gè)用到的地方都加以修改。這樣不但在編寫(xiě)程序的時(shí)候很方便,也增加了程序的可讀性,修改時(shí)更方便。 常量說(shuō)明在保留字“const”下開(kāi)始??梢杂卸鄠€(gè)語(yǔ)句。常量說(shuō)明語(yǔ)句的格式是:“常量名=值;”。如“n=4;”。n是常量名,4是該常量的值,“;”是語(yǔ)句分隔符。

47、type部分是類型說(shuō)明,說(shuō)明一些在以下部分用到的數(shù)據(jù)類型。如數(shù)組、記錄、指針等。 類型說(shuō)明在保留字“type”下開(kāi)始。可以有多個(gè)語(yǔ)句。類型說(shuō)明語(yǔ)句的格式是:“類型名=類型說(shuō)明;”。如“ar=array 1.4 of integer;”。ar是類型名,array 1.4 of integer是類型說(shuō)明,“;”是語(yǔ)句分隔符。 var部分是變量說(shuō)明。變量是指在程序執(zhí)行過(guò)程中可以通過(guò)賦值語(yǔ)句或讀語(yǔ)句來(lái)改變值的量。所有在程序中使用的變量都應(yīng)該先在變量說(shuō)明部分說(shuō)明。PASCAL中引用的每個(gè)變量都有“名字”和“類型”屬性。變量說(shuō)明“說(shuō)明”的主要工作是告訴PASCA下面程序中要用到這個(gè)名字的量,同時(shí)這個(gè)量的類

48、型是什么。 變量說(shuō)明在保留字“var”下開(kāi)始。可以有多個(gè)語(yǔ)句。變量說(shuō)明語(yǔ)句的格式是:“變量名:變量類型;”。其中,如果有多個(gè)變量同一類型,則變量名與變量名之間用逗號(hào)分隔,變量名與變量類型之間用冒號(hào)分隔。如“i:integer;”(i是變量名,integer是類型名)、“i、j:integer;”(i、j是變量名,integer是類型名) 變量說(shuō)明要注意:1、變量名稱必須以字母開(kāi)頭;2、在同一個(gè)有效范圍內(nèi)變量名稱必須唯一。 各個(gè)說(shuō)明部分均以該部分的保留字開(kāi)始。如“const”開(kāi)始常量說(shuō)明;“type”開(kāi)始類型說(shuō)明;“var”開(kāi)始變量說(shuō)明。一個(gè)程序包含多少種類型的說(shuō)明,看需要而定,不是每一個(gè)程序都必須同時(shí)包含這三種說(shuō)明。如果程序不須要用到常量,則常量說(shuō)明部分可以省略;如果不須要用到類型說(shuō)明,則類型說(shuō)明可省 PASCAL還有一條規(guī)則:先說(shuō)明后引用。即所有在程序體中用到的“名字”必須都在說(shuō)明部分說(shuō)明過(guò)才能引用,否則就會(huì)出錯(cuò),通不過(guò)編譯,也執(zhí)行不了。如上,類型“ar”先在類型說(shuō)明中定義,然后在變量說(shuō)明中引用;變量i在變量說(shuō)明中定義,在程序中引用。 程序體:begin for i:=1 to n do read(ai); readln; for i:=n downt

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論