版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄
4.XJ.——1—
1、刖亙
2、計(jì)算機(jī)基礎(chǔ)知識(shí)
3、算法及其描述
4、初次使用TURBO-PASCAL(FreePascal)
5、順序結(jié)構(gòu)程序設(shè)計(jì)
6、分支結(jié)構(gòu)程序設(shè)計(jì)
7、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
8、分支與循環(huán)應(yīng)用加深
9、字符串與數(shù)組
10、枚舉算法入門
11、數(shù)組應(yīng)用舉例
12、過(guò)程"函數(shù)的簡(jiǎn)單使用
第一章前言
一、有關(guān)NOI的幾個(gè)問(wèn)題
1.什么是NOI?
NOI就是NationalOlympiadinInformatics,即全國(guó)信息學(xué)奧林匹克,它
的分區(qū)聯(lián)賽相當(dāng)于數(shù)學(xué)的全國(guó)高中聯(lián)賽,物理上的全國(guó)復(fù)賽和化學(xué)上的全國(guó)
初賽。分區(qū)聯(lián)賽分為初賽和復(fù)賽,初賽為筆試,復(fù)賽為上機(jī)編程。復(fù)賽從
2001年開(kāi)始已經(jīng)改為由全國(guó)統(tǒng)一評(píng)獎(jiǎng),有的省市也把復(fù)賽成績(jī)作為選拔NOI
選手的重要依據(jù)。自1995年開(kāi)始舉辦,是一項(xiàng)全國(guó)性的奧林匹克學(xué)科競(jìng)賽
活動(dòng),是全國(guó)中學(xué)生五大學(xué)科奧林匹克活動(dòng)之一,其它四項(xiàng)是數(shù)學(xué)、物理、
化學(xué)、生物。每年一屆,初賽定于每年的十月份最后一個(gè)星期六的下午,復(fù)
賽一般在每年的十一月份最后一個(gè)星期六或十二月份第一個(gè)星期六。初賽和
復(fù)賽都是全國(guó)統(tǒng)一試題,統(tǒng)一時(shí)間考試。初賽以地級(jí)市為單位進(jìn)行組織考試,
以書(shū)面考試形式進(jìn)行,時(shí)間兩小時(shí)。復(fù)賽以省為單位,根據(jù)初賽參賽人數(shù),
選取5%以內(nèi)的人參加復(fù)賽,根據(jù)成績(jī)由高到低評(píng)選出省一、二、三等獎(jiǎng)。
初賽?般考察計(jì)算機(jī)基本知識(shí),基本數(shù)學(xué)能力和基本程序設(shè)計(jì)知識(shí)和能
力。初賽試題的類型一?般有:選擇題(基礎(chǔ)知識(shí)),數(shù)學(xué)題(?般是推公式),
寫程序運(yùn)行結(jié)果題,編程知識(shí)(考察范圍不定,考過(guò)數(shù)據(jù)結(jié)構(gòu),算法復(fù)雜度
等)和程序填空。
復(fù)賽是上機(jī)編程,一般是3個(gè)小時(shí),4個(gè)編程題目。初中組復(fù)賽一般是
鍵盤輸入,屏幕輸出(有點(diǎn)落后了),而高中組則是文件輸入、輸出。內(nèi)容
涉及到搜索、動(dòng)態(tài)規(guī)劃、簡(jiǎn)單的圖論算法以及一些數(shù)學(xué)技巧。難度雖不大,
但建議初學(xué)者不要眼光太高,盡力把自己有把握的題目做正確就可以了,不
要花很多精力想難題。記住:信息學(xué)競(jìng)賽從不會(huì)給“過(guò)程分”,如果程序沒(méi)
有編完或者沒(méi)有調(diào)試通過(guò),除了你運(yùn)氣好撞到幾分之外,幾乎可以肯定該題
你將得0分。至于全國(guó)競(jìng)賽NOL相當(dāng)于數(shù)理化的冬令營(yíng)比賽,每個(gè)省有
3?4名選手參加,選出國(guó)家集訓(xùn)隊(duì)員20名左右,大家不要把它和分區(qū)聯(lián)賽
搞混淆了,其中的優(yōu)秀學(xué)生參加國(guó)家隊(duì)的集訓(xùn),并最終選出四名同學(xué)組成國(guó)
家隊(duì)參加國(guó)際比賽(101)。江蘇省這兒年活動(dòng)開(kāi)展得比較廣泛,都是組織兩
個(gè)代表隊(duì)參加全國(guó)競(jìng)賽。
2、“信息學(xué)”學(xué)的是什么?
信息學(xué)學(xué)習(xí)內(nèi)容主要有以下幾個(gè)方面:
(1)掌握一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言;
(2)計(jì)算機(jī)相關(guān)基礎(chǔ)知識(shí);
(3)初等組合,這是信息學(xué)解題的思維方式;
(4)圖論,主要是基礎(chǔ)概念方面的,用于理解算法;
(5)數(shù)學(xué)問(wèn)題,這類題目考的是數(shù)學(xué)思維,其中有一部分是考創(chuàng)造能
力的;
(6)培養(yǎng)分析問(wèn)題、解決問(wèn)題的能力。
3、學(xué)習(xí)過(guò)程中要注意什么問(wèn)題?
第一,要認(rèn)清自己的位置。也就是根據(jù)自己的學(xué)習(xí)目的,判斷自己是什
么水平,經(jīng)過(guò)努力能到達(dá)什么水平。
第二,要能熟練的掌握自己使用的編程語(yǔ)言。常??吹接腥藛?wèn)一些很簡(jiǎn)
單的語(yǔ)法問(wèn)題什么的,其實(shí)這些東西都應(yīng)是基礎(chǔ)的知識(shí),只需要翻翻書(shū)或看
看系統(tǒng)的幫助就可以弄懂的。如果連編程語(yǔ)言都不了解,又怎么能夠編程
呢?這里說(shuō)的編程語(yǔ)言指的是標(biāo)準(zhǔn)的程序設(shè)計(jì)語(yǔ)言,例如PASCAL,C/C++?
而一些集成開(kāi)發(fā)環(huán)境(IDE)并不屬于這個(gè)范圍,例如DELPHI,VB,VC等。
第三,把一些基礎(chǔ)打好,這個(gè)非常重要。所謂基礎(chǔ),就是一些基本的算
法,例如:求最小公倍數(shù),高精度,排序,遞歸,回溯等。
第四,提高正確率。其實(shí)第三點(diǎn)說(shuō)的“打好”基礎(chǔ)的意思就是:對(duì)于基
礎(chǔ)的題目,一定要爭(zhēng)取百分百正確!簡(jiǎn)單的題目一定不能丟分,很難的題目
不要花太多時(shí)間,能拿分就可以了。當(dāng)然,這些建議是對(duì)于入門者來(lái)說(shuō)的。
在開(kāi)始使用編程語(yǔ)言后,你會(huì)發(fā)現(xiàn),程序中不能錯(cuò)一點(diǎn)點(diǎn),哪怕是一個(gè)標(biāo)點(diǎn),
少一個(gè)或多一個(gè),要么是語(yǔ)法不正確,不能運(yùn)行,要么是另外一個(gè)含義,得
不到你想要的結(jié)果。因此提高正確率其實(shí)首先是要細(xì)心加耐心,在此基礎(chǔ)上
再全面地考慮問(wèn)題,得到較多的分?jǐn)?shù)。
附注:程序的三種錯(cuò)誤
1.語(yǔ)法錯(cuò)誤就是不符合語(yǔ)言的基本規(guī)則,編譯時(shí)不能通過(guò)。
2.語(yǔ)義錯(cuò)誤程序雖然編譯能通過(guò),但是方法不正確或考慮得不全
面。
3.語(yǔ)用錯(cuò)誤用戶在使用程序時(shí)的錯(cuò)誤,一個(gè)好的程序要有好的用戶
界面,盡量避免用戶在使用上的錯(cuò)誤。對(duì)于信息學(xué)奧林匹克競(jìng)賽的
程序來(lái)說(shuō),這一點(diǎn)主要是要注意輸入、輸出的格式符合題目的要求。
第五,要懂得利用網(wǎng)絡(luò)資源。學(xué)會(huì)在網(wǎng)絡(luò)上收集資料,國(guó)內(nèi)有許多學(xué)校
和部門都辦了相關(guān)網(wǎng)站或網(wǎng)頁(yè),如我校的網(wǎng)站中的在線輔導(dǎo)
中專門有信息學(xué)奧林匹克欄目。當(dāng)然有許多網(wǎng)頁(yè)是大同小異。但是有一點(diǎn)要
注意:不要沉溺在網(wǎng)絡(luò)上。網(wǎng)絡(luò)能幫助你學(xué)習(xí)許多知識(shí),也會(huì)使一些人荒廢
時(shí)間,得不償失。
4、用什么編程語(yǔ)言,什么IDE好?
編程語(yǔ)言主要在以下兒類:
BASIC:如果你是編程初學(xué)者,那么BASIC是最適合的,但是由于大
部分這類語(yǔ)言不是結(jié)構(gòu)化的,不適合搞信息學(xué)。
PASCAL:這個(gè)是最適合初學(xué)者學(xué)習(xí)的,因?yàn)檫@種語(yǔ)言和BASIC一樣
簡(jiǎn)單易學(xué),而且現(xiàn)在國(guó)內(nèi)中學(xué)生的競(jìng)賽資料都是用PASCAL寫的。
C/C++:大學(xué)生基本都用這個(gè)的,參加ACM(大學(xué)生程序設(shè)計(jì)競(jìng)賽)
必學(xué)語(yǔ)言。C/C++里面有?些概念可能不太容易被初學(xué)編程的中學(xué)生接受,
而且如果用得不熟練是很容易出錯(cuò)的。不過(guò),學(xué)過(guò)PASCAL的人要學(xué)C/C++
是很容易的,編程語(yǔ)言的學(xué)習(xí)是觸類旁通的。
有人曾經(jīng)戲稱PASCAL語(yǔ)言是藝術(shù)性的語(yǔ)言,C語(yǔ)言是獨(dú)具匠心的語(yǔ)
言,一個(gè)是藝術(shù)家用的,另一個(gè)是匠人用的,當(dāng)然這話有點(diǎn)過(guò)分。
IDE:
PASCAL:建議初學(xué)者使用TurboPascal7.0或者BorlandPascal7.0,要
對(duì)調(diào)試的基本操作熟悉。以后到了高層次的競(jìng)賽,例如NOL是需要free
Pascal的,而且是Linux下的,現(xiàn)在有許多版本的FreePascal在Windows
下也可以使用,你可以從相關(guān)網(wǎng)站下載。不過(guò)雖然IDE變了,但是用幾天
就會(huì)熟悉的了。至于DELPHI這種基本語(yǔ)法跟Pascal相似的可視化編程工
具,有點(diǎn)大材小用的感覺(jué)。
C/C++:GCC是首選,TurboC++3.0也不錯(cuò)。
選擇什么IDE沒(méi)有本質(zhì)上的差別,關(guān)鍵是要看寫什么程序,對(duì)復(fù)賽來(lái)
說(shuō),江蘇省從2002年開(kāi)始高中組建議使用FreePascal,有時(shí)也會(huì)出現(xiàn)一些
問(wèn)題,如FreePascal可以充分使用系統(tǒng)內(nèi)存,而一般的TP變量只能用64KB,
這樣會(huì)造成選擇不同的IDE出現(xiàn)不公平的現(xiàn)象,因此有的比賽指明程序變
量最大使用內(nèi)存的大小,以體現(xiàn)公平。
二、分區(qū)聯(lián)賽特點(diǎn)和歷史回顧
從1995年第一屆分區(qū)聯(lián)賽開(kāi)始,已經(jīng)比較成熟了。題目的難度和考查
范圍從總體來(lái)說(shuō)是逐年增加。初賽主要是靠平時(shí)的積累。其中選擇題部分各
年差別比較大,考查的范圍很不相同。坦白地說(shuō),初賽的題目水平并不是很
高,雖然題目有時(shí)看起來(lái)不大規(guī)范,不過(guò)從另一方面講,在選拔復(fù)賽選手的
角度講,初賽題目還是比較成功的。只要基礎(chǔ)好(選擇題和填空題),有耐
心(完善程序)和細(xì)心(寫運(yùn)行結(jié)果),初賽一般都能得到高分。至于復(fù)賽,
全是上機(jī)完成。
三、備戰(zhàn)NOI初賽策略
初賽考的知識(shí)點(diǎn),大綱無(wú)非是計(jì)算機(jī)基本常識(shí)、基本操作和程序設(shè)計(jì)基
本知識(shí)。選擇題考查的是知識(shí),而填空、問(wèn)題解決題更加重視能力的考查。
一般說(shuō)來(lái),選擇題是不需要單獨(dú)準(zhǔn)備的,也無(wú)從準(zhǔn)備,只要多用心積累就可
以了。到是問(wèn)題解決題目比較固定,大家應(yīng)當(dāng)做做以前的題目。寫運(yùn)行結(jié)果
需要多做題目,培養(yǎng)良好的程序閱讀和分析能力,而完善程序最好總結(jié)一下
以前題目常常要你填出來(lái)的語(yǔ)句類型。這個(gè)每年都差不多的,想不出來(lái)是可
以回憶一下有哪些可能填的語(yǔ)句,再放到程序里面看是否合適。
(一)、選擇題
?般它們是比較容易得分的,一共30分,不可錯(cuò)過(guò)。從2003年起增加
了多項(xiàng)選擇題,選擇題的分?jǐn)?shù)也增加了一些。但是選擇題考查的知識(shí)范圍比
較廣,得全分的也只是很少的同學(xué)。近幾年來(lái),初賽的考查范圍有了很大的
變化,越來(lái)越緊跟潮流了。這是好事情,不過(guò)需要大家有比較廣泛的知識(shí),
包括計(jì)算機(jī)硬件,軟件,網(wǎng)絡(luò),數(shù)據(jù)結(jié)構(gòu)(例如棧,隊(duì)列,排序算法),程
序設(shè)計(jì)語(yǔ)言以及一些基本的數(shù)學(xué)知識(shí)和技巧(例如排列組合)。
(二)、填空與問(wèn)題解決題(稱之為解答題)
這部分題目對(duì)數(shù)學(xué)要求要高一點(diǎn),往往考查的是代數(shù)變形、數(shù)列(一般
是考遞推),也考查一些算法和數(shù)據(jù)結(jié)構(gòu)知識(shí)。建議大家多花一點(diǎn)時(shí)間做,
盡量做對(duì)。
卜面是前幾年相關(guān)初賽題:
1、數(shù)組A[30..100,20..100]以行優(yōu)先的方式存儲(chǔ),每個(gè)元素占8個(gè)字節(jié),且已
知A[40,30]的地址為2000,則A[60,90]的地址為:
如果以列優(yōu)先存儲(chǔ),則為:
[說(shuō)明]:本題考查了數(shù)據(jù)結(jié)構(gòu)中數(shù)組存儲(chǔ)方式,行優(yōu)先就是先存儲(chǔ)滿一
行后再存儲(chǔ)下一行,而二維數(shù)組?般是第一個(gè)下標(biāo)表示行、第二個(gè)下標(biāo)表示
列,行優(yōu)先可以進(jìn)行如下的運(yùn)算:
A[40,31]--A[40,100]70個(gè)元素;
A[41,20]--A[41,100]81個(gè)元素;
A|42,20|A|42,100]81個(gè)元素;L滿19行,19*81個(gè)
元素
A[59,20]--A[59,IOO]81個(gè)元素;
A[60,20]一一A[60,89]70個(gè)元素。
所以行優(yōu)先方式下A[60,90]的存儲(chǔ)地址為:
A[40,30]的存儲(chǔ)地址+(70+19*81+70)*8
同樣可以得到列優(yōu)先方式下A[60,90]的存儲(chǔ)地址為:
A[40,30]的存儲(chǔ)地址+(60+59*71+30)*8
2、設(shè)棧S的初始狀態(tài)為空,現(xiàn)有6個(gè)元素組成的序列{1,3,5,7,9,11},對(duì)該序列
在S棧上依次進(jìn)行如下操作(從序列中的1開(kāi)始,出棧后不在進(jìn)棧):進(jìn)棧,出棧,
進(jìn)棧,進(jìn)棧,進(jìn)棧,進(jìn)棧,出棧,進(jìn)棧,問(wèn)出棧的元素序列是:棧頂指針
的值為棧頂元素為:
[說(shuō)明]:考查了數(shù)據(jù)結(jié)構(gòu)中的棧,只要熟悉棧的進(jìn)出規(guī)則——“先進(jìn)后
出”,操作起來(lái)并不難。
3、把中綴表達(dá)式寫成后綴及前綴表達(dá)式
(1)(P+Q)*(A-B)/((C+D)/(E-F))-G
后:前:
⑵A-C*D+B/E*(D/A)
后:前:
4、根據(jù)后綴表達(dá)式,寫出前綴及中綴表達(dá)式
ABC/DE+GH-/*+
前:中:
[說(shuō)明]:這兩題考查了數(shù)據(jù)結(jié)構(gòu)中的表達(dá)式樹(shù)。
5、用一個(gè)字節(jié)來(lái)表示整數(shù),最高位用作符號(hào)位(1為正,0為負(fù)),其他位表示數(shù)
值:
(1)、這樣的表示法稱為原碼表示法,表示數(shù)的范圍為:
(2)、原碼表示法,將出現(xiàn)有兩種表示
(3)、實(shí)際上計(jì)算機(jī)中是用補(bǔ)碼表示數(shù),其表示范圍為:
[說(shuō)明]:考查了數(shù)的原碼,補(bǔ)碼表示形式,知道了原碼就是直接二十進(jìn)制的
轉(zhuǎn)化,補(bǔ)碼是反碼的基礎(chǔ)上加1,而補(bǔ)碼只對(duì)非正數(shù)應(yīng)用。
6、已知N*N個(gè)數(shù)據(jù)成方陣排列:
AllA12A13...Ain
A21A22A23...A2n
AnlAn2An3...Ann
已知Aij=Aji,
(1)、將Al1,A21,A22,A31,A32,A33...存儲(chǔ)至U一維數(shù)組
A(1),A(2),A(3)...A(K)
給出i,j寫出求K的表達(dá)式:
(2)、將All,A12,...Aln,A22,A23,...A2n,A33...Ann存儲(chǔ)到一維數(shù)組
A(1),A(2),A(3)...A(K),給出i,j寫出求K的表達(dá)式:
7、已知一個(gè)數(shù)列Ul,U2,U3...Un.…往往可以找到一個(gè)最小的K值和K個(gè)數(shù)
al,a2,..,ak,使得數(shù)列從某項(xiàng)開(kāi)始都滿足:U(n+k)=al*U(n+k-l)+
a2*U(n+k-2)+...+akUn(式A)例如數(shù)列1,1,2,3,5...可以發(fā)現(xiàn):當(dāng)
K=2,al=l,a2=l時(shí),從第3項(xiàng)起(N>=1)滿足:U(n+2)=U(n+l)+Un
試對(duì)數(shù)列1A3,2八3,3八3,…,N”,..,求K和al,a2,...ak,使得式A成立.
[說(shuō)明]:這兩題實(shí)質(zhì)是考數(shù)學(xué)。
8、給出一棵二叉樹(shù)的中序遍歷:DBGEACHFI與后序遍歷:DGEBHIFCA,畫(huà)出
此二叉樹(shù)。
[說(shuō)明]:考查你對(duì)二叉樹(shù)遍歷的基本了解。
9、給出二叉樹(shù)的前序遍歷與后序遍歷,能確定一棵二叉樹(shù)嗎,舉例說(shuō)明。
[說(shuō)明]:同樣考查你對(duì)二叉樹(shù)遍歷的基本了解,其實(shí)由前序和后序遍歷的結(jié)
果不能確定二叉樹(shù)的結(jié)構(gòu)。
10、下面是一個(gè)利用完全二叉樹(shù)特性,用順序表來(lái)存儲(chǔ)的一個(gè)二叉樹(shù),結(jié)點(diǎn)數(shù)
據(jù)為字符型(結(jié)點(diǎn)層次從小到大,同一層從左到右順序存儲(chǔ),#表示空結(jié)點(diǎn),@表
示存儲(chǔ)數(shù)據(jù)結(jié)束)
結(jié)點(diǎn)123456789101112131415
數(shù)據(jù)ABC##DE#####GF@
畫(huà)出對(duì)應(yīng)的二叉樹(shù):
[說(shuō)明]:考查了數(shù)據(jù)結(jié)構(gòu)中的二叉樹(shù)
11、用鄰接矩陣表示有向圖(圖略)
[說(shuō)明]:考查了數(shù)據(jù)結(jié)構(gòu)中的圖的表示
12、根據(jù)Nocomachns定理,任何個(gè)正整數(shù)n的立方,?定可以表示成n
個(gè)連續(xù)的奇數(shù)的和。
例如:
13=1
23=3+5
33=7+9+11
43=13+15+17+19
在這里,若將每一個(gè)式中的最小奇數(shù)稱為X,那么當(dāng)給出n之后,請(qǐng)寫出X
與n之間的關(guān)系表達(dá)式:
[說(shuō)明]:其實(shí)是考代數(shù)
12、某班有50名學(xué)生,每位學(xué)生發(fā)一張調(diào)查卡,上寫&b,c三本書(shū)的書(shū)名,
將讀過(guò)的書(shū)打“*”,結(jié)果統(tǒng)計(jì)數(shù)字如下:
只讀a者8人;只讀b者4人:只讀c者3人;全部讀過(guò)的有2人;讀
過(guò)a,b兩本書(shū)的有4人;讀過(guò)a,c兩本書(shū)的有2人:讀過(guò)b,c兩本書(shū)的有3
人。
(1)讀過(guò)a的人數(shù)是()。
(2)一本書(shū)也沒(méi)讀過(guò)的人數(shù)是()。
[說(shuō)明]:考查邏輯推理的能力,數(shù)學(xué)好的小學(xué)生大概都可以做。
(三)、寫運(yùn)行結(jié)果
這是初賽分?jǐn)?shù)占比例最大的部分,是同學(xué)得分最多的地方也是部分同學(xué)
失分最多的地方。
一般做這類題目的核心是找程序目的,即這個(gè)程序想干什么。迄今為止
考過(guò)的題目還沒(méi)有“亂寫”的,總有一點(diǎn)“寫作目的”的。抓住了它,不僅
得出答案變得很容易了,而且對(duì)自己的結(jié)果也會(huì)比較有信心。寫程序運(yùn)行結(jié)
果大綱規(guī)定是必考的。試卷中給出的程序并不復(fù)雜,語(yǔ)句的含義容易明白,
因此悟性好的選手總是很快就能體會(huì)到程序的設(shè)計(jì)思路并得出正確的答案,
而機(jī)械模仿計(jì)算機(jī)硬算出結(jié)果的同學(xué)往往做得很慢,而且容易失誤。
有部分同學(xué)在讀懂了程序的意思后結(jié)果卻寫錯(cuò)了,主要原因是沒(méi)有把握
住“臨界點(diǎn)”,即條件的具體限定,循環(huán)的起始點(diǎn)、結(jié)束點(diǎn)等等,往往是多
算一個(gè)點(diǎn)或少算一個(gè)點(diǎn)。
另外一個(gè)就是要注意輸出格式,因?yàn)閷懗绦蜻\(yùn)行結(jié)果的題一般只有輸出
語(yǔ)句才有輸出結(jié)果,如果讀懂了卻將格式寫錯(cuò)了得不到分?jǐn)?shù)那是最可惜的
了。
1.(1999年分區(qū)聯(lián)賽)
Programexcpl;
var
x,y,yl,jk,jl,g,e:Integer;
a:array[1..2O]of0..9;
begin
x:=3465;y:=264;jk:=20;
forj1:=1to20doa[j1]:=0;
whiley<>0do
begin
yl:=ymod10;y:=ydiv10;
whileyl<>0do
begin
g:=x;
fore:=Jkdownto1do
begin
g:=g+a[e];a[e]:=gmod10;g:=gdiv10
end;
yl:=yl-l
end;
jk:=jk-l
end;
whilea[jl]=Odojl:=jl+l;
forJk:=j1to20dowrite(a[jk]:4);
writein
end.
程序不長(zhǎng),但是有一定的難度。高手最多半分鐘就看懂了程序的意思,
但初學(xué)者往往算了很久得出了結(jié)果卻是錯(cuò)的。下面我們還是先以一個(gè)初學(xué)者
的身份分析?下這個(gè)程序。記住,不要一開(kāi)始就模擬電腦來(lái)一個(gè)個(gè)語(yǔ)句“執(zhí)
行”。
分析程序一般從以下幾點(diǎn)入手:
I、變量
首先是變量的名字。可惜分區(qū)聯(lián)賽題目中的變量不是I就是J,很討厭。
I和J?般作為循環(huán)計(jì)數(shù)器,沒(méi)有什么意思,因此不要管它了。然后要看變
量在程序的哪里出現(xiàn)過(guò),著重看它與其他變量的相互引用關(guān)系,猜測(cè)它的作
用。例如上題。x只在g:=x中出現(xiàn),暫時(shí)不要管它,因?yàn)樗芸赡苤皇且?/p>
個(gè)初始數(shù)據(jù)。y有三處:1)whiley<>0do2)yl:=ymod10;3)y:=ydiv10;
很明顯,y每次少了最后一位數(shù)字,把這位數(shù)字給了yU有經(jīng)驗(yàn)的選手應(yīng)該
體會(huì)到了什么,不過(guò)我們繼續(xù)?,F(xiàn)在我們知道了:y對(duì)程序的作用是:每次
提供最后一位給yl,即yl每次的值依次是:4,6,2
yi:
l)whileyloOdo
2)yl=yl-l
很明顯就是一個(gè)循環(huán)嘛!循環(huán)yl次!
jk:
l)fore:=jkdownto1do
2)jk:=jk-l
jk作為循環(huán)初始值,居然一次比一次少…其原因有待進(jìn)一步分析。
jl:
l)forjl:=lto20doa[j1]:=0;
2)jl:=l;
3)whilea[jl]=Odojl:=jl+l;
4)forJk:=j1to20dowrite(a[jk]:4);
顯然,jl和其它變量沒(méi)有什么聯(lián)系。1)是初始化,2)3)4)是輸出數(shù)組a
g:出現(xiàn)的位置是幾層循環(huán)之內(nèi)了,應(yīng)該很重要!一會(huì)兒再分析!
e:作為循環(huán)變量,沒(méi)有什么意思。
通過(guò)變量分析,我們知道了:x.y是數(shù)據(jù),y每次提供最后一位給yl,
循環(huán)yl次。jl和g的作用有待分析。
2、程序結(jié)構(gòu)
我們把程序分成幾塊。
1)x:=3465;y:=264;jk:=20;
forjl:=lto20doa|jl]:=0;
初始化。不要管它。
2)whiley<>0do
begin
yl:=ymod10;y:=ydiv10;
whileyloOdo
begin
?g:=x;
fore:=Jkdownto1do
begin
g:=g+a[e];a[e]:=gmod10;g:=gdiv10
end;
?
yl:=yl-l
end;
jk=k-l
end;
3)
whilea[jl]=0dojl:=jl+l;
forJk:=jlto20dowrite(a[jk]:4);
writein
輸出結(jié)果,也不要管它。
塊2最重要。它的思想是:每次取Y的最第位yl,執(zhí)行<o>yl次,每
次把jk減一。現(xiàn)在最重要的是<<>>中的在干什么。注意到最后輸出的a[],
要留意叫的變化!a[e]總是取個(gè)位(gmod10),g每次少一位,和a[e-l](別
忘了e在循環(huán)!)相加…難道是...高精度加法???它執(zhí)行了yl次,yl每次
都是y的個(gè)位…對(duì)了。程序就是在做x*y所以答案就是3465*264=914760
再看它的輸出格式,輸出的應(yīng)該是:―9—1—4—7—6—0
其實(shí)有經(jīng)驗(yàn)的話,看到g這個(gè)變量名和g:=g+a[e];a[e]:=gmod10;這幾
個(gè)標(biāo)志句子。就可以一下子知道程序的用意了。
<<>>中只有6行,你可以模擬電腦“執(zhí)行”幾個(gè)語(yǔ)句在找規(guī)律。方法
是:把循環(huán)“展開(kāi)”,再寫一個(gè)變量值表,即:語(yǔ)句執(zhí)行后變量情況:
g:=x;
g:=g+a[e];g=x+a[e];
a[e]:=gmod10;a[e]:=x+a[e]的個(gè)位
g:=gdiv10;g=(x+a[e])的前111位
g:=g+a[e-l];g=(x+a[e])的前幾位+a[e-l];
a[e-l]:=gmod10;a[e-l]=a[e-l]+(x+a[e])的進(jìn)位
(四)完善程序
這部分題目得分率似乎不高。許多同學(xué)有這樣的感覺(jué),這道題如果純粹
作為一?個(gè)編程題,自己還能寫出程序,但是試題中必須要根據(jù)它所設(shè)定的算
法來(lái)實(shí)現(xiàn),通常的感覺(jué)是不知道程序中要你做什么,不能讀懂它的算法基本
思想。對(duì)于這一類題目,往往要先多讀幾遍題意,理解要實(shí)現(xiàn)什么,然后是
理程序中的數(shù)據(jù)結(jié)構(gòu)、變量含義,最后才去考慮填什么語(yǔ)句。
這類試題常常讓大家填的是:
1、初始化(i:=0;j:=0;fori:=1tondoa[i]:=0之類的)
2、一些明顯的動(dòng)作:
(1)結(jié)果沒(méi)有儲(chǔ)存在需要的地方。
(2)累加器沒(méi)有做加法
(3)輸出
3、關(guān)鍵動(dòng)作。在算法描述中出現(xiàn)的比較關(guān)鍵的步驟。例如交換排序程序的
“交換”操作等很明顯需要完成的操作。分析方法和寫運(yùn)行結(jié)果類似,注意
分析變量和程序結(jié)構(gòu),理解變量和模塊的作用是解題的關(guān)鍵。
以2003年初賽題為例(初中組第二題、高中組第一題):
“翻硬幣”
[題意]:
有M枚硬幣堆在一起,從上面開(kāi)始先一次將一枚翻過(guò)來(lái),再一次將兩枚
一起翻過(guò)來(lái)……最后將M枚一起翻過(guò)來(lái),再?gòu)纳厦骈_(kāi)始第一次將上面一枚翻
過(guò)來(lái),一次將上面兩枚一起翻過(guò)來(lái)……直到最后還有所有M枚全部正面朝上
為止。要求總的翻硬幣次數(shù)。
[說(shuō)明]:
這道題如果純粹作為?個(gè)編程題,大家可能會(huì)用“模擬法”寫出相關(guān)程
序,設(shè)置一個(gè)標(biāo)志數(shù)組,模擬這個(gè)過(guò)程,每翻一次都檢查一下是否是全部正
面朝上,最后輸出翻的次數(shù)就可以。問(wèn)題是題中給出的程序不是用這種方法,
而是用的數(shù)學(xué)推導(dǎo)關(guān)系,也就是說(shuō)要求你找出翻的總次數(shù)跟M的關(guān)系。在短
的時(shí)間內(nèi)找出這樣的規(guī)律很難,因此此題得分率很低,幾乎沒(méi)有同學(xué)當(dāng)場(chǎng)能
做出。
[程序清單]:
programprogram42;
varm:integer;
functionsolve(m:integer):longint;
vari,t,d:longint;
flag:boolean;
begin
ifm=lthen(1)
else
begin
d:=2*m+l;t:=2;i:=1;flag:=false;
repeat
ift=lthenbeginsolve:=i*m;flag:=true;end
elseift=_______(2)then
beginsolve:=(3)______;flag:=true;end
else(4);
i:=i+l;
untilflag;
end;
end;
begin
read(m);
if(m>0)and(m<2000)thenwriteln((5));
end.
[分析]:
仔細(xì)閱讀和分析題意,可以能夠填出第一個(gè)和第五個(gè),因?yàn)橹挥幸幻稌r(shí)
要翻兩次,而主程序中沒(méi)有引用函數(shù),在輸出時(shí)直接引用0問(wèn)題是其它三個(gè)
如何填,在短時(shí)間內(nèi)很難找出相關(guān)數(shù)學(xué)關(guān)系,如果有一臺(tái)電腦,先寫出模擬
法的程序,運(yùn)算出m不同數(shù)值時(shí)的對(duì)應(yīng)結(jié)果,再?gòu)闹姓页鲫P(guān)系還好些,初
賽的性質(zhì)決定了只能由人工來(lái)模擬計(jì)算機(jī)工作,找出其中的規(guī)律。
從solve函數(shù)中可以看出分成了M=1和M>1兩種大的情況,在M>1
的情況下,結(jié)果的不同與t有關(guān),程序中根據(jù)t分為三種情況,其中t=l時(shí)
的結(jié)果已經(jīng)給出(為i*m),而另外兩種情況是要求你自己完成的,其中一
種情況是能夠決定翻的次數(shù)的,而整個(gè)程序中沒(méi)有看到對(duì)t進(jìn)行處理的語(yǔ)句,
所以要完成的任務(wù)一是:t為另一值時(shí)所確定的翻硬幣的次數(shù),任務(wù)二是:t
為其它情況時(shí)對(duì)t的處理,這個(gè)處理的賦值語(yǔ)句肯定與m有關(guān)。仔細(xì)看一看
程序,其中又引進(jìn)了一個(gè)變量d,它的值是2*m+l,已有的代碼中也沒(méi)有用
到這個(gè)變量,可以猜想給t賦值的表達(dá)式肯定是一個(gè)跟d有關(guān)的式子。
如果能結(jié)合“模擬法”程序運(yùn)行得出的結(jié)果,比較結(jié)果跟i、m的關(guān)
系,就能方便地找出規(guī)律(通項(xiàng)公式)。
以下是m為不同值時(shí);相關(guān)幾個(gè)變量跟結(jié)果的關(guān)系:
m=3d=72*m=6重復(fù)t:=t*2modd運(yùn)算,直到t=l或t=2*m
i123
t241solve=i*m=9
m=4d=92*m=8
i123
t248solve=i*m-l=3*4-l=ll
m=5d=ll2*m=10
i12345
t248510solve=1*01-1=5*5-1=24
m=6d=132*m=12
i123456
t2483612solve:=i*m-1=6*6-1=35
m=7d=152*m=14
i1234
t2481solve:=i*m=4*m=28
m=15d=312*IIF30
i12345
t248161solve:=i*m=5*l5=75
m=16d=332*m=32
i12345
t2481632solve:=i*田一1=5*16T=79
m=30d=612*m=60
i1234567891011121314151617181920212223
24252627282930
t248163236122448359183611224427544733510
20401938153060
solve:=I*m-1=899
所以本題應(yīng)填的結(jié)果為:
(1)solve:=2
⑵2*m
(3)i*m-l
(4)t:=2*tmodd
(5)solve(m)
綜上所述,初賽還是有一定的難度的,但是只要基礎(chǔ)打牢,系統(tǒng)訓(xùn)練
過(guò)的同學(xué)正常發(fā)揮應(yīng)該能拿到50以上的分?jǐn)?shù)的。
至于復(fù)賽題型與內(nèi)容,在后續(xù)的內(nèi)容里再向大家介紹。
附:
全國(guó)青少年信息學(xué)(計(jì)算機(jī))奧林匹克分區(qū)聯(lián)賽競(jìng)賽大綱(修改稿)
1.試題知識(shí)范圍:
初賽內(nèi)容與要求
1.計(jì)算機(jī)和信息社會(huì)(信息社會(huì)的主要特征、計(jì)算機(jī)的主要特征、數(shù)字通信網(wǎng)
絡(luò)的主要特征、數(shù)字化)
2.信息輸入輸出基本原理(信息交換環(huán)境、文字圖形多媒體信息輸入輸出方式)
計(jì)
3.信息的表示與處理(信息編碼、微處理部件MPU、內(nèi)存儲(chǔ)結(jié)構(gòu)、指令,程序,
算和存儲(chǔ)程序原理、程序的三種基本控制結(jié)構(gòu))
機(jī)
4.信息的存儲(chǔ)、組織與管理(存儲(chǔ)介質(zhì)、存儲(chǔ)器結(jié)構(gòu)、文件管理、數(shù)據(jù)庫(kù)管理)
的
5.信息系統(tǒng)組成及互連網(wǎng)的基本知識(shí)(計(jì)算機(jī)構(gòu)成原理、槽和端口的部件間可
擴(kuò)展互連方式、層次式的互連結(jié)構(gòu)、互聯(lián)網(wǎng)絡(luò)、TCP/IP協(xié)議、HTTP協(xié)議、
WEB應(yīng)用的主要方式和特點(diǎn))
6.人機(jī)交互界面的基本概念(窗口系統(tǒng)、人和計(jì)算機(jī)交流信息的途徑(文本及
交互操作))
7.信息技術(shù)的新發(fā)展、新特點(diǎn)、新應(yīng)用等。
基
本1.Windows和LINUX的基本操作知識(shí)
操2.互聯(lián)網(wǎng)的基本使用常識(shí)(網(wǎng)上瀏覽、搜索和查詢等)
作3.常用的工具軟件使用(文字編輯、電子郵件收發(fā)等)
程1.程序語(yǔ)言中基本數(shù)據(jù)類型(字符、整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn))
序2.浮點(diǎn)運(yùn)算中的精度和數(shù)值比較
3.一維數(shù)組(串)與線性表
設(shè)4.記錄類型(PASCAL)/結(jié)構(gòu)類型(C)
計(jì)1.結(jié)構(gòu)化程序設(shè)計(jì)的基本概念
2.閱讀理解程序的基本能力
的3.具有將簡(jiǎn)單問(wèn)題抽象成適合計(jì)算機(jī)解決的模型的基本能力
基4.具有針對(duì)模型設(shè)計(jì)簡(jiǎn)單算法的基本能力
5.程序流程描述(自然語(yǔ)言/偽碼/NS圖/其他)
本6.程序設(shè)計(jì)語(yǔ)言(PASCAL/C/C++,2003年仍允許BASIC)
知1.初等算法(計(jì)數(shù)、統(tǒng)計(jì)、數(shù)學(xué)運(yùn)算等)
基本算法2.排序算法(冒泡法、插入排序、合并排序、快速排序)
識(shí)處理3.查找(順序查找、二分法)
4.回溯算法
復(fù)賽內(nèi)容與要求
在初賽的內(nèi)容上增加以下內(nèi)容:
數(shù)1.指針類型
據(jù)2.多維數(shù)組
結(jié)3.單鏈表及循環(huán)鏈表
構(gòu)4.二叉樹(shù)
5.文件操作(從文本文件中讀入數(shù)據(jù),并輸出到文本文件中)
1.算法的實(shí)現(xiàn)能力
2.程序調(diào)試基本能力
3.設(shè)計(jì)測(cè)試數(shù)據(jù)的基本能力
4.程序的時(shí)間復(fù)雜度和空間復(fù)雜度的估計(jì)
1.離散數(shù)學(xué)知識(shí)的應(yīng)用(如排列組合、簡(jiǎn)單圖論、數(shù)理邏輯)
2.分治思想
3.模擬法
4.貪心法
5.簡(jiǎn)單搜索算法(深度優(yōu)先廣度優(yōu)先)搜索中的剪枝
6.動(dòng)態(tài)規(guī)劃的思想及基本算法
2.比賽中使用的程序設(shè)計(jì)語(yǔ)言是:
2003年:初賽:BASIC、PASCAL或C/C++;
復(fù)賽:BASIC、PASCAL或C/C++。
2004年:初賽:BASIC、PASCAL或C/C++
復(fù)賽:PASCAL或C/C++。
2005年及之后:初賽:PASCAL或C/C++
復(fù)賽:PASCAL或C/C++。
第二章計(jì)算機(jī)基礎(chǔ)知識(shí)
一、二進(jìn)制數(shù)
計(jì)算機(jī)內(nèi)信息的存儲(chǔ)、運(yùn)算等主要通過(guò)二進(jìn)制。
二進(jìn)制的特點(diǎn):只有兩個(gè)基本數(shù)字。和1;逢二進(jìn)一位。
二進(jìn)制的優(yōu)點(diǎn):因?yàn)樗挥袃蓚€(gè)基本數(shù)字0和I,所以容易物理實(shí)現(xiàn)。
所謂物理實(shí)現(xiàn),指的是通過(guò)不同的物理狀態(tài)來(lái)表示不同的數(shù)字。如在計(jì)算機(jī)
的內(nèi)部,對(duì)于0和1可以通過(guò)高電平(電壓稍高一點(diǎn)的電流)和低電平(電
壓稍低一點(diǎn)的電流)來(lái)表示。又如在軟磁盤上存放一個(gè)0或1,可以通過(guò)磁
性的強(qiáng)弱來(lái)表示。
二進(jìn)制的缺點(diǎn):讀寫不方便。有時(shí)又引進(jìn)八進(jìn)制或十六進(jìn)制來(lái)方便描述。
因?yàn)?是2的3次方,所以三位二進(jìn)制跟一位八進(jìn)制相對(duì)應(yīng);同樣四位二
進(jìn)制跟一位十六進(jìn)制相對(duì)應(yīng)。八進(jìn)制有8個(gè)基本數(shù)字:01234567,它的特點(diǎn)
是逢八進(jìn)一位。而十六進(jìn)制的有十六個(gè)基本數(shù)字:0123456789ABCDEF,它
的特點(diǎn)是逢十六進(jìn)一位。下面是幾種進(jìn)制的對(duì)照表:
十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
16100002010
19100112313
20101002414
我們知道十進(jìn)制的每一位的權(quán)代表的是十的若干次方,不同進(jìn)制的數(shù),
基數(shù)不同,其每位上所代表的值大小也不同,我們稱之為“權(quán)”。
①十進(jìn)制數(shù),逢十進(jìn)一。如(219)IO=2*1O2+1*1OI+9*1O0
432
②二進(jìn)制數(shù),逢二進(jìn)一。如(11010)2=1*2+1*2+0*2+1*2'+0*2°=26
③八進(jìn)制數(shù),逢八進(jìn)一。如(273)8=2*82+7*8'+3*8°=187
21
④十六進(jìn)制數(shù),逢十六進(jìn)一。如(27B)l6=2*16+7*16+11*16°=635
從以上.的計(jì)算中可以看到:進(jìn)制不同,基數(shù)不同,每位上權(quán)值大小也不
同,數(shù)值大小也不相同。
將十進(jìn)制數(shù)轉(zhuǎn)換為任意進(jìn)制數(shù)的基本方法為:將十進(jìn)制數(shù)除以所定的進(jìn)
制數(shù)反向取余,如將十進(jìn)制數(shù)39轉(zhuǎn)為二進(jìn)制數(shù):
2I39_________
2I191
2I91
2I41
2\J20
21_10
201
39(10)=100111(2)39=32+4+2+1=100111(2)
又如將245轉(zhuǎn)為八進(jìn)制:245(10)=365(8)
8I245
8I305八
8I36
803
對(duì)于十進(jìn)制小數(shù)轉(zhuǎn)為其他進(jìn)制的小數(shù),則是不斷將小數(shù)部分乘以進(jìn)制數(shù)
取整,作為轉(zhuǎn)換后的小數(shù)部分,直到為零或精確到小數(shù)點(diǎn)后第幾位。如
0.35(10)=0.01011(2),0.125(10)=0.001(2)
任意進(jìn)制數(shù)轉(zhuǎn)為十進(jìn)制數(shù)的基本方法是按權(quán)展開(kāi)求和,前面①②③④例
子已說(shuō)明。
二、信息代碼及ASCH碼
信息在計(jì)算機(jī)內(nèi)存儲(chǔ)或運(yùn)算是通過(guò)二進(jìn)制來(lái)實(shí)現(xiàn)的,計(jì)算機(jī)本身并不要
求你按什么規(guī)律來(lái)將信息轉(zhuǎn)換為什么代碼,只有你給出對(duì)應(yīng)規(guī)律就行。也就
是說(shuō)誰(shuí)都可以來(lái)定義代碼,但如果這樣各自亂定義沒(méi)有統(tǒng)一的規(guī)定,對(duì)于計(jì)
算機(jī)與計(jì)算機(jī)之間的信息交換就不能保證了。
國(guó)際上統(tǒng)一使用美國(guó)信息交換標(biāo)準(zhǔn)代碼ASCH碼。ASCII碼用八位的二
進(jìn)制表示,基本的ASCII字符集共128(2的7次方)個(gè),其二進(jìn)制代碼最
高位為0,如“A”對(duì)的編碼為01000001(2),相當(dāng)于十進(jìn)制65。中國(guó)漢字
編碼用兩個(gè)字節(jié)表示,為了區(qū)別一般編碼,其最高位設(shè)為1。漢字國(guó)標(biāo)區(qū)位
碼GB2312-80又稱區(qū)位碼,共分94個(gè)區(qū),兩位的區(qū)號(hào)和兩位的位號(hào)惟一確
定一個(gè)漢字或符號(hào),01到15區(qū)為符號(hào)區(qū),16到55區(qū)為一級(jí)漢字(以拼音
為序)共3755個(gè),56以后的二級(jí)漢字(以部首為序)共3008個(gè)。
其它常見(jiàn)的代碼有BCD碼等(四位二進(jìn)制只取前面的4位從而方便地
跟十進(jìn)制對(duì)應(yīng)起來(lái))。
三、原碼、反碼、補(bǔ)碼
對(duì)于正數(shù),在計(jì)算機(jī)內(nèi)部都是采用原碼表示的,即原來(lái)是什么就表示成
相應(yīng)的二進(jìn)制數(shù)。一般第一位為符號(hào)位。
如+65,對(duì)應(yīng)的二進(jìn)制數(shù)是100()001,加上符號(hào)位為01000001。
對(duì)于負(fù)數(shù)或0可能用補(bǔ)碼表示。補(bǔ)碼是在反碼的基礎(chǔ)上加上1。而反碼
就是取反的操作,將0變?yōu)?,1變?yōu)?。
由于采用了補(bǔ)碼,使0的表示唯一了。
(問(wèn)題:如果都是用原碼表示,0的兩種表示是什么?)
四、其它一些計(jì)算機(jī)基礎(chǔ)知識(shí)
I.計(jì)算機(jī)的產(chǎn)生與發(fā)展
1946年世界上第一臺(tái)電子計(jì)算機(jī)——埃尼阿克(ENIAC)于美國(guó)產(chǎn)生。
計(jì)算機(jī)的發(fā)展經(jīng)歷了四代:第一代電子管計(jì)算機(jī)、第二代晶體管計(jì)算機(jī)、第
三代中小規(guī)模集成電路計(jì)算機(jī)、第四代大規(guī)模和超大規(guī)模集成電路計(jì)算機(jī)。
我國(guó)從1956年開(kāi)始電子計(jì)算機(jī)的科研與教學(xué)工作,1983年12月成功
地研制成功每秒運(yùn)行1億次以上的“銀河”巨型計(jì)算機(jī)。1992年11月研制
成功每秒運(yùn)行10億次的“銀河H”巨型計(jì)算機(jī),1997年又研制成功每秒運(yùn)
行130億次的“銀河HI”巨型計(jì)算機(jī)。
2.計(jì)算機(jī)系統(tǒng)及其工作原理
(1)計(jì)算機(jī)系統(tǒng)組成
計(jì)算機(jī)系統(tǒng)由硬件和軟件兩部分組成。硬件指計(jì)算機(jī)的各種元器件;軟
件指程序的有關(guān)的文檔資料。
主要硬件:
①輸入設(shè)備常見(jiàn)的有鍵盤、鼠標(biāo)、掃描儀等。
②輸出設(shè)備常見(jiàn)的有顯示器、打印機(jī)、繪圖儀等。
③中央處理器CPU它包括運(yùn)算器和控制器,運(yùn)算器進(jìn)行算術(shù)運(yùn)算和邏
輯運(yùn)算,控制器是計(jì)算機(jī)的指揮系統(tǒng),它的操作過(guò)程是取指令——分
析指令——執(zhí)行指令,循環(huán)執(zhí)行。
④存儲(chǔ)器具有記憶功能的物理器件,用于存儲(chǔ)信息,存儲(chǔ)器分為內(nèi)存
和外存。內(nèi)存是半導(dǎo)體存儲(chǔ)器,它分為只讀存儲(chǔ)器(ROM)、隨機(jī)存儲(chǔ)
器(RAM)和高速緩存(cache),一般所說(shuō)的計(jì)算機(jī)內(nèi)存大小是指RAM
的大小,如128MB、64MB、32MB等。外存現(xiàn)在主要有磁性存儲(chǔ)器(軟
盤和硬盤、磁帶等)和光電存儲(chǔ)器(光盤等),它們可以作為永久性
存儲(chǔ)器。存儲(chǔ)器的兩個(gè)重要技術(shù)指標(biāo):存取速度和存儲(chǔ)容量,內(nèi)存的
存取速度快,叮CPU速度相匹配,軟盤的存取速度慢。存儲(chǔ)容量是指
存儲(chǔ)信息量的大小,它用字節(jié)(Byte)作為基本單位,1個(gè)字節(jié)用8
位二進(jìn)制(Bit)表示(即lByte=8bit),1KB=1O24B,1MB=1024KB,
1GB=1024MB...?
計(jì)算機(jī)的軟件:
分為系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件是管理和使用計(jì)算機(jī)的軟件,主要
有操作系統(tǒng)軟件如Windows95/98/2000/NT、DOS、UNIX等,其中Windows
系列是多任務(wù)可視化圖形界面,而DOS是字符命令格式的單任務(wù)的操作系
統(tǒng)。應(yīng)用軟件是為了某個(gè)應(yīng)用目的而編寫的軟件,主要有輔助教學(xué)軟件、輔
助設(shè)計(jì)軟件、文字處理軟件、工具軟件以及其它的應(yīng)用軟件。
(2)計(jì)算機(jī)的工作原理
到目前為止,電子計(jì)算機(jī)的工件原理均采用馮.諾依曼的存儲(chǔ)程序思想,
其工作過(guò)程如下圖:(控制器發(fā)出控制信號(hào)控制其它器件工作)
程序中的數(shù)據(jù)、指令都采用數(shù)字化編碼方式,保存在存儲(chǔ)器中,程序中
的指令必須是屬于這臺(tái)機(jī)器的指令系統(tǒng)。
(3)計(jì)算機(jī)病毒:是一種程序,是人為設(shè)計(jì)的具有破壞性的程序。
3、DOS的常用命令及其應(yīng)用
(1)文件
文件是指記錄在存儲(chǔ)介質(zhì)(如磁盤、光盤等)上的一組相關(guān)信息的集合。
文件夾(又稱子目錄)將文件人為地分組存放,每一組給定一個(gè)名字,
則稱這個(gè)組為文件夾。
文件的基本操作有建立、存儲(chǔ)、復(fù)制、刪除、重命名、移動(dòng)、建立子目
錄(文件夾)、刪除子目錄(文件夾)、進(jìn)入子目錄(文件夾)、退出子目錄
(文件夾)。
(2)內(nèi)部命令
是指當(dāng)DOS啟動(dòng)后,計(jì)算機(jī)引導(dǎo)程序?qū)⑾到y(tǒng)以及常用的命令處理模塊駐
留在計(jì)算機(jī)的內(nèi)存中。
常用的內(nèi)部命令有:
目錄類DIR(顯示文件目錄)、MD,CD,RD(建立、進(jìn)入、刪除子目錄)。
文件類COPY(拷貝)、DEL(冊(cè)U除)、TYPE(顯示內(nèi)容)、REN(或RENAME
改名)
功能類CLS(清屏)、TIME(查或改系統(tǒng)時(shí)間)、DATE(查或改系統(tǒng)日期)、
VER(查有關(guān)版本信息)等。
(3)外部命令
存儲(chǔ)在外存儲(chǔ)器上的DOS可執(zhí)行文件(擴(kuò)展名為COM、EXE或BAT
的),當(dāng)用戶使用外部命令時(shí),計(jì)算機(jī)就從外存調(diào)入內(nèi)存,當(dāng)執(zhí)行完命令,
就自動(dòng)從內(nèi)存中退出。常用的外部命令有:FORMAT(格式化磁盤)、
DISKCOPY(磁盤拷貝)等。
4.Windows基本知識(shí)
系統(tǒng)資源與資源管理器,文件與文件夾
運(yùn)行程序:窗口執(zhí)行、命令執(zhí)行(可執(zhí)行文件exe、com、bat)、不可直
接執(zhí)行文件(要其它可執(zhí)行系統(tǒng)的支持或提供給其它程序使用)o
文件的類型:主要通過(guò)擴(kuò)展名來(lái)區(qū)別,如.pas表示PASCAL的源文件。
5.網(wǎng)絡(luò)的基本知識(shí)
(1)概念
將地理位置不同的計(jì)算機(jī)用通信手段連接起來(lái),并共同遵守一定的協(xié)
議,共享計(jì)算機(jī)的軟、硬件資源。因特網(wǎng)是網(wǎng)絡(luò)的集合,是全球最大的網(wǎng)絡(luò)。
(2)網(wǎng)絡(luò)類型
網(wǎng)絡(luò)分為局域網(wǎng)(局限于某個(gè)范圍內(nèi)的網(wǎng)絡(luò)連接)和廣域網(wǎng)(跨地區(qū)的
范圍廣的網(wǎng)絡(luò),因特網(wǎng)是覆蓋全球的廣域網(wǎng))。
(3)因特網(wǎng)提供的服務(wù)主要功能有:
信息瀏覽(WWW)文件傳輸(FTP)發(fā)送電子郵件(E-mail)
電子公告牌(BBS)遠(yuǎn)程登錄(telnet)電子商務(wù)
網(wǎng)址的結(jié)構(gòu)如http:〃
其是http:〃超文本瀏覽協(xié)議www.sina表示主機(jī)域名
com——網(wǎng)絡(luò)機(jī)構(gòu)域名,這里是商業(yè)網(wǎng),其它的如net、gov等
cn——地區(qū)域名,這里是中國(guó)域名,其它如hk為香港、tw為臺(tái)灣,
不加地區(qū)域名的為國(guó)際域名。
電子郵件地址:如yuekingl21@163.com這里yuekingl21是用戶名,
@是分隔符號(hào),163是主機(jī)名。
網(wǎng)絡(luò)內(nèi)容比較多,請(qǐng)參見(jiàn)本章后閱讀材料。
6.Linux操作系統(tǒng)
是一種免費(fèi)的操作系統(tǒng),使用越來(lái)廣泛,詳見(jiàn)閱讀材料。
7.漢字輸入方法
漢字的輸入方法很多,大體分為:流水碼(序碼)、音碼、形碼、音形
碼。
流水碼:區(qū)位碼、電報(bào)碼、通訊密碼等均屬于流水碼,優(yōu)點(diǎn)是重碼少(幾
乎沒(méi)有重碼),缺點(diǎn)是難于記憶。其中區(qū)位碼比較早的有GB2013/80,每個(gè)
漢字或符號(hào)均對(duì)應(yīng)一個(gè)四位數(shù),前兩位為區(qū)號(hào),后兩位為位號(hào)。如“、”的
區(qū)位碼為“0102”。前15個(gè)區(qū)為基本符號(hào),16-55區(qū)為一級(jí)漢字(常用漢字),
根據(jù)拼音的順序排列,56區(qū)以后為二級(jí)漢字(不常用的漢字),按部首的順
序排列。
音碼:以漢語(yǔ)拼音作為編碼輸入漢字,優(yōu)點(diǎn)是大多數(shù)人都易于掌握,但
同音字多,重碼率高,影響輸入的速度。
形碼:以漢字的字形進(jìn)行編碼,編碼的規(guī)則比較多,難于記憶,要經(jīng)過(guò)
訓(xùn)練才能較好地掌握,一般重碼很少,能達(dá)到較高的速度。
音形碼:將音碼和形碼結(jié)合起來(lái),減少重碼率,提高漢字輸入速度。
五、計(jì)算機(jī)語(yǔ)言
計(jì)算機(jī)語(yǔ)言是人與計(jì)算機(jī)進(jìn)行交流的一種工具,通過(guò)它可以編寫程序,
讓計(jì)算機(jī)完成交給它的系列任務(wù)。
計(jì)算機(jī)語(yǔ)言分為機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。
機(jī)器語(yǔ)言是計(jì)算機(jī)唯一能夠直接識(shí)別的語(yǔ)言,無(wú)論是操作符和操作數(shù)都
是由0和1組成的,其優(yōu)點(diǎn)是簡(jiǎn)單,執(zhí)行效率高,缺點(diǎn)是讀寫起來(lái)很不方便,
且通用性差,不同的計(jì)算機(jī)其機(jī)器語(yǔ)言也不一樣。
匯編語(yǔ)言是機(jī)器語(yǔ)言的符號(hào)化,只是增加了可讀性,但仍然是通用性不
強(qiáng),編程時(shí)要對(duì)相應(yīng)機(jī)器有所了解,換句話說(shuō)就是要有一定的計(jì)算機(jī)專業(yè)基
礎(chǔ)才能寫出程序。不同類型、不同檔次的計(jì)算機(jī)其匯編語(yǔ)言也不一樣的。
由于機(jī)器語(yǔ)言和匯編語(yǔ)言都是針對(duì)機(jī)器而言的,汲及到底層的操作,有
人把它稱為低級(jí)語(yǔ)言。而直接面向應(yīng)用的是高級(jí)語(yǔ)言,只要用戶能夠確定好
算法,不需要對(duì)機(jī)器了解多少就能夠?qū)懗龀绦颍腋呒?jí)語(yǔ)言都跟自然語(yǔ)言比
較接近(幾乎都是英語(yǔ))。一般所說(shuō)的程序設(shè)計(jì)語(yǔ)言都是指的高級(jí)語(yǔ)言。高
級(jí)語(yǔ)言很多,常見(jiàn)的有BASIC、PASCAL.C、FORTRAN等。
由于計(jì)算機(jī)能直接執(zhí)行的只有機(jī)器語(yǔ)言,所以其它語(yǔ)言寫的程序都要有
一個(gè)“翻譯”的過(guò)程。這種翻譯分為兩種:解釋方式和編譯方式。
解釋方式就是一邊翻譯一邊執(zhí)行,下一次執(zhí)行時(shí)還要翻譯,還要依賴于
程序系統(tǒng)。
編譯方式是將整個(gè)程序翻譯成機(jī)器能夠執(zhí)行的代碼,以后只要執(zhí)行這個(gè)
翻譯好的代碼就行了,不要重新翻譯了。在TurboPascal7.0里,運(yùn)行程
序前會(huì)自動(dòng)編譯,一般情況下會(huì)在磁盤里生成一個(gè)同主名的exe(可執(zhí)行)
文件。
[閱讀材料]:
一、網(wǎng)絡(luò)基礎(chǔ)知識(shí)
1、網(wǎng)絡(luò)的概念:計(jì)算機(jī)網(wǎng)絡(luò)(Network)是將處在不同地理位置且相互獨(dú)立
的計(jì)算機(jī)或設(shè)備,通過(guò)傳輸介質(zhì)和網(wǎng)絡(luò)設(shè)備按照特定的結(jié)構(gòu)和協(xié)
議相互連接起來(lái),利用網(wǎng)絡(luò)操作系統(tǒng)進(jìn)行管理和控制,從而實(shí)現(xiàn)信息傳
輸和資源共享的一種信息系統(tǒng)。
2、網(wǎng)絡(luò)的發(fā)展:
ARPAnet
ARPAnetC高級(jí)研究計(jì)劃署網(wǎng)絡(luò),AdvancedResearchProjectsAgencynet)
是世界上第一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),出現(xiàn)在20世紀(jì)60年代后期,由美國(guó)國(guó)防部資
助。其第一個(gè)節(jié)點(diǎn)于1969年在加利福利亞大學(xué)洛杉磯分校安裝,最終發(fā)展
成為今天的Internet。
我國(guó)Internet的發(fā)展
1987年9月下旬,錢天白教授發(fā)出我國(guó)第一封電子郵件“越過(guò)長(zhǎng)城,
通向世界“,揭開(kāi)了中國(guó)人使用Internet的序幕。
3、網(wǎng)絡(luò)的分類:
(1)按照地理范圍分類
局域網(wǎng)(LocalAreaNetwork,LAN)
覆蓋范圍一般不超過(guò)數(shù)十公里,通常是一幢建筑物內(nèi)、相鄰的幾幢建筑
物之間或者是一個(gè)園區(qū)的網(wǎng)絡(luò)。
廣域網(wǎng)(WideAreaNetwork,WAN)
覆蓋范圍通常為數(shù)百公里到數(shù)千公里,甚至數(shù)萬(wàn)公里,可以是一個(gè)地區(qū)
或一個(gè)國(guó)家,甚至世界幾大洲或整個(gè)地球。
城域網(wǎng)(MetropolitanAreaNetwork,MAN)
覆蓋的地理范圍介于局域網(wǎng)和廣域網(wǎng)之間,通常為數(shù)十公里到數(shù)百公里
的一座城市內(nèi)。
(2)按照管理方式分類
對(duì)等網(wǎng)(PeertoPeer)
通常是由很少幾臺(tái)計(jì)算機(jī)組成的工作組。對(duì)等網(wǎng)采用分散管理的方式,
網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)既作為客戶機(jī)又可作為服務(wù)器來(lái)工作,每個(gè)用戶都管理
自己機(jī)器上.的資源。
客戶機(jī)/服務(wù)器網(wǎng)(Client/Server)
網(wǎng)絡(luò)的管理工作集中在運(yùn)行特殊網(wǎng)絡(luò)操作系統(tǒng)服務(wù)器軟件的計(jì)算機(jī)上進(jìn)
行,這臺(tái)計(jì)算機(jī)被稱為服務(wù)器,它可以驗(yàn)證用戶名和密碼的信息,處理客戶
機(jī)的請(qǐng)求。而網(wǎng)絡(luò)中其余的計(jì)算機(jī)則不需要進(jìn)行管理,而是將請(qǐng)求通過(guò)轉(zhuǎn)發(fā)
器(Redirector)發(fā)給服務(wù)器。
(3)按照數(shù)據(jù)傳輸方式分類
廣播網(wǎng)絡(luò)(BroadcastingNetwork)
網(wǎng)絡(luò)中的計(jì)算機(jī)或設(shè)備通過(guò)一條共享的通信介質(zhì)進(jìn)行數(shù)據(jù)傳播,所有節(jié)
點(diǎn)都會(huì)收到任何節(jié)點(diǎn)發(fā)出的數(shù)據(jù)信息。這種傳輸方式主要應(yīng)用于局域網(wǎng)中。
廣播網(wǎng)絡(luò)中有三種傳輸類型:?jiǎn)尾?、組播和廣播。
點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)(PointtoPointNetwork)
網(wǎng)絡(luò)中的計(jì)算機(jī)或設(shè)備通過(guò)單獨(dú)的鏈路進(jìn)行數(shù)據(jù)傳輸,并且兩個(gè)節(jié)點(diǎn)間
都可能會(huì)有多條單獨(dú)的鏈路。這種傳播方式主要應(yīng)用于廣域網(wǎng)中。
4、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):總線拓?fù)?、星形拓?fù)?、環(huán)形拓?fù)?、網(wǎng)狀拓?fù)洹⒒旌贤負(fù)洹?/p>
蜂窩拓?fù)?/p>
二、協(xié)議和參考模型
1、什么是協(xié)議:
協(xié)議是網(wǎng)絡(luò)中計(jì)算機(jī)或設(shè)備之間進(jìn)行通信的一系列規(guī)則的集合。
協(xié)議示例,以發(fā)送消息“HELLOSTUDENTS”為例:
|0口|4|H|E|L|L|O|S|T|U|D|E|N|T|S-|
常用協(xié)議有:IP、TCP、HTTP,POP3、SMTP
2、分層結(jié)構(gòu)的優(yōu)點(diǎn):
各層間相互獨(dú)立,某一層的變化不會(huì)影響其他層
促進(jìn)標(biāo)準(zhǔn)化工作
使網(wǎng)絡(luò)易于實(shí)現(xiàn)和維護(hù)
3、分層結(jié)構(gòu)的工作原理:
縱向通信
在分層結(jié)構(gòu)中,低層服務(wù)為高層服務(wù)提供服務(wù),高層服務(wù)使用低層服務(wù)
提供的服務(wù)。
橫向通信
分層結(jié)構(gòu)中,對(duì)應(yīng)的分層協(xié)同工作,以保證能夠成功的完成通信。
4、OSI參考模型
具體7層數(shù)據(jù)格式功能與連接方式典型設(shè)備
應(yīng)用層網(wǎng)絡(luò)服務(wù)與使用者應(yīng)
Application用程序間的一個(gè)接口
表示層數(shù)據(jù)表示、數(shù)據(jù)安全、
Presentation數(shù)據(jù)壓縮
會(huì)話層
建立、管理和終止會(huì)話
Session
傳輸層數(shù)據(jù)組織成數(shù)據(jù)用一個(gè)尋址機(jī)制來(lái)標(biāo)
Transport段(Segment)識(shí)一個(gè)特定的應(yīng)用程
序(端口號(hào))
網(wǎng)絡(luò)層分割和重新組合基于網(wǎng)絡(luò)層地址(IP地
Network數(shù)據(jù)包(Packet)址)進(jìn)行不同網(wǎng)絡(luò)系統(tǒng)路由器
間的路徑選擇
數(shù)據(jù)鏈路層將比特信息封裝通過(guò)使用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 二年級(jí)語(yǔ)文上冊(cè)教案第一單元
- 《電氣控制系統(tǒng)設(shè)計(jì)與裝調(diào)》教案 項(xiàng)目七任務(wù)二:自吸泵電動(dòng)機(jī)控制線路的設(shè)計(jì)與安裝
- 【初中物理】密度的利用同步訓(xùn)練+-2024-2025學(xué)年人教版物理八年級(jí)上冊(cè)
- 家用電烹飪烤箱產(chǎn)品供應(yīng)鏈分析
- 制搪瓷機(jī)械市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 塊墨煙灰墨產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 垃圾處理焚化爐產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 工業(yè)用真空吸塵器市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 屠宰機(jī)產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- pcs-9882ad說(shuō)明書(shū)-國(guó)內(nèi)中文版
- 外研版六年級(jí)上冊(cè)英語(yǔ)期中試卷(含聽(tīng)力音頻)
- 環(huán)境和物體表面的清潔與消毒制度
- QGDW-11513.1-2022-變電站智能機(jī)器人巡檢系統(tǒng)技術(shù)規(guī)范第1部分
- GB∕T 19492-2020 油氣礦產(chǎn)資源儲(chǔ)量分類
- 農(nóng)村基礎(chǔ)設(shè)施建設(shè)太陽(yáng)能路燈施工方案
- 中考物理之透鏡作圖(含解析)
- DB33∕T 1251-2021 燃?xì)庥脩粼O(shè)施安全檢查標(biāo)準(zhǔn)
- 新技術(shù)新項(xiàng)目申報(bào)模板課件
- 《HSK標(biāo)準(zhǔn)教程練習(xí)冊(cè)4上》聽(tīng)力文本和參考答案解析
- 新北師大五年級(jí)數(shù)學(xué)上冊(cè)每單元教學(xué)反思
評(píng)論
0/150
提交評(píng)論