高一第一學(xué)期信息技術(shù)競賽輔導(dǎo)總結(jié)
信息技術(shù)高一第一學(xué)期學(xué)科競賽輔導(dǎo)總結(jié)
連州中學(xué)
201*年1月15日
由教育部基礎(chǔ)教育一司、二司指導(dǎo),中央電化教育管主辦的第12屆全國中小學(xué)電腦制作活動將于201*年3月底舉行。全國中小學(xué)電腦制作活動是豐富中小學(xué)生學(xué)習(xí)生活,培養(yǎng)創(chuàng)新精神和實踐能力,推進中小學(xué)普及信息技術(shù)教育的重要措施,也是各地中小學(xué)信息技術(shù)教育成果的集中展示。廣東省教育廳下發(fā)的《關(guān)于舉辦第十二屆全國中小學(xué)電腦制作活動》文件的要求,為發(fā)揮信息技術(shù)教育優(yōu)勢,提高學(xué)生綜合素質(zhì),豐富第二課堂教學(xué)活動,培養(yǎng)創(chuàng)新人才,全面推進素質(zhì)教育,結(jié)合我校實際情況,為進一步提高學(xué)生的操作能力和動手能力,切實提高學(xué)生學(xué)以致用的能力和水平,提高我校乃至我市信息技術(shù)在各學(xué)科中的影響,本人從201*年9月中旬開始組織學(xué)生參與本次競賽培訓(xùn)活動,到201*年12月28日為止,現(xiàn)將三個多月的輔導(dǎo)工作情況總結(jié)如下:
第一,以信息技術(shù)課為核心,課外活動相結(jié)合,在輔導(dǎo)工作中,本人擔(dān)任比賽信息獲取、指導(dǎo)學(xué)生解決技術(shù)問題和協(xié)助學(xué)生整理作品準(zhǔn)備上交的工作。上課之前進行資料收集,突出以教材為本教學(xué)研究的針對性、實踐性和實效性,通過系列輔導(dǎo)和學(xué)生實踐活動,注重對學(xué)生成長過程的培養(yǎng),全面提高學(xué)生的操作能力和動手能力。對學(xué)生的個別差異有清楚的認(rèn)識,使教學(xué)更符合學(xué)生的需要,達到因材施教的目的。
第二,根據(jù)學(xué)生的特長確定參賽項目。所謂"要想在游戲中取勝,就必須熟悉游戲規(guī)則"。另外,揣摩歷屆獲獎作品,師生在共同觀看歷屆獲獎作品的時候結(jié)合歷屆的活動主題來思考,討論為什么該作品能獲獎,并從中得到啟發(fā)。我一方面可以讓學(xué)生自行選擇參賽的項目,一方面明確規(guī)定哪些學(xué)生參加哪個項目,做到學(xué)校內(nèi)各參賽項目都有學(xué)生參加。
第三,教學(xué)輔導(dǎo)工作認(rèn)真做到計劃、進度、教學(xué)內(nèi)容、重點要求四個統(tǒng)一。平均每月集中三次,研究某一個參賽項目的具體實施情況,協(xié)調(diào)輔導(dǎo)進度、反省過往工作中的不足和缺陷等內(nèi)容。
第四,輔導(dǎo)過程中存在的問題。電腦設(shè)備較陳舊,運行設(shè)計軟件較慢,一定程度影響了學(xué)生的積極性。學(xué)生的信息技術(shù)基礎(chǔ)和技能較薄弱,我校是山區(qū)學(xué)校,信息技術(shù)在本地的教育中還是個薄弱環(huán)節(jié),許多初中學(xué)校開設(shè)了信息課,但由于信息技術(shù)教師的缺失或電腦設(shè)備的不足,所以很多學(xué)校的信息技術(shù)課都很少正常上課。
本學(xué)期的競賽輔導(dǎo)雖然圓滿完成,但是存在的問題也需要進一步解決,希望在下個學(xué)期的輔導(dǎo)工作中,能獲得學(xué)校的大力支持更新設(shè)備。另外,有針對性的加強部分學(xué)生的實踐操作,提供更多的素材,讓學(xué)生加強合作學(xué)習(xí),盡快提高設(shè)計能力和操作水平,積極參賽,為我校取得優(yōu)異成績作出貢獻。
擴展閱讀:信息技術(shù)競賽輔導(dǎo)
信息學(xué)奧林匹克競賽輔導(dǎo)
信息技術(shù)競賽輔導(dǎo)
計算機基礎(chǔ)知識
第一章計算機基礎(chǔ)常識第二章操作系統(tǒng)簡介第三章計算機網(wǎng)絡(luò)
第四章計算機信息安全基礎(chǔ)知識
Pascal語言
第一章開始編寫pascal語言程序第二章Pascal語言基礎(chǔ)知識第三章順序結(jié)構(gòu)程序設(shè)計第四章選擇結(jié)構(gòu)程序設(shè)計第五章循環(huán)結(jié)構(gòu)程序設(shè)計第六章數(shù)組與字符串第七章函數(shù)和過程第八章子界與枚舉類型第九章集合類型第十章記錄與文件類型第十一章指針第十二章程序調(diào)試
常用算法與策略
第一章算法的概念第二章遞歸第三章回溯第四章排序第五章查找第六章窮舉策略第七章貪心算法第八章分治策略
數(shù)據(jù)結(jié)構(gòu)
第一章什么是數(shù)據(jù)結(jié)構(gòu)第二章線性表第三章棧第四章隊第五章樹第六章圖
動態(tài)規(guī)劃
第一章什么叫動態(tài)規(guī)劃第二章用動態(tài)規(guī)劃解題第三章典型例題與習(xí)題
第1頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
第四章動態(tài)規(guī)劃的遞歸函數(shù)法第五章動態(tài)規(guī)劃分類1
數(shù)學(xué)知識及相關(guān)算法
第一章有關(guān)數(shù)論的算法第二章高精度計算第三章排列與組合第四章計算幾何
第五章其它數(shù)學(xué)知識及算法
圖論算法
第一章最小生成樹第二章最短路徑第三章拓?fù)渑判颍ˋOV網(wǎng))第四章關(guān)鍵路徑(AOE網(wǎng))第五章網(wǎng)絡(luò)流第六章圖匹配
搜索算法與優(yōu)化
第一章雙向廣度優(yōu)先搜索第二章分支定界法第三章A*算法
青少年信息學(xué)奧林匹克競賽情況簡介
信息學(xué)奧林匹克競賽是一項旨在推動計算機普及的學(xué)科競賽活動,重在培養(yǎng)學(xué)生能力,使得有潛質(zhì)有才華的學(xué)生在競賽活動中鍛煉和發(fā)展。近年來,信息學(xué)競賽活動組織逐步趨于規(guī)范和完善,基本上形成了“地級市省(直轄市)全國國際”四級相互接軌的競賽網(wǎng)絡(luò),F(xiàn)把有關(guān)賽事情況簡介如下:
全國青少年信息學(xué)(計算機)奧林匹克分區(qū)聯(lián)賽:
在舉辦1995年NOI活動之前,為了擴大普及的面,并考慮到多數(shù)省、直轄市、自治區(qū)已經(jīng)開展了多年省級競賽,舉辦了首屆全國青少年信息學(xué)(計算機)奧林匹克分區(qū)聯(lián)賽。考慮到不同年級學(xué)生的知識層次,也為了鼓勵更多的學(xué)生積極參與,競賽設(shè)提高組、普及組,并分初、復(fù)賽進行,這樣可以形成一個梯隊,確保每年的競賽活動有比較廣泛扎實的基礎(chǔ)。
從1995年起,至201*年共舉辦了七屆全國青少年信息學(xué)奧林匹克分區(qū)聯(lián)賽,每年舉辦一次,有選手個人獎項(省、國家級)、選手等級證書、優(yōu)秀參賽學(xué)校獎項。廣東省青少年信息學(xué)(計算機)奧林匹克決賽(簡稱GDOI):
省級信息學(xué)奧賽是一個水平較高的、有較大影響力的學(xué)科競賽。由各市組織代表隊參賽,參賽名額實行動態(tài)分配制度,每年舉辦一次。從1984年起廣東省奧林匹克競賽活動得到了蓬勃發(fā)展。獎項有個人一、二、三等獎,女選手第一、二、三名,獎勵學(xué)校團體總分1-8名、市團體總分1-8名。
全國青少年信息學(xué)(計算機)奧林匹克競賽(簡稱NOI):
第2頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
由中國算機學(xué)會主辦的、并與國際信息學(xué)奧林匹克接軌的一項全國性青少年學(xué)科競賽活動。1984年舉辦首屆全國計算機競賽。由各省市組織參賽,每年舉辦一次。獎項有個人一、二、三等獎,女選手第一、二、三名,各省隊團體總分名次排隊。國際青少年信息學(xué)(計算機)奧林匹克競賽(簡稱IOI):每年舉辦一次,由各參賽國家組隊參賽。
全國青少年信息學(xué)(計算機)奧林匹克分區(qū)聯(lián)賽競賽大綱
一、初賽內(nèi)容與要求:(#表示普及組不涉及,以下同)
計基*誕生與發(fā)展*特點*在現(xiàn)代社會中的應(yīng)用算本*計算機系統(tǒng)的基本組成機常*計算機的工作原理#*計算機中的數(shù)的表示的識*計算機信息安全基礎(chǔ)知識*計算機網(wǎng)絡(luò)計基*MSDOS與Windows的使用基礎(chǔ)算本*常用輸入/輸出設(shè)備的種類、功能、使用機操*漢字輸入/輸出方法的作*常用計算機屏示信息程序的表示*自然語言的描述*PASCAL或BASIC語言*簡單數(shù)據(jù)的類型數(shù)據(jù)結(jié)構(gòu)的類型程序設(shè)計基本知識程序設(shè)計*構(gòu)造類型:數(shù)組、字符串*了解基本數(shù)據(jù)結(jié)構(gòu)(線性表、隊列與棧)*結(jié)構(gòu)化程序的基本概念*閱讀理解程序的基本能力*具有完成下列過程的能力:現(xiàn)實世界(指知識范疇的問題)>信息世界(表達解法)>計算機世界(將解法用計算機能實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和算法描述出來)*簡單搜索*字串處理*排序*查找基本算法處理*統(tǒng)計*分類*合并*簡單的回溯算法*簡單的遞歸算法二、復(fù)賽內(nèi)容與要求:
在初賽的內(nèi)容上增加以下內(nèi)容(201*年修改稿):
第3頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
計算機*操作系統(tǒng)的使用知識軟件*編程語言的使用數(shù)據(jù)結(jié)構(gòu)*結(jié)構(gòu)類型中的記錄類型*指針類型*文件(提高組必須會使用文本文件輸入)*鏈表*樹*圖#程序設(shè)計算法處理*程序設(shè)計能力*設(shè)計測試數(shù)據(jù)的能力*運行時間和占用空間的估算能力#*排列組合的應(yīng)用*進一步加深回溯算法、遞歸算法*分治法*搜索算法:寬度、深度優(yōu)先算法*表達式處理:計算、展開、化簡等#*動態(tài)規(guī)劃#三、初賽試題類型:注:試題語言兩者選一
(程序設(shè)計語言:基本BASIC或TURBOPASCAL)*判斷*填空*完善程序*讀程序?qū)戇\行結(jié)果*問答四、推薦讀物:
*分區(qū)聯(lián)賽輔導(dǎo)叢書*學(xué)生計算機世界報及少年電世界雜志
第一節(jié)計算機的基本常識
1.1計算機的產(chǎn)生和發(fā)展1.2計算機的系統(tǒng)及工作原理1.3計算機中有關(guān)數(shù)、編碼的基本常識1.4原碼、反碼與補碼1.5邏輯運算1.1計算機的產(chǎn)生與發(fā)展
計算機的產(chǎn)生是20世紀(jì)最重要的科學(xué)技術(shù)大事件之一。世界上的第一臺計算機(ENIAC)于1946年誕生在美國賓夕法尼亞大學(xué),到目前為止,計算機的發(fā)展大致經(jīng)歷了四代:
第4頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
①第一代電子管計算機,始于1946年,結(jié)構(gòu)上以CPU為中心,使用計算機語言,速度慢,存儲量小,主要用于數(shù)值計算;
②第二代晶體管計算機,始于1958年,結(jié)構(gòu)上以存儲器為中心,使用高級語言,應(yīng)用范圍擴大到數(shù)據(jù)處理和工業(yè)控制;
③第三代中小規(guī)模集成電路計算機,始于1964年,結(jié)構(gòu)上仍以存儲器為中心,增加了多種外部設(shè)備,軟件得到了一定的發(fā)展,文字圖象處理功能加強;
④第四代大規(guī)模和超大規(guī)模集成電路計算機,始于1971年,應(yīng)用更廣泛,很多核心部件可集成在一個或多個芯片上,從而出現(xiàn)了微型計算機。
我國從1956年開始電子計算機的科研和教學(xué)工作,1983年研制成功1億/秒運算速度的“銀河”巨型計算機,1992年11月研制成功10億/秒運算速度的“銀河II”巨型計算機,1997年研制了每秒130億運算速度的“銀河III”巨型計算機。
目前計算機的發(fā)展向微型化和巨型化、多媒體化和網(wǎng)絡(luò)化方向發(fā)展。計算機的通信產(chǎn)業(yè)已經(jīng)成為新型的高科技產(chǎn)業(yè)。計算機網(wǎng)絡(luò)的出現(xiàn),改變了人們的工作方式、學(xué)習(xí)方式、思維方式和生活方式。
1.2計算機系統(tǒng)及工作原理1.計算機的系統(tǒng)組成
計算機系統(tǒng)由軟件和硬件兩部分組成。硬件即構(gòu)成計算機的電子元器件;軟件即程序和有關(guān)文檔資料。
(1)計算機的主要硬件
輸入設(shè)備:鍵盤、鼠標(biāo)、掃描儀等。輸出設(shè)備:顯示器、打印機、繪圖儀等。
中央處理器(CPU):包括控制器和運算器運算器,可以進行算術(shù)運算和邏輯運算;控制器是計算機的指揮系統(tǒng),它的操作過程是取指令分析指令執(zhí)行指令。存儲器:具有記憶功能的物理器件,用于存儲信息。存儲器分為內(nèi)存和外存①內(nèi)存是半導(dǎo)體存儲器(主存):
它分為只讀存儲器(ROM)和隨機存儲器(RAM)和高速緩沖存儲器(Cache);
ROM:只能讀,不能用普通方法寫入,通常由廠家生產(chǎn)時寫入,寫入后數(shù)據(jù)不容易丟失,也可以用特殊方法(如紫外線擦除(EPROM)或電擦除(EEPROM_)存儲器);RAM:可讀可寫,斷電后內(nèi)容全部丟失;
Cache:因為CPU讀寫RAM的時間需要等待,為了減少等待時間,在RAM和CPU間需要設(shè)置高速緩存Cache,斷電后其內(nèi)容丟失。
②外存:磁性存儲器軟盤和硬盤;光電存儲器光盤,它們可以作為永久存器;③存儲器的兩個重要技術(shù)指標(biāo):存取速度和存儲容量。內(nèi)存的存取速度最快(與CPU速度相匹配),軟盤存取速度最慢。存儲容量是指存儲的信息量,它用字節(jié)(Byte)作為基本單位,1字節(jié)用8位二進制數(shù)表示,1KB=1024B,1MB=1024KB,lGB=1024MB(2)計算機的軟件
計算機的軟件主要分為系統(tǒng)軟件和應(yīng)用軟件兩類:
第5頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
①系統(tǒng)軟件:為了使用和管理計算機的軟件,主要有操作系統(tǒng)軟件如,WINDOWS95/98/201*/NT4.0、DOS6.0、UNIX等;WINDOWS95/98/201*/NT4.0是多任務(wù)可視化圖形界面,而DOS是字符命令形式的單任務(wù)的操作系統(tǒng)。
②應(yīng)用軟件:為了某個應(yīng)用目的而編寫的軟件,主要有輔助教學(xué)軟件(CAI)、輔助設(shè)計軟件(CAD)、文字處理軟件、工具軟件以及其他的應(yīng)用軟件。2.計算機的工作原理
到目前為止,電子計算機的工作原理均采用馮.若依曼的存儲程序方式,即把程序存儲在計算機內(nèi),由計算機自動存取指令(計算機可執(zhí)行的命令=操作碼+操作數(shù))并執(zhí)行它。工作原理圖如下:
1.3計算機中有關(guān)數(shù)及編碼的知識1.計算機是智能化的電器設(shè)備
計算機就其本身來說是一個電器設(shè)備,為了能夠快速存儲、處理、傳遞信息,其內(nèi)部采用了大量的電子元件,在這些電子元件中,電路的通和斷、電壓高低,這兩種狀態(tài)最容易實現(xiàn),也最穩(wěn)定、也最容易實現(xiàn)對電路本身的控制。我們將計算機所能表示這樣的狀態(tài),用0,1來表示、即用二進制數(shù)表示計算機內(nèi)部的所有運算和操作。2.二進制數(shù)的運算法則
二進制數(shù)運算非常簡單,計算機很容易實現(xiàn),其主要法則是:0+0=00+1=11+0=11+1=00*0=00*1=01*0=01*1=1
由于運算簡單,電器元件容易實現(xiàn),所以計算機內(nèi)部都用二進制編碼進行數(shù)據(jù)的傳送和計算。3.十進制與二進制、八進制、十六進制數(shù)之間的相互轉(zhuǎn)換(1)數(shù)的進制與基數(shù)
計數(shù)的進制不同,則它們的基數(shù)也不相同,如表1-1所示。進制二進制八進制十六進制(2)數(shù)的權(quán)
不同進制的數(shù),基數(shù)不同,每位上代表的值的大。(quán))也不相同。
第6頁共277頁
基數(shù)0,10,1,2,3,4,5,6,70,1,2,...,9,A,B,C,D,E,F特點逢二進一逢八進一逢十六進一信息學(xué)奧林匹克競賽輔導(dǎo)
如:(219)10=2*10+1*10+9*10(11010)2=1*2+1*2+0*2+1*2+1*2(273)8=2*8+7*8+3*8
231043210210
(27AF)16=2*16+7*16+10*16+15*16
210
(3)十進制數(shù)轉(zhuǎn)換任意進制
1)將十進制整數(shù)除以所定的進制數(shù),取余逆序。(39)10=(100111)2(245)10=(365)8
2)將十進制小數(shù)的小數(shù)部分乘以進制數(shù)取整,作為轉(zhuǎn)換后的小數(shù)部分,直到為零或精確到小數(shù)點后幾位。
如:(0.35)10=(0.01011)2(0.125)10=(0.001)2(4)任意進制的數(shù)轉(zhuǎn)換十進制按權(quán)值展開:
如:(219)10=2*10+1*10+9*10
(11010)2=1*2+1*2+0*2+1*2+1*2=26
43210210(273)8=2*8+7*8+3*8=187
210(7AF)16=7*16+10*16+15*16=1867
210
4.定點數(shù)與浮點數(shù)
定點數(shù)是指數(shù)據(jù)中的小數(shù)點位置固定不變。由于它受到字長范圍的限制,所能表示的數(shù)的范圍有限,計算結(jié)果容易溢出。
浮點數(shù)的形式可寫成:N=M*2(其中M代表尾數(shù),E代表階碼)其形式如下:階碼尾數(shù)(包括符號位)E
5.ASCII編碼由于計算機是電器設(shè)備,計算機內(nèi)部用二進制數(shù),這樣對于從外部輸入給計算機的所有信息必須用二進制數(shù)表示,并且對于各種命令、字符等都需要轉(zhuǎn)換二進制數(shù),這樣就牽涉到信息符號轉(zhuǎn)換成二進制數(shù)所采用的編碼的問題,國際上統(tǒng)一用美國標(biāo)準(zhǔn)信息編碼(ASCII)它可用7位二進制數(shù)表示,存儲時用一個字節(jié),它的最高位為0。因此基本的ASCII字符集有128個如:0-9:48-57:00110000-...A-Z:65-90:01000001-...a-z:97-122:01100000-...
6.漢字編碼與漢字輸入法
第7頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
(1)機內(nèi)碼
ASCII碼不能表示漢字,因此要有漢字信息交換碼,我國國家標(biāo)準(zhǔn)是gb2312,它也被稱作國際碼。它由兩個字節(jié)組成,兩個字節(jié)的最高位都為1。gb2312共收納6763個漢字,其中,一級漢字(常用字)3755個按漢字拼音字母順序排列,二級漢字3008個按部首筆畫次序排列。(2)漢字輸入碼(外碼)
目前,漢字輸入法主要有鍵盤輸入、文字識別和語音識別。鍵盤輸入法是當(dāng)前漢字輸入的主要方法。它大體可以分為:
流水碼:如區(qū)位碼、電報碼、通信密碼,優(yōu)點重碼律少,缺點難于記憶;音碼:以漢語拼音為基準(zhǔn)輸入漢字,優(yōu)點是容易掌握,但重碼律高;形碼:根據(jù)漢字的字型進行編碼,優(yōu)點重碼少,但不容易掌握;
音形碼:將音碼和形碼結(jié)合起來,能減少重碼律同時提高漢字輸入速度。(3)漢字字模
供計算機輸出漢字(顯示和打。┯玫亩M制信息叫漢字字形信息也稱字模。通用漢字字模點陣規(guī)格有16*16,24*24,32*32,48*48,64*64,每個點在存儲器中用一個二進制位((bit)存儲,如一個16*16點陣漢字需要32個字節(jié)的存儲空間。1.4原碼、反碼與補碼
在計算機中,數(shù)據(jù)是以補碼的形式存儲的:
在n位的機器數(shù)中,最高位為符號位,該位為零表示為正,為1表示為負(fù);其余n-1位為數(shù)值位,各位的值可為0或1。當(dāng)真值為正時:原碼、反碼、補碼數(shù)值位完全相同;當(dāng)真值為負(fù)時:
原碼的數(shù)值位保持原樣,
反碼的數(shù)值位是原碼數(shù)值位的各位取反,補碼則是反碼的最低位加一。注意符號位不變。如:若機器數(shù)是16位:
十進制數(shù)17的原碼、反碼與補碼均為:0000000000010001
十進制數(shù)-17的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、11111111111011111.5邏輯運算1.邏輯運算邏輯與:同真則真邏輯或:有真就真邏輯非:你真我假邏輯異或:不同則真2.按位運算
按位與∩:同1則1如10010101∩10110111=10010101按位或∪:有1則1如10010101∪10110111=10110111
第8頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
3.邏輯化簡化簡定律:
(1)交換律:A+B=B+A,AB=BA
(2)結(jié)合律:(A+B)+C=A+(B+C),(AB)C=A(BC)(3)冪等律:AA=A,A+A=A
(4)吸收律:A(A+B)=A,A+(AB)=A
(5)分配律:A(B+C)=AB+AC,A+(BC)=(A+B)(A+C)(6)互補律:A+A=1,AA=0(7)非深入:A+B=AB,AB=A+B
(8)0-1律:A+0=A,A+1=1,A1=A,A0=0
例:化簡函數(shù)Q=AD+AD+AB+ACEF。這個函數(shù)有5個自變量,化簡過程如下:Q=AD+AD+AB+ACEF=A+AB+ACEF=A+ACEF=A
練習(xí):求證:(A+B)(A+C)=AB+AC
第二節(jié)操作系統(tǒng)
2.1DOS的組成2.2DOS文件和目錄2.3DOS命令2.4Windows簡介
2.1DOS(DiskOperatingSystem)的組成
MSDOS采用模塊結(jié)構(gòu),它由五部分組成:ROM中的BIOS模塊、IO.SYS模塊、MSDOS.SYS模塊、COMMAND.COM模塊和引導(dǎo)程序。
(1)BIOS模塊:在PC機主板上有一個ROM芯片,該芯片中存有系統(tǒng)自測試程序,CMOS設(shè)置程序和基本輸入輸出程序(BIOS)。BIOS是一組程序和參表,其中程序部份是可以通過中斷方式調(diào)用的一組驅(qū)動程序,參數(shù)給出外設(shè)的地址和參數(shù)。BIOS是計算機硬件和操作系統(tǒng)之間的接口通過它操作系統(tǒng)管理計算機硬件資源。
(2)IO.SYS模塊:IO.SYS是MSDOS和ROMBIOS之間的接口程序。它和RONBIOS一起完成系統(tǒng)設(shè)備的管理。
(3)MSDOS.SYS模塊:MSDOS.SYS用于實現(xiàn)文件管理,包括文件管理、目錄管理、內(nèi)存管理等功能。它以功能調(diào)用的形式實現(xiàn)用戶和MSDOS之間的程序級接口。
(4)COMMAND.COM模塊:COMMAND.COM的主要功能是負(fù)責(zé)接收、識別、解釋和執(zhí)行
第9頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
用戶從鍵盤輸入的MSDOS命令。
(5)引導(dǎo)程序:引導(dǎo)程序又叫“引導(dǎo)記錄”,其作用是檢查當(dāng)前盤上是否有兩個系統(tǒng)文件,若有系統(tǒng)文件則把DOS系統(tǒng)從磁盤裝人內(nèi)存。
一張系統(tǒng)盤上應(yīng)該包含有:引導(dǎo)記錄、IO.SYS、MSDOS.SYS和COMMAND.COM等模塊。2.2DOS的文件和目錄
1)文件概念:文件是指記錄在存儲介質(zhì)(如磁盤、光盤)上的一組相關(guān)信息的集合。2)文件標(biāo)識:驅(qū)動器號+路徑+文件名(1到8各字符)+擴展名(1到3個字符代表文件的類型)3)通配符:*代表從該位置起的一個或多個合法字符;?代表所在位置的任一個合法字符。4)樹形目錄:DOS采用樹形目錄結(jié)構(gòu)。由一個根目錄和若干層子目錄組成。這種目
錄結(jié)構(gòu)一是能夠解決文件重名問題,即不同的目錄可以包含相同的文件名或目錄名;二是能夠解決文件多而根目錄容量有限帶來的問題。在查找某個子目錄下的一個文件時,要使用目錄路徑。指定路徑有兩種方法:絕對路徑和相對路徑。絕對路徑是從根目錄開始到文件所在目錄的路徑。例如要查找UCDOS子目錄下的二級子目錄DATA下的README.TXT文件,絕對路徑為:\UCDOS\DATA。路徑中第一個“\”符號代表根目錄。相對路徑是從當(dāng)前目錄開始到文件所在目錄的路徑。當(dāng)前目錄指在不特意指定路徑情況下DOS命令所處理的目錄。例如系統(tǒng)提示符為:“C:\UCDOS\DATA>”,則DATA是當(dāng)前目錄。2.3DOS命令1.內(nèi)部命令
1)內(nèi)部命令:當(dāng)啟動DOS系統(tǒng)時,計算機引導(dǎo)程序?qū)⑾到y(tǒng)以及常用的命令處理模塊駐留在計算機的內(nèi)存中,我們稱之為內(nèi)部命令。2)常用的內(nèi)部命令:(1)目錄命令:DIR(顯示文件目錄)
MD、CD、RD(子目錄的建立、進入、刪除命令)(2)文件操作命令:
COPY(復(fù)制命令)、DEL(刪除命令)、REN(更改文件名)TYPE(顯示文本文件內(nèi)容)(3)其他內(nèi)部命令
DATA、TIME、VER、CLS等3.外部命令
1)外部命令:存儲在外存儲器上的DOS可執(zhí)行的文件,這些文件程序所占的存儲容量比較大,當(dāng)用戶使用外部命令時,計算機從外存調(diào)入內(nèi)存,當(dāng)執(zhí)行完外部命令,就自動從內(nèi)存中退出。
2)常用的外部命令
(1)磁盤格式化命令:FORMAT盤符[/S)I/V]
其作用,能夠清除原盤中所有信息,并將磁盤規(guī)范成計算機所能接受的格式,以便有效存儲信息。
(2)軟盤復(fù)制命令:DISKCOPY[盤符1:][盤符2:]
第10頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
其作用,能夠進行軟盤之間的全盤復(fù)制(以磁道方式),不僅可以復(fù)制系統(tǒng)文件而且可以復(fù)制隱含文件。2.4Windows簡介
Windows是一個多任務(wù)圖形用戶界面,該環(huán)境可以在基于MS-DOS的計算機上運行,在多任務(wù)圖形用戶環(huán)境下,Windows提供了一個基于下拉菜單、屏幕窗口和鼠標(biāo)的界面,在該環(huán)境下運行的應(yīng)用程序必須進行專門的設(shè)計才能發(fā)揮這些特征的優(yōu)點。2.Windows的特點
Windows能夠充分發(fā)揮計算機的作用,其圖形接口能夠組織用戶程序和文件、同時運行幾個用戶程序、在文檔之間移動和復(fù)制信息、在平臺上進行應(yīng)用程序的切換等。為了提高效率,Windows還提供了一些輔助程序,如字處理器、畫筆及其他標(biāo)準(zhǔn)應(yīng)用程序等。Windows具有以下主要特點。(1)圖形化的用戶界面
Windows提供了一種不同于DOS系統(tǒng)下命令行的工作方式,它通過對窗口、圖標(biāo)、選單、對話框、命令按鈕、滾動框等圖形符號與畫面的操作來實現(xiàn)對計算機的各種操作。(2)標(biāo)準(zhǔn)化的操作界面
在Windows中,所有的操作都是通過窗口中的圖形界面進行的。(3)多任務(wù)機制和執(zhí)行性能
在Windows中,平穩(wěn)的多任務(wù)機制可以同時運行多道程序以及執(zhí)行多項任務(wù),各程序與各任務(wù)之間不僅轉(zhuǎn)換容易,而且還可以方便地交換數(shù)據(jù)。(4)充分利用內(nèi)存
Winddws利用虛擬內(nèi)存技術(shù),允許應(yīng)用程序超過640陽常規(guī)內(nèi)存的運行空間,從而最大限度地利用了計算機系統(tǒng)的所有內(nèi)存資源,從而使內(nèi)存較小的微機也能運行大型的應(yīng)用程序。(5)強大的聯(lián)網(wǎng)功能
在Windows中,可以簡單直觀地實現(xiàn)網(wǎng)絡(luò)的安裝、配置、瀏覽,從而可以更加方便地實現(xiàn)網(wǎng)絡(luò)管理和資源共享。(6)豐富的多媒體功能
Windows提供大量輔助程序,用以實現(xiàn)文字、圖形、圖像、聲音、視頻等多媒體功能,同時還支持其他廠商基于Windows標(biāo)準(zhǔn)開發(fā)的各種相應(yīng)軟件。(7)TryType技術(shù)
TryType(真實字體)屬于內(nèi)建式比例字體,可以任意平滑放大與縮小。這種字體能使屏幕上顯示的效果與實際打印機輸出的信息完全一致,這就是所謂的“所見即所得”。[例4]在Windows95中,“任務(wù)欄”的作用是____。A)顯示系統(tǒng)的所有功能B)只顯示當(dāng)前活動窗口名C)只顯示正在后臺工作的窗口名D)實現(xiàn)窗口之間的切換解答:在任務(wù)欄中,顯示了所有打開的程序的圖標(biāo)。本題正確答案為D。
第三節(jié)計算機網(wǎng)絡(luò)常識
第11頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
3.1網(wǎng)絡(luò)基礎(chǔ)知識3.2Internet簡介3.1網(wǎng)絡(luò)基礎(chǔ)知識1.網(wǎng)絡(luò)的概念
計算機網(wǎng)絡(luò)是將地理位置不同的計算機,用通信鏈路連接起來,共同遵守一定的協(xié)議,以實現(xiàn)計算機軟硬件資源共享為目標(biāo)的通信系統(tǒng)。2.網(wǎng)絡(luò)的組成
計算機網(wǎng)絡(luò)由網(wǎng)絡(luò)硬件和網(wǎng)絡(luò)軟件組成。
網(wǎng)絡(luò)軟件包括網(wǎng)絡(luò)操作系統(tǒng)、通信軟件、通信協(xié)議(計算機之間實現(xiàn)數(shù)據(jù)通信共同遵守的相關(guān)規(guī)定)。
網(wǎng)絡(luò)硬件包括網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)工作站、傳輸介質(zhì)和設(shè)備。3.網(wǎng)絡(luò)的分類(1)按通信距離分:
局域網(wǎng)(LAN):局限于某個范圍(10公里左右)的網(wǎng)絡(luò)連接情(校園網(wǎng))。廣域網(wǎng)(WAN):跨地區(qū)的局域網(wǎng),Internet是覆蓋全球的廣域網(wǎng)。(2)按網(wǎng)絡(luò)的使用目的分:
共享資源網(wǎng):使用者可分享網(wǎng)絡(luò)的各種資源(如Internet)。數(shù)據(jù)處理網(wǎng):用于數(shù)據(jù)處理(企業(yè)經(jīng)營管理用的網(wǎng)絡(luò))。數(shù)據(jù)傳輸網(wǎng):用于數(shù)據(jù)的收集、交換和傳輸(情報檢索網(wǎng)絡(luò))。(3)按網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)分:
星形網(wǎng):以一臺計算機為中心,以放射狀連接若干臺計算機。
環(huán)形網(wǎng):傳輸線路構(gòu)成一個封閉的環(huán),入網(wǎng)的計算機連到這個環(huán)形線路上?偩網(wǎng):用一條通信線路作主干,入網(wǎng)的計算機通過相應(yīng)接口連到線路上。4.開放系統(tǒng)互聯(lián)模型(OSI模型)OSI模型分7層:
各層功能如下:1.物理層
物理層與移動二進制數(shù)和維護物理連接有關(guān)。
第12頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
2.?dāng)?shù)據(jù)鏈路層
數(shù)據(jù)鏈路層通過幀在一個給定的物理鏈路傳輸分組(報文),保持幀的有序以及發(fā)現(xiàn)檢測到的各種錯誤,包括傳輸錯誤,但是數(shù)據(jù)鏈路層只了解在鏈路另一端的對等實體。數(shù)據(jù)鏈路層的地址是為了將網(wǎng)絡(luò)中一點的數(shù)據(jù)幀送到另一點。3.網(wǎng)絡(luò)層
網(wǎng)絡(luò)層知道每個數(shù)據(jù)鏈路的對等進程,并負(fù)責(zé)在鏈路間移動分組,把它送到目的地。網(wǎng)絡(luò)層地址是為了把單一分組從網(wǎng)絡(luò)的一端送到目的地。4.傳輸層
傳輸層注意的是整個網(wǎng)絡(luò),該層是第一個端到端層。其對等實體位于分組的最終目的地。傳輸層依靠網(wǎng)絡(luò)層經(jīng)過中間節(jié)點移動分組。傳輸層地址是為了把網(wǎng)絡(luò)一端進程的完整信息送到最終目的地的對等進程。
5-7.會話層、表示層和應(yīng)用層提供了如下功能:處理計算機間數(shù)據(jù)表示的差別。
確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸中不被竊取和泄露,并且確保網(wǎng)絡(luò)不允許未經(jīng)授權(quán)就訪問數(shù)據(jù)。最高效地使用網(wǎng)絡(luò)資源通過應(yīng)用程序及活動同步來管理對話和活動。在網(wǎng)絡(luò)節(jié)點間共享數(shù)據(jù)。3.2Internet簡介
Internet英文直譯為“互聯(lián)網(wǎng)”,中文名為“因特網(wǎng)”。是世界上眾多計算機網(wǎng)絡(luò)的集合起源于20世紀(jì)80年代。
1.Internet的IP地址、IP地址類型和主機域名
(1)在Internet網(wǎng)上采用統(tǒng)一的網(wǎng)絡(luò)協(xié)議TCP/IP,與Internet相連的計算機必須具有唯一的主機地址,稱IP地址。IP地址采用分段地址方式,使用數(shù)字表示;如:207.46.130.14,其中由三個點隔開的四個數(shù)是十進制,其大小是0-255,每個數(shù)對應(yīng)一個8位二進制數(shù),所以IP地址用32位二進制位存放站4個字節(jié)。
(2)IP地址類型:最初設(shè)計互聯(lián)網(wǎng)絡(luò)時,為了便于尋址以及層次化構(gòu)造網(wǎng)絡(luò),每個IP地址包括兩個標(biāo)識碼(ID),即網(wǎng)絡(luò)ID和主機ID。同一個物理網(wǎng)絡(luò)上的所有主機都使用同一個網(wǎng)絡(luò)ID,網(wǎng)絡(luò)上的一個主機(包括網(wǎng)絡(luò)上工作站,服務(wù)器和路由器等)有一個主機ID與其對應(yīng)。IP地址根據(jù)網(wǎng)絡(luò)ID的不同分為5種類型,A類地址、B類地址、C類地址、D類地址和E類地址。A類IP地址
一個A類IP地址由1字節(jié)的網(wǎng)絡(luò)地址和3字節(jié)主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“0”,地址范圍從1.0.0.0到126.0.0.0。可用的A類網(wǎng)絡(luò)有126個,每個網(wǎng)絡(luò)能容納1億多個主機。B類IP地址
一個B類IP地址由2個字節(jié)的網(wǎng)絡(luò)地址和2個字節(jié)的主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”,地址范圍從128.0.0.0到191.255.255.255?捎玫腂類網(wǎng)絡(luò)有16382個,每個網(wǎng)絡(luò)能容納6萬多個主機。C類IP地址
一個C類IP地址由3字節(jié)的網(wǎng)絡(luò)地址和1字節(jié)的主機地址組成,網(wǎng)絡(luò)地址的最高位必須是
第13頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
“110”。范圍從192.0.0.0到223.255.255.255。C類網(wǎng)絡(luò)可達209萬余個,每個網(wǎng)絡(luò)能容納254個主機。
D類地址用于多點廣播(Multicast)。
D類IP地址第一個字節(jié)以“l(fā)ll0”開始,它是一個專門保留的地址。它并不指向特定的網(wǎng)絡(luò),目前這一類地址被用在多點廣播(Multicast)中。多點廣播地址用來一次尋址一組計算機,它標(biāo)識共享同一協(xié)議的一組計算機。E類IP地址
以“l(fā)lll0”開始,為將來使用保留。
全零(“0.0.0.0”)地址對應(yīng)于當(dāng)前主機。全“1”的IP地址(“255.255.255.255”)是當(dāng)前子網(wǎng)的廣播地址。
在IP地址3種主要類型里,各保留了3個區(qū)域作為私有地址,其地址范圍如下:A類地址:10.0.0.0~10.255.255.255B類地址:172.16.0.0~172.31.255.255C類地址:192.168.0.0~192.168.255.255
(3)為了使用方便,在訪問Internet上的主機時,通常使用主機域名而不是IP地址,但主機域名和IP地址一一對應(yīng),它由圓點分隔的一序列單詞組成如“Public.bta.net.cn"。IP地址如同電腦的身份證號碼,而域名相當(dāng)電腦的姓名。
2.Internet的功能
(1)信息瀏覽(WWW)
WWW(WorldWideWeb),中文名為”萬維網(wǎng)“,是基于超文本的、方便用戶信息瀏覽和信息搜索的信息服務(wù)系統(tǒng)。用戶在瀏覽器中輸入網(wǎng)址即可得到需要的信息。人們常用的瀏覽器有網(wǎng)景公司的Netscape瀏覽器和Microsoft公司的InternetExplorer瀏覽器。網(wǎng)址的輸入是使用協(xié)議提供的服務(wù)+服務(wù)器地址(IP地址或主機域名)如http://198.105.232.1;ftp://zsqz.com(2)文件傳輸(FTP)
FTP(FileTransferProtocol)是Internet的一種標(biāo)準(zhǔn)協(xié)議,這一協(xié)議使用戶能在聯(lián)網(wǎng)的計算機之間傳送文件如上載(UPLOAD把本地計算機上地文件復(fù)制到遠(yuǎn)程計算機上)和下載(DOWNLOAD把遠(yuǎn)程計算機上的文件復(fù)制到本地計算機上)。(3)傳送電子郵件(E-mail)
電子郵件地址=用戶名+@+主機域名;如:zhangming@yahoo.com(4)電子公告牌(BBS)(5)遠(yuǎn)程登錄(telnet)(6)電子商務(wù)等3.TCP/IP參考模型
TCP/IP協(xié)議的開發(fā)研制人員將Internet分為五個層次,以便于理解,它也稱為互聯(lián)網(wǎng)分層模型或互聯(lián)網(wǎng)分層參考模型,如下表:應(yīng)用層(第五層)傳輸層(第四層)互聯(lián)網(wǎng)層(第三層)
第14頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
網(wǎng)絡(luò)接口層(第二層)物理層(第一層)各層簡要說明如下:
物理層:對應(yīng)于網(wǎng)絡(luò)的基本硬件,這也是Internet物理構(gòu)成,即我們可以看得見的硬件設(shè)備,如PC機、互連網(wǎng)服務(wù)器、網(wǎng)絡(luò)設(shè)備等,必須對這些硬件設(shè)備的電氣特性作一個規(guī)范,使這些設(shè)備都能夠互相連接并兼容使用。
網(wǎng)絡(luò)接口層:它定義了將數(shù)據(jù)組成正確幀的規(guī)程和在網(wǎng)絡(luò)中傳輸幀的規(guī)程,幀是指一串?dāng)?shù)據(jù),它是數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)膯挝弧?/p>
互聯(lián)網(wǎng)層:本層定義了互聯(lián)網(wǎng)中傳輸?shù)摹靶畔备袷,以及從一個用戶通過一個或多個路由器到最終目標(biāo)的""信息包""轉(zhuǎn)發(fā)機制。
傳輸層:為兩個用戶進程之間建立、管理和拆除可靠而又有效的端到端連接。應(yīng)用層:它定義了應(yīng)用程序使用互聯(lián)網(wǎng)的規(guī)程。
第四節(jié)計算機信息安全基礎(chǔ)知識
4.1計算機網(wǎng)絡(luò)安全4.2計算機病毒4.1計算機的網(wǎng)絡(luò)安全
1、不同環(huán)境和應(yīng)用中的網(wǎng)絡(luò)安全
運行系統(tǒng)安全,即保證信息處理和傳輸系統(tǒng)的安全。它側(cè)重于保證系統(tǒng)正常運行,避免因為系統(tǒng)的崩潰和損壞而對系統(tǒng)存貯、處理和傳輸?shù)男畔⒃斐善茐暮蛽p失,避免由于電磁泄漏,產(chǎn)生信息泄露,干擾他人,受他人干擾。
網(wǎng)絡(luò)上系統(tǒng)信息的安全。包括用戶口令鑒別,用戶存取權(quán)限控制,數(shù)據(jù)存取權(quán)限、方式控制,安全審計,安全問題跟蹤,計算機病毒防治,數(shù)據(jù)加密。
網(wǎng)絡(luò)上信息傳播安全,即信息傳播后果的安全。包括信息過濾等。它側(cè)重于防止和控制非法、有害的信息進行傳播后的后果。避免公用網(wǎng)絡(luò)上大量自由傳輸?shù)男畔⑹Э亍?/p>
網(wǎng)絡(luò)上信息內(nèi)容的安全。它側(cè)重于保護信息的保密性、真實性和完整性。避免攻擊者利用系統(tǒng)的安全漏洞進行竊聽、冒充、詐騙等有損于合法用戶的行為。本質(zhì)上是保護用戶的利益和隱私。
網(wǎng)絡(luò)安全的特征
2、網(wǎng)絡(luò)安全應(yīng)具有以下四個方面的特征:
保密性:信息不泄露給非授權(quán)用戶、實體或過程,或供其利用的特性。
完整性:數(shù)據(jù)未經(jīng)授權(quán)不能進行改變的特性。即信息在存儲或傳輸過程中保持不被修改、不被破壞和丟失的特性。
可用性:可被授權(quán)實體訪問并按需求使用的特性。即當(dāng)需要時能否存取所需的信息。例如網(wǎng)絡(luò)環(huán)境下拒絕服務(wù)、破壞網(wǎng)絡(luò)和有關(guān)系統(tǒng)的正常運行等都屬于對可用性的攻擊;可控性:對信息的傳播及內(nèi)容具有控制能力。3、主要的網(wǎng)絡(luò)安全威脅
第15頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
自然災(zāi)害、意外事故;計算機犯罪;
人為行為,比如使用不當(dāng),安全意識差等;
“黑客”行為:由于黑客的入侵或侵?jǐn)_,比如非法訪問、拒絕服務(wù)計算機病毒、非法連接等;
內(nèi)部泄密;外部泄密;信息丟失;
電子諜報,比如信息流量分析、信息竊取等;信息戰(zhàn);
網(wǎng)絡(luò)協(xié)議中的缺陷,例如TCP/IP協(xié)議的安全問題等等。4、黑客常用的信息收集工具
信息收集是突破網(wǎng)絡(luò)系統(tǒng)的第一步。黑客可以使用下面幾種工具來收集所需信息:SNMP協(xié)議,用來查閱非安全路由器的路由表,從而了解目標(biāo)機構(gòu)網(wǎng)絡(luò)拓?fù)涞膬?nèi)部細(xì)節(jié)。TraceRoute程序,得出到達目標(biāo)主機所經(jīng)過的網(wǎng)絡(luò)數(shù)和路由器數(shù)。
Whois協(xié)議,它是一種信息服務(wù),能夠提供有關(guān)所有DNS域和負(fù)責(zé)各個域的系統(tǒng)管理員數(shù)據(jù)。(不過這些數(shù)據(jù)常常是過時的)。
DNS服務(wù)器,可以訪問主機的IP地址表和它們對應(yīng)的主機名。
Finger協(xié)議,能夠提供特定主機上用戶們的詳細(xì)信息(注冊名、電話號碼、最后一次注冊的時間等)。
Ping實用程序,可以用來確定一個指定的主機的位置并確定其是否可達。把這個簡單的工具用在掃描程序中,可以Ping網(wǎng)絡(luò)上每個可能的主機地址,從而可以構(gòu)造出實際駐留在網(wǎng)絡(luò)上的主機清單。4.2計算機病毒
計算機病毒是一種程序,是人為設(shè)計的具有破壞性的程序。
計算機病毒具有破壞性、傳播性、可激發(fā)性、潛伏性、隱蔽性等特點。3.病毒的分類
(1)按病毒設(shè)計者的意圖和破壞性大小,可將計算機病毒分為良性病毒和惡性病毒。①良性病毒:這種病毒的目的不是為了破壞計算機系統(tǒng),而只是為了編制者表現(xiàn)自己。此類病毒破壞性較小,只是造成系統(tǒng)運行速度降低,干擾用戶正常工作。
②惡性病毒:這類病毒的目的是人為的破壞計算機系統(tǒng)的數(shù)據(jù)。具有明顯破壞目標(biāo),其破壞和危害性都很大,可能刪除文件或?qū)τ脖P進行非法的格式化。(2)計算機病毒按照寄生方式可以分為下列四類:
①源碼病毒:在源程序被編譯之前,就插入到用高級語言編寫的源程序當(dāng)中。編寫這種病毒程序較困難。但是,一旦插入,其破壞性和危害性都很大。
②入侵病毒:是把病毒程序的一部分插入到主程序中。這種病毒程序也難編寫,一旦入侵,難以清除。
②操作系統(tǒng)病毒:是把病毒程序加入或替代部分操作系統(tǒng)進行工作的病毒。這種病毒攻擊力強、常見、破壞性和危害性最大。
第16頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
④外殼病毒:是把病毒程序置放在主程序周圍,一般不修改源程序的一種病毒。它大多是感染DOS下的可執(zhí)行程序。這種病毒占一半以上,易編制,也易于檢測和消除。在日常維護中應(yīng)隔離計算機病毒的來源,經(jīng)常要用殺毒軟件檢查計算機系統(tǒng)和存儲器。例設(shè)一張軟盤已染上病毒,能清除病毒的措施是____。A)刪除該軟盤上的所有文件B)格式化該軟盤
C)刪除該軟盤上的所有可執(zhí)行文件D)刪除該軟盤上的所有批處理文件
解答:軟盤染毒后,病毒隱藏在磁盤內(nèi)部,并感染磁盤上的文件,而且可能通過磁盤的使用進而擴散到其他磁盤,造成更大的破壞。為了清除病毒,必須格式化軟盤,從而徹底清除染毒文件和病毒本身。本題正確答案為B。
Pascal語言概述與預(yù)備知識
關(guān)于PascalPascal的啟動
1、關(guān)于TurboPascal
Pascal是一種計算機通用的高級程序設(shè)計語言。它由瑞士NiklausWirth教授于六十年代末設(shè)計并創(chuàng)立。
以法國數(shù)學(xué)家命名的Pascal語言現(xiàn)已成為使用最廣泛的基于DOS的語言之一,其主要特點有:嚴(yán)格的結(jié)構(gòu)化形式;豐富完備的數(shù)據(jù)類型;運行效率高;查錯能力強。
正因為上述特點,Pascal語言可以被方便地用于描述各種算法與數(shù)據(jù)結(jié)構(gòu)。尤其是對于程序設(shè)計的初學(xué)者,Pascal語言有益于培養(yǎng)良好的程序設(shè)計風(fēng)格和習(xí)慣。IOI(國際奧林匹克信息學(xué)競賽)把Pascal語言作為三種程序設(shè)計語言之一,NOI(全國奧林匹克信息學(xué)競賽)把Pascal語言定為唯一提倡的程序設(shè)計語言,在大學(xué)中Pascal語言也常常被用作學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的教學(xué)語言。
在Pascal問世以來的三十余年間,先后產(chǎn)生了適合于不同機型的各種各樣版本。其中影響最大的莫過于TurboPascal系列軟件。它是由美國Borland公司設(shè)計、研制的一種適用于微機的Pascal編譯系統(tǒng)。該編譯系統(tǒng)由1983年推出1.0版本發(fā)展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。下面列出TurboPascal的編年史:年代版本名稱1983TurboPascal1.0主要特色提高實數(shù)運算速度并擴大值域增加圖形功能第17頁共277頁
TurboPascal2.0Turbo-87Pascal1985TurboPascal3.信息學(xué)奧林匹克競賽輔導(dǎo)TurboBCDPascal特別適合應(yīng)用于商業(yè)提供集成開發(fā)環(huán)境(IDE),引入單元概念增加調(diào)試功能支持面向?qū)ο蟮某绦蛟O(shè)計(OPP)提供面向?qū)ο蟮膽?yīng)用框架和庫(TurboVision)面向?qū)ο蟮膽?yīng)用系統(tǒng)、更完善的IDETurboVision2.0開發(fā)ObjectWindows庫提供對OLE多媒體應(yīng)用開發(fā)的支持VisualPascal1987TurboPascal4.01988TurboPascal5.01989TurboPascal5.51990TurboPascal6.01992TurboPascal7.01993BorlandPascal7.0(ForWindows)1995Delphi
TurboPascal語言是編譯型程序語言,它提供了一個集成環(huán)境的工作系統(tǒng),集編輯、編譯、運行、調(diào)試等多功能于一體。2.Pascal的啟動Pascal的啟動
a.DOS下的啟動(適用于MS-DOS6.22之前的版本或Win9X&Win201*的CommandMode)DOS環(huán)境,在裝有TurboPascal的文件目錄下,鍵入turbo即可進入TurboPascal集成環(huán)境。
b.Win9X或Win201*模式下的啟動(適用于TurboPascal3.0以后的版本)
如果在Win9X或Win201*的“資源管理器”裝有TurboPascal的目錄中,雙擊turbo.exe或在“開始--程序”菜單中通過MS-DOS方式來運行turbo.exe,它會提示你“該程序設(shè)置為MS-DOS方式下運行,并且其它程序運行時,無法運行它。如果選擇繼續(xù)所有其它程序?qū)㈥P(guān)閉”,所以在Win9X或Win201*下無法直接運行它,這時你可以在你希望的地方(比如說桌面上)單擊鼠標(biāo)右鍵“新建--快捷方式”,單擊“瀏覽”,找到turbo.exed選中,然后單擊“打開”,再單擊“下一步”,再單擊完成;這還沒完,選中前面新建的快捷方式(應(yīng)該叫TurboPascal吧),單擊右鍵,單擊“屬性”,選擇“程序”,然后再單擊“高級”,把“MS-DOS方式”前面的那個勾去掉,也就是不要選“MS-DOS方式”,然后單擊“確定”,再單擊“確定”就大功告成了,以后你運行TurboPascal的時候,只要雙擊那個你建立起的快捷方式就可以直接在Win9X或Win201*下運行TurboPascal。
第一章開始編寫pascal語言程序
1.1Pascal編輯環(huán)境
1.2簡單的Pascal程序的結(jié)構(gòu)1.3完整的的Pascal程序結(jié)構(gòu)
第18頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
1.1Pascal編輯環(huán)境
1.下載TurboPascal6.0(1)下載turbopascal(2)屬性設(shè)置
2.TurboPascal6.0環(huán)境介紹
(1)進入與退出(注意:退出時必須使用文件菜單中的退出命令或Alt+X)(2)編輯程序
光標(biāo)移動鍵的使用
Backspace鍵:刪除光標(biāo)前一個字符Ctrl+N:在光標(biāo)前插入一行Ctrl+Y:刪除光標(biāo)所在行Home:光標(biāo)移到行首End:光標(biāo)移到行尾
PageUp/PageDown:上下翻頁Insert:插入與改寫狀態(tài)切換(3)編譯程序(Compile):Alt+F9(4)運行程序(Run):Ctrl+F9(5)保存程序(Save):F2(6)打開原有的程序:F3(7)查看程序運行結(jié)果:Alt+F5(8)調(diào)試時增加觀察項:Ctrl+F7
1.2簡單Pascal程序的結(jié)構(gòu)例1下列是一Pascal源程序:
programlt1;{程序首部}
var{說明部分}a,b:integer;sum:integer;
begin{執(zhí)行部分}a:=3355;b:=789;sum:=a+b;
writeln("sum=",sum);end.
1.3完整的Pascal程序結(jié)構(gòu)一個完全的Pascal程序結(jié)構(gòu)
第19頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
program程序名;
uses已知單元說明;label標(biāo)號說明;const常量說明;type類型說明;var變量說明;function函數(shù)說明;procedure過程說明;begin語句;語句;語句;end.作業(yè):
1.熟悉Pascal編輯環(huán)境.2.記住快捷鍵的使用.
3.編寫78*67的值的Pascal程序并運行.
第二章Pascal語言基礎(chǔ)知識
2.1Pascal的字符與符號2.2Pascal數(shù)據(jù)類型2.3常量與變量2.4標(biāo)準(zhǔn)函數(shù)2.5運算符和表達式練習(xí)與作業(yè)2.1Pascal字符與符號
1.標(biāo)識符
(1)標(biāo)識符的定義:標(biāo)識符就是以字母開頭的字母數(shù)字序列,有效長度為63個字符,并且大小寫等效。可以用來標(biāo)示常量、變量、程序、函數(shù)等。例如例1.1中的Area(程序名),pi(符號常量),s、r(變量名)都是標(biāo)識符。(2)標(biāo)識符的分類:a.保留字(關(guān)鍵字)
所謂保留字是指在Pascal語言中具有特定的含義,你必須了解它的含義,以便于正確的
第20頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
使用,否則會造成錯誤。標(biāo)準(zhǔn)Pascal語言中的保留字一共有35個,TurboPascal語言一共有51個。下面是Pascal語言的保留字:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,F(xiàn)ILE,F(xiàn)OR,F(xiàn)UNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH等
b.標(biāo)準(zhǔn)標(biāo)識符:指Pascal語言預(yù)先定義的標(biāo)識符,具有特殊含義。以下列舉了TurboPascal語言部分常用的標(biāo)準(zhǔn)表識符:標(biāo)準(zhǔn)常量FalseMaxintTrue
標(biāo)準(zhǔn)類型BooleanCharRealInteger
標(biāo)準(zhǔn)函數(shù)AbsArctanChrCosEofEolnExpLnOddOrdPredRoundSinSqrSqrtSuccTrunc
標(biāo)準(zhǔn)過程DisposeGetNewPackPagePutReadReadlnResetRewriteUnpackWriteWriteln標(biāo)準(zhǔn)文件InputOutput
c.用戶自定義標(biāo)識符:由你自己根據(jù)需要來定義。(1)選用的標(biāo)識符不能和保留字相同。
(2)語法上允許預(yù)定義的標(biāo)準(zhǔn)標(biāo)識符作為你自己定義的標(biāo)識符使用,但最好還是不要用。以下列舉了你自己在定義標(biāo)識符時可以用的字符:
AZ;az;09;+,-,*,/,=,,=,,(,),[,],{,},:=,,,;,.,:,..,",^
2.2Pascal數(shù)據(jù)類型
數(shù)據(jù)是程序設(shè)計的一個重要內(nèi)容,其重要特征----數(shù)據(jù)類型,確定了該數(shù)據(jù)的形、取值范圍以及所能參與的運算。
TurboPascal提供了豐富的數(shù)據(jù)類型,這些數(shù)據(jù)類型可以分為三大類:簡單類型、構(gòu)造類型和指針類型,其中簡單類型可以分為標(biāo)準(zhǔn)類型(整型、實型、字符型和布爾型)和自定義類型(枚舉型和子界型),構(gòu)造類型可以分為數(shù)組類型、集合類型、記錄類型和文件類型。這些數(shù)據(jù)類型中除了指針類型是動態(tài)數(shù)據(jù)類型外,其他的都是靜態(tài)數(shù)據(jù)類型。在這些數(shù)據(jù)類型中的簡單類型都是有序類型,除了實型以外的簡單類型都是順序類型,所謂順序類型就是他們的值不僅是有序的而且是有順序號。
在這里主要介紹整型、實型、字符型和布爾型四種常用的數(shù)據(jù)類型。1.整型
一個整型數(shù)據(jù)用來存放整數(shù)。TurboPascal支持五種預(yù)定義整型,它們是shortint(短整型)、integer(整型)、longint(長整型)、byte(字節(jié)型)和word(字類型),TurboPascal分別用相同的名字作為他們的標(biāo)識符。每一種類型規(guī)定了相應(yīng)的整數(shù)取值范圍以及所占用的內(nèi)存字節(jié)數(shù)。
類型數(shù)值范圍占字節(jié)數(shù)格式
第21頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
shortint-128..1281帶符號8位inteter-32768..327672帶符號16位longint-2147483648..21474836474帶符號32位byte0..2551帶符號8位word0..655352帶符號16位
TurboPascal規(guī)定了兩個預(yù)定義整型常量標(biāo)識符maxint和maxlonint,他們各表示確定的常數(shù)值,maxint為32767,longint為2147483647,他們的類型分別是integer和longint2.實型
一個實型數(shù)據(jù)用來存放實數(shù)。TurboPascal支持五種預(yù)定義實型,它們是real(基本實型)、single(但精度實型)、double(雙精度實型)、extended(擴展實型)、comp(裝配實型),TurboPascal分別用相同的名字作為他們的標(biāo)識符。每一種類型規(guī)定了相應(yīng)的實數(shù)取值范圍、所占用的內(nèi)存字節(jié)數(shù)以及它們所能達到的精度類型數(shù)值范圍占字節(jié)數(shù)有效位數(shù)real2.9e-39..1.7e38611..12single1.5e-45..3.4e3847..8double5.0e-324..1.7e308815..16
TurboPascal支持兩種用于執(zhí)行實型運算的代碼生成模式:軟件仿真模式和80x87浮點模式。除了real可以在軟件仿真模式下直接運行以外,其他類型必須在80x87浮點模式下運行。3.布爾型
一個布爾型數(shù)據(jù)用來存放邏輯值(布爾值)。布爾型的值只有兩個:false和true,并且false的序號是0,true的序號是1。false和true都是預(yù)定義常數(shù)標(biāo)識符,分別表示邏輯假和邏輯真。并且true信息學(xué)奧林匹克競賽輔導(dǎo)
(4)TurboPascal類型常量
類型常量,又稱變量常數(shù),它是TurboPascal的一個擴充特性。類型常量的定義與標(biāo)準(zhǔn)Pascal規(guī)定的常數(shù)定義和變量說明有所區(qū)別。類型常量定義的語法格式:const
:簡單類型=常數(shù);例如:const
counter:integer=0;flag:boolean=true;index:0..100=0;2.變量
(1)變量:在某個程序中的運行過程中其值可以發(fā)生改變的量(2)變量說明:變量說明出現(xiàn)在說明部分。它的語法格式是:var
:;...
:;其中,保留字var表示開始一個變量說明部分。變量標(biāo)識符列表是一個用逗號隔開的標(biāo)識符序列,冒號后面的類型是類型標(biāo)識符。每個變量說明均以分號結(jié)束。例如:var
a,b,c:integer;m,n:real;2.4標(biāo)準(zhǔn)函數(shù)1.算術(shù)函數(shù)
函數(shù)標(biāo)識符自變量類型意義結(jié)果類型abs整型、實型絕對值同自變量arctan整型、實型反正切實型cos整型、實型余弦實型exp整型、實型指數(shù)實型frac整型、實型小數(shù)部分實型int整型、實型整數(shù)部分實型ln整型、實型自然對數(shù)實型pi無自變量圓周率實型sin整型、實型正弦實型sqr整型、實型平方同自變量sqrt整型、實型平方根實型
第23頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
例:abs(-4)=4abs(-7.49)=7.49arctan(0)=0.0sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71int(-3.71)=-3.0sqr(4)=16sqrt(4)=22.標(biāo)準(zhǔn)函數(shù)
函數(shù)標(biāo)識符自變量類型意義結(jié)果類型odd整型判斷奇數(shù)布爾型pred離散類型求前趨同自變量succ離散類型求后繼同自變量例:odd(1000)=falsepred(201*)=1999succ(201*)=201*odd(3)=truepred("x")="wsucc("x")="y"3.轉(zhuǎn)換函數(shù)
函數(shù)標(biāo)識符自變量類型意義結(jié)果類型chrbyte自變量對應(yīng)的字符字符型ord離散類型自變量對應(yīng)的序號longintround實型四舍五入longinttrunc實型截斷取整longint
例:chr(66)="B"ord("A")=65round(-4.3)=-5trunc(2.88)=24.雜類函數(shù)
函數(shù)標(biāo)識符自變量類型意義結(jié)果類型random無自變量[0,1間的隨機實數(shù)realrandomword[0,自變量間的隨機整數(shù))wordrandomize無自變量初始化內(nèi)部隨機數(shù)產(chǎn)生器longintupcase字符型使小寫英文字母變?yōu)榇髮懽址蚫owncase字符型使小寫英文字母變?yōu)榇髮懽址?.5運算符和表達式1.運算符和優(yōu)先級(1)運算符
是實型,如果全部的運算對象都是整型并且運算不是除法,則結(jié)果為整型,若運算是除法,則結(jié)果是實型a.算術(shù)運算符
運算符運算運算對象結(jié)果類型
+加整型、實型只要有一個運算對象是實型,結(jié)果就-減整型、實型是實型,如果全部的運算對象都是整*乘整型、實型型并且運算不是除法,則結(jié)果為整型,/除整型、實型若運算是除法,則結(jié)果是實型。div整除整型整型mod取余整型整型
第24頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
b.邏輯運算符
運算符運算運算對象結(jié)果類型not邏輯非布爾型布爾型and邏輯與布爾型布爾型or邏輯或布爾型布爾型xor邏輯異或布爾型布爾型c.關(guān)系運算符
運算符運算運算對象結(jié)果類型=等于簡單類型布爾型不等于簡單類型布爾型<小于簡單類型布爾型>大于簡單類型布爾型=大于等于簡單類型布爾型(2)優(yōu)先級
運算符優(yōu)先級not1(高)*,/,div,mod,and2xor,+,-,or3in,=,,>=,函數(shù)-->*,/,div,mod-->+,1
(2)布爾表達式:TurboPascal提供給布爾表達式以下基本操作:邏輯運算和關(guān)系運算。(3)數(shù)學(xué)上的表達式與pascal語言表達式的區(qū)別
數(shù)學(xué)表達式PASCAL表達式注意
2a2*a*號不能省略a÷ba/b除號的寫法a≠bab不等號的寫法a≤ba信息學(xué)奧林匹克競賽輔導(dǎo)
a33aa17abcdex9.5αβλ5、將下列的數(shù)學(xué)表達式改寫成PASCAL表達式:b^2-4ac6、求下列表達式的值:
20mod1915mod97div819div3(4>5)and(79)or(9信息學(xué)奧林匹克競賽輔導(dǎo)
的或相容的才可以相互賦值。
怎么來理解這句話呢?打個比方,我們沏功夫茶用的是小茶杯,裝飯時用飯碗。如果用飯碗來泡功夫茶,用小茶杯來裝飯,那情形一定很滑稽而且是不可行的;氐絇ASCAL中來,賦值號左邊變量如果是整型,右邊表達式的值的類型也要是整型;賦值號左邊變量如果是字符型,右邊表達式的值的類型也要是字符型否則的話,也要出錯了。這是數(shù)據(jù)類型相同的情況。
對于數(shù)據(jù)類型相容的,我們也可以用一個例子來幫助理解。我們都喝過功夫茶,也喝過大杯茶。把功夫茶倒在大茶杯里,一般不會出什么問題;但如果把大杯里的茶倒在功夫茶杯里呢?可能小茶杯裝不下大茶杯里的茶,茶“溢出”了。在PASCAL中也會出現(xiàn)這種情況。當(dāng)一種數(shù)據(jù)類型的取值范圍包含著另一種數(shù)據(jù)類型的取值范圍時,就可能出現(xiàn)類型相容的情況。如實型與整型,整型、字符型與它們各自的子界類型如果把整型值賦給實型變量,把整型子界值賦給整型變量,不會出錯;但如果反過來,就會出現(xiàn)“溢出”,出錯了。因些,我們在寫賦值語句時,要注意兩邊的類型是否匹配。例:有程序如下:
vara,b:integer;c:real;d:0..100;begin
a:=100;b:=a;
{-------------以上是相同數(shù)據(jù)類型進行賦值}d:=100;b:=d;c:=b;
{-------------以上是相容數(shù)據(jù)類型進行賦值}d:=b;a:=c;
{-------------以上兩個賦值語句都出現(xiàn)溢出,編譯時出錯}end.3.2讀語句
讀語句(read語句)和賦值語句一樣,能夠改變變量的值。與賦值語句不同,讀語句從鍵盤或文件接收值賦予變量,而賦值語句則直接由程序語句獲得。讀語句格式如下:read(變量名表);readln(變量名表);readln;
讀語句是編程中用得最多的語句之一。在使用時有幾點要注意:
1、變量名表。寫在括號中的變量,都要在變量說明中先預(yù)以說明;變量與變量之間,以“,”分隔;例:
vara,b:integer;
第27頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
read(a,b);
2、從鍵盤接收數(shù)據(jù)時,要注意各種不同數(shù)據(jù)類型數(shù)據(jù)的分隔符不同。所謂分隔符就是兩個完整的數(shù)值之間的標(biāo)記,也可以這樣理解,當(dāng)計算機從鍵盤讀入數(shù)據(jù)時,一旦碰到分隔符,就認(rèn)為當(dāng)前的數(shù)據(jù)讀入已完成,可以把它賦給相應(yīng)的變量了。各種數(shù)據(jù)類型的分隔符如下:數(shù)值型(包括整型、實型以及它們的子界類型)以空格或回車符作為分隔符;字符型不需分隔符(因為字符型數(shù)據(jù)的長度固定,只有一個);字符串以回車符作為分隔符。
3、注意read與readln的區(qū)別
例:有兩段程序有相同的變量說明如下,不同的讀語句,我們可以通過比較它們執(zhí)行結(jié)果的異同來理解read與readln的區(qū)別。變量說明vara,b,c,d:integer;read(a);程序段一readln(b,c);read(d);readln(a);程序段二read(b,c);read(d)12345輸入數(shù)據(jù)678在程序段一執(zhí)行時,“read(a);”語句接收了第一個數(shù)據(jù)1并將它賦給變量a;接著執(zhí)行第二個語句“readln(b,c);”,接收了第一行數(shù)據(jù)中的2、3并把它們分別賦給變量b,c,同時,把本行其它數(shù)據(jù)全部屏蔽掉,也就是宣布它們?nèi)孔鲝U。程序段二的執(zhí)行情況也是如此。因此,我們可以得出結(jié)論:語句read只管接收數(shù)據(jù),語句readln接收完數(shù)據(jù)后,還把同行的其它數(shù)據(jù)全部宣布作廢。
4、“readln;”語句從鍵盤接收一個回車符。這個語句通常用在需要暫停的地方。如輸出時用來等待程序員看清結(jié)果。3.3寫語句
寫(write)語句是Pascal中唯一能將運算結(jié)果送出顯示在顯示器屏幕的語句。格式如下:write(輸出量表);{輸出后不換行}writeln(輸出量表);{輸出后換行}writeln;{輸出一個回車符}
使用寫語句時也有一些小問題需要注意。
1、輸出量可以是:
第28頁共277頁
執(zhí)行結(jié)果abcd1236167信息學(xué)奧林匹克競賽輔導(dǎo)
變量。輸出變量的值。輸出多個變量時,變量間用“,”分隔。表達式。輸出的是表達式的值。常量。直接輸出常量值。
2、場寬的限制在輸出不同格式的數(shù)值時的作用:例1:輸出多個空格。
write("":n);句子的意思是以n個字符寬度輸出冒號前數(shù)據(jù)項,如果數(shù)據(jù)項長度不足n,則前面以空格補齊;如果數(shù)據(jù)項長度大于n,則以實際長度輸出。如上語句句輸出n個空格。例2:數(shù)據(jù)項間隔。
如輸出最多四位的數(shù)據(jù):write(x:5)。則數(shù)據(jù)間至少分隔一個空格。例3:實型數(shù)據(jù)小數(shù)位數(shù)的確定。
實型數(shù)據(jù)不帶格式限制時,以科學(xué)計數(shù)法的形式輸出,和我們的一般書寫習(xí)慣不同。如果加上場寬的限制,則可以有不同的效果:vara:real;begina:=15/8;
writeln(a);{輸出1.8750000000E+00}
wiiteln(a:0:2);{輸出1.88整數(shù)部分按實際位數(shù)輸出,小數(shù)部分保留兩位小數(shù),末位四舍五入.}
writeln(a:0:0):{輸出2只輸出整數(shù)部分,小數(shù)部分四舍五入}end.
3、“writeln;”語句通常用于輸出多組數(shù)據(jù)時在屏幕上輸出空行來分隔數(shù)據(jù)組。
思考與練習(xí):
1、用字符輸出一個豬錦佳的頭像。
2、a,b,c分別等于1、12、123,把它們按向左對齊、向右對齊的方式打印出來。3、輸入一個四位整數(shù),把它的各位數(shù)字倒序輸出。(提示:用MOD和DIV運算完成)4、從鍵盤上讀入小寫的"pascal",利用CHR()和ORD()函數(shù),輸出大寫的"PASCAL"。5、從鍵盤上讀入一個實數(shù),利用ROUND()和TRUNC()函數(shù),輸出該實數(shù)本身、整數(shù)部分、小數(shù)部分、四舍五入后的值。
要求:分三行輸出;輸出實數(shù)本身時,格式與讀入時相同;整數(shù)部分、小數(shù)部分在同一行輸出;其它各占一行。
6、從鍵盤上讀入長方形的邊長a,b,計算它的面積和周長,輸出。7、輸入一個時、分、秒,把它轉(zhuǎn)換為一個秒數(shù)。
第四章選擇結(jié)構(gòu)程序設(shè)計
第29頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
4.1IF語句4.2CASE語句練習(xí)與作業(yè)4.1IF語句
條件語句用于響應(yīng)一個條件的兩個方面。
例如:今天如果下雨,我們就在家;否則(不下雨)我們就去旅游。
又如:如果已經(jīng)搜索得到結(jié)果,就打印出答案;否則(還沒得到結(jié)果)就繼續(xù)搜索。IF語句的一般格式是:IF條件
THEN語句1{條件為真時的響應(yīng)、處理}
ELSE語句2;{條件為假時的響應(yīng)、處理}使用條件語句時要注意:
1、條件語句是一個語句。IF、THEN、ELSE都是語句的一個部分。所以它只能有一個“;”作為分隔符,放在句子的結(jié)束,特別要注意不能放在ELSE之前。
2、如果我們的程序只需對條件為真的情況作出處理,不需要處理條件為假的情況,則IF語句省略ELSE分句,格式變成:IF條件
THEN語句1;{條件為真時的響應(yīng)、處理}如:如果數(shù)a大于等于0則輸出它的平方根。ifa>=0thenwriteln(sqrt(a));
對以上的例子,條件為假時不需處理,于是我們干脆省去ELSE分句。
3、if語句可以多層嵌套。嵌套時為了避免誤解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:IF條件THENBEGIN
if條件1thenelse;ENDELSEBEGIN
if條件2thenelse;end;
例1、輸入兩個數(shù)a,b,輸出較大的數(shù)。programtt;vara,b:integer;begin
write("pleaseinputa,b:");readln(a,b);
ifa>bthenwriteln(a)
第30頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
elsewriteln(b);end.
4.2CASE語句
分情況語句適用于對一個條件的多種情況的響應(yīng)。格式:case表達式of標(biāo)號1:語句1;標(biāo)號2:語句2;
標(biāo)號n:語句n;else語句n+1end;
case語句在使用時有幾點要注意:
1.end與case對應(yīng);標(biāo)號與語句之間用“:”分隔;else與語句之間不用分隔符。2.標(biāo)號必須是一常量,其類型與表達式的類型一致
例2:某全自動加油站a,b,c三種汽油的單價(元/kg)分別是1.50、1.35和1.18,也提供了“自己加”或“協(xié)助加”兩個服務(wù)等級,這樣用戶可以得到5%或10%的優(yōu)惠。編一個程序,用戶輸入加油量、汽油品種和服務(wù)類型(f-自動,m-自己,e-協(xié)助),然后計算應(yīng)付款。programpcase1;var
oil,help:char;kg,total:real;begin
write("Entertheamountinkilograms(kg):");readln(kg);write("Whichtypeofthegasoline(a,b,c):");readln(oil);wirte("Whichtypeforservice(f,m,e):");readln(help);caseoilof
"a":total:=1.50*kg;"b":total:=1.35*kg;"c":total:=1.18*kg;
elsewriteln("InputError!")end;
{處理汽油的類型}casehelpof"f":;
"m":total:=total*(1-0.05);"e":total:=total*(1-0.10);elsewriteln("InputError!")
第31頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
end;
{處理服務(wù)類型}writeln;
writeln("Totalis",total:10:2);end.
3.可以多個標(biāo)號對應(yīng)同一條語句
4.語句可以是多個語句,但必須用語句括號(beginend)括起5.case語句也可以嵌套
例3:從鍵盤上讀入年和月,輸出該月有多少天。programpcase2;var
year,month,day:integer;runnian:boolean;begin
write("Enteryearandmonth:");readln(year,month);casemonthof
1,3,5,7,8,10,12:day:=31;
4,6,9,11:day:=30;{以上處理31天和30天的情況}2:begin
runnian:=(yearmod400=0)or((yearmod4=0)and(yearmod1000));caserunnianoftrue:day:=28;false:day:=29;end;
end;{以上處理2月的情況:閏年28天,平年29天}end;end.
思考與練習(xí):
1、從鍵盤上讀入長方形的邊長a,b,計算它的面積和周長,輸出。2、輸入一個時、分、秒,把它轉(zhuǎn)換為一個秒數(shù)。
3、從鍵盤讀入一個數(shù),判斷它的正負(fù)。是正數(shù),則輸出"+",是負(fù)數(shù),則輸出"-"。4、輸入兩個數(shù)a,b,輸出較大數(shù)的平方值。
5、鐵路托運行李規(guī)定:行李重不超過50公斤的,托運費按每公斤0.15元計費;如超50公斤,超過部分每公斤加收0.10元。編一程序完成自動計費工作。
6、某超市為了促銷,規(guī)定:購物不足50元的按原價付款,超過50不足100的按九折付款,超過100元的,超過部分按八折付款。編一程序完成超市的自動計費的工作。
7、輸入a,b,c三個不同的數(shù),將它們按由小到大的順序輸出。13、當(dāng)前小學(xué)生的成績單由以前的百分制改為優(yōu)秀、良好、合格、不合格四個等級的等級制。編一程序完成分?jǐn)?shù)的自
第32頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
動轉(zhuǎn)換工作。轉(zhuǎn)換規(guī)則如下:60分以下的為不合格;60到69分為合格;70到89分為良好;90分以上的為優(yōu)秀。(提示:可以利用DIV運算來使程序更簡明)
8、打印某年某月有多少天。(提示:A、閏年的計算方法:年數(shù)能被4整除,并且不能被100整除;或者能被400整除的整數(shù)年份。B、利用MOD運算可以判斷一個數(shù)能否被另一個數(shù)整除)
9、編程模擬剪刀、石頭、布游戲:用S表示剪刀,用R表示石頭,用P表示布。規(guī)則是:剪刀剪布,石頭砸剪刀,布包石頭。游戲者分別把自己的選擇輸入,計算機給出結(jié)果。
第五章循環(huán)結(jié)構(gòu)程序設(shè)計
5.1For語句5.2While語句5.3Repeat-Until語句練習(xí)與作業(yè)5.1For語句
1.遞增型FOR循環(huán)。
FOR循環(huán)控制變量:=循環(huán)初值TO循環(huán)終值DO循環(huán)的語句(或語段)例:FORI:=5TO10DOWRITELN(I);
輸出的結(jié)果為:5678910即循環(huán)一共執(zhí)行了6次如果要重復(fù)多個語句,一定要用BEGIN-END形式:例:
FORI:=1TO10DOBEGINWRITELN(I);WRITELN(10-I);END;
2.遞減型FOR循環(huán)
FOR循環(huán)控制變量:=循環(huán)初值DOWNTO循環(huán)終值DO循環(huán)語句
遞減型FOR循環(huán)與遞增型FOR循環(huán)基本相同,只是循環(huán)控制變量每次遞減。3.FOR循環(huán)的幾點注意內(nèi)容:
(1)循環(huán)控制變量必須是順序類型的變量。所謂順序類型的變量,就是指整型,字符型,枚舉型,子界型,不允許是實型。
(2)不允許在循環(huán)體內(nèi)再對循環(huán)控制變量賦值。例如:A:=10;B:=50;FORK:=ATOBDOBEGIN
第33頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
K:=K+1;{這一句是錯誤的。。。。。。!}WRITELN(K);END;
(3)當(dāng)循環(huán)初值或循環(huán)終值中包含變量時,允許在循環(huán)體內(nèi)改變這些變量的值,但并不改變原定的循環(huán)次數(shù)。例:
A:=1;B:=10;FORI:=ATOBDOBEGINA:=5;B:=4;END;
在上面例子中,A,B的值在循環(huán)的內(nèi)部發(fā)生了變化,但并不影響循環(huán)的次數(shù),依然是10次。4.多重循環(huán)循環(huán)體由PASCAL語句構(gòu)成,當(dāng)然也可以包含F(xiàn)OR語句,這就構(gòu)成了循環(huán)的嵌套,形成多重循環(huán)。
例如,以下FOR循環(huán)輸出5行,每行輸出10個星號(*)FORi:=1to5DOBEGIN
FORj:=1TO10DOWrite("*");END;
初學(xué)者應(yīng)當(dāng)特別注意,內(nèi)層的循環(huán)變量不能和外層的循環(huán)變量相同。也就是說,嵌套的各層循環(huán)應(yīng)當(dāng)使用不同的變量作為循環(huán)變量。5.2While語句
1.WHILE循環(huán)的執(zhí)行形式WHILE布爾表達式DO語句例如:k:=10;WHILEk>0DOBEGIN
Writeln(k);k:=k-1END;其中
(1)WHIlE和DO是PASCAL保留關(guān)鍵字,是WHILE循環(huán)語句的組成部分。
(2)保留關(guān)鍵字DO后面的“語法”只能是一條語句,稱為“循環(huán)體”;如果循環(huán)體中需要包含多個語句則應(yīng)該如上例所示,采用一條復(fù)合語句。2.WHILE循環(huán)的執(zhí)行功能當(dāng)執(zhí)行到WHILE語句時(1)求出布爾表達式的值
(2)若布爾表達式的值為真,則執(zhí)行循環(huán)體內(nèi)的語句;若為“假”,執(zhí)行步驟4(3)重復(fù)步驟1和2
第34頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
(4)循環(huán)結(jié)束,執(zhí)行循環(huán)后面的語句。5.3Repeat-Until語句
1.REPEAT-UNTIL類型的循環(huán)的執(zhí)行形式REPEAT語句1語句2語句n
UNTIL布爾表達式
例如:以下循環(huán)求n=1+2+3++100n:=0;t:=i;REPEAT
n:=n+t;t:=t+1;UNTILt>100;其中
(1)REPEAT和UNTIL是PASCAL保留關(guān)鍵字。
(2)在REPEAT和UNTIL之間的語句構(gòu)成循環(huán)。在它們之間可以有任意多個語句,這一點和FOR,WHILE循環(huán)不同,F(xiàn)OR,WHILE循環(huán)體在語法上只允許一條語句。2.REPEAT-UNTIL循環(huán)的執(zhí)行功能
(1)遇到REPEAT語句后,即進入循環(huán)體,順序執(zhí)行循環(huán)體內(nèi)的語句。
(2)遇到UNTIL語句后,求布爾表達式的值。若值為假,則返回步驟1;若為“真”,執(zhí)行步驟3
(3)循環(huán)結(jié)束,執(zhí)行UNTIL后面的下一條語句。思考與練習(xí):
1、計算下列式子的值:(1)1+2++100(2)1+3+5++97+99
2、輸入一個四位數(shù),求它各位上數(shù)字的和。
3、求水仙花數(shù)。所謂水仙花數(shù),是指一個三位數(shù)abc,如果滿足a^3+b^3+c^3=abc,則abc是水仙花數(shù)。
4、宰相的麥子:相傳古印度宰相達依爾,是國際象棋的發(fā)明者。有一次,國王因為他的貢獻要獎勵他,問他想要什么。達依爾說:“只要在國際象棋棋盤上(共64格)擺上這么些麥子就行了:第一格一粒,第二格兩粒,,后面一格的麥子總是前一格麥子數(shù)的兩倍,擺滿整個棋盤,我就感恩不盡了!眹跻幌,這還不容易,剛想答應(yīng),如果你這時在國王旁邊站著,你會不會勸國王別答應(yīng),為什么?
5、打印下列圖案:(輸入N值來控制圖案的規(guī)模,下列圖案均以N=3為例)
&&&&&&
第35頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
&&&&&&&&&
*********###
@@@
###@@@
6、輸入一整數(shù)A,判斷它是否質(zhì)數(shù)。(提示:若從2到A的平方根的范圍內(nèi),沒有一個數(shù)能整除A,則A是質(zhì)數(shù)。)
7、求兩個數(shù)的最小公倍數(shù)和最大公約數(shù)。(提示:公約數(shù)一定小于等于兩數(shù)中的小數(shù),且能整除兩數(shù)中的大數(shù)。公倍數(shù)一定大于等于兩數(shù)中的大數(shù),且是大數(shù)的倍數(shù),又能給兩數(shù)中的小數(shù)整除。)
8、編寫一個譯碼程序,把一個英語句子譯成數(shù)字代碼。譯碼規(guī)則是以數(shù)字1代替字母A,數(shù)字2代替字母B,,26代替字母Z,如遇空格則打印一個星號‘*’,英文句子以‘.‘結(jié)束。
9、“百錢買百雞”是我國古代的著名數(shù)學(xué)題。題目這樣描述:3文錢可以買1只公雞,2文錢可以買一只母雞,1文錢可以買3只小雞。用100文錢買100只雞,那么各有公雞、母雞、小雞多少只?與之相似,有"雞兔同籠"問題。
10、輸入一個正整數(shù)N,把它分解成質(zhì)因子相乘的形式。如:36=1X2X2X3X3;19=1X19
(提示:設(shè)因子為I,從2開始到N,讓N重復(fù)被I除,如果能整除,則用商取代N,I為一個因子;如果不能整除,再將I增大,繼續(xù)以上操作,直到I等于N。)
第六章數(shù)組與字符串
6.1一維數(shù)組6.2二維數(shù)組6.3字符串練習(xí)與作業(yè)6.1一維數(shù)組1、定義:var
a:array[1..10]ofinteger;
第36頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
其中:a是這一批數(shù)據(jù)的名稱,稱為數(shù)組名;array、of是定義數(shù)組的保留字;中括號中的數(shù)字是數(shù)據(jù)編號的下限和上限,財時也說明了數(shù)據(jù)的個數(shù)(上限-下限);最后一個是數(shù)據(jù)的基類型,如integer,char,real,boolean。2、數(shù)組元素的輸入:
數(shù)組名代表的并不是一個變量,而是一批變量,因而,不能直接整個數(shù)組讀入,而是要逐個數(shù)組元素讀入,通常用循環(huán)結(jié)構(gòu)來完成這一功能。下面是幾個常用輸入數(shù)組元素的例子:fori:=1to10doread(a[i]);
{從鍵盤讀入數(shù)組元素的值;最常用的方法}fori:=1to10doa[i]:=i;
{數(shù)組元素a[1]到a[10]的值分別為1到10;數(shù)據(jù)賦初值}fori:=1to10doa[i]:=0;
{數(shù)組元素清0;最常用的數(shù)據(jù)初始化的方法}fori:=1to10doa[i]:=random(100);
{隨機產(chǎn)生10個100以內(nèi)的數(shù),賦給各數(shù)組元素}3、數(shù)組元素的輸出:
和數(shù)組元素的輸入相同,數(shù)組元素的輸出也不能由一個write語句直接完成。同樣要逐個數(shù)組元素輸出。通常也用循環(huán)結(jié)構(gòu)來完成這一功能:
fori:=1to10dowrite(a[i],"");{數(shù)組元素之間用空格分隔}writeln;4、數(shù)組的應(yīng)用:
例1:從鍵盤輸入10個數(shù),將這10個數(shù)逆序輸入,并求這10個數(shù)的和,輸出這個和。programp1;var
a:array[1..10]ofinteger;i,s:integer;begin
fori:=1to10doread(a[i]);
fori:=10downto1dowrite(a[i],"");writeln;s:=0;
fori:=1to10dos:=s+a[i];writeln("s=",s);end.
例2:用篩法求100以內(nèi)的素數(shù)(質(zhì)數(shù))。
分析:素數(shù)是除了1和它本身以外沒有其它約數(shù)的數(shù)。用篩法求素數(shù)的方法是:用質(zhì)數(shù)篩去合數(shù):從第一個素數(shù)2開始,把它的倍數(shù)去掉;這樣2以后的第一個非0數(shù)就一定也是素數(shù),把它的倍數(shù)也刪了重復(fù)這個刪數(shù)過程,直到在所找到的素數(shù)后再也找不到一個非0數(shù)。把所有非0數(shù)輸出。programp2;
第37頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
var
a:array[1..100]ofinteger;i,j,k:integer;begin
fori:=1to100doa[i]:=i;a[1]:=0;i:=2;whilei信息學(xué)奧林匹克競賽輔導(dǎo)
對某一列進行處理。如累加第4列的數(shù)據(jù)。則固定列號為4。如:fori:=1to10dos:=s+a[i,4];
2、二維數(shù)組的輸入輸出要用雙重循環(huán)來控制:fori:=1to10do{控制行數(shù)}begin
forj:=1to5doread(a[i,j]){第一行讀入5個元素}readln;{讀入一個換行符}end;
{最常用的方法:從鍵盤讀入數(shù)據(jù)初始化二維數(shù)組}fori:=1to10do
forj:=1to5doa[i,j]:=0;{最常用的方法:將二維數(shù)組清0}fori:=1to10dobegin
forj:=1to5dowrite(a[i,j]:4);writeln;end;
{最常用的輸出方法:按矩陣形式輸出二維數(shù)組的值}
例1:競賽小組共有20位同學(xué),這學(xué)期每位同學(xué)共參與了三項比賽,請統(tǒng)計每位同學(xué)的平均分。分析:定義一個20行3列的二維數(shù)組來存放這些成績。定義一個20個元素的一維數(shù)組來存放平均分。programp1;var
a:array[1..20,1..3]ofinteger;b:array[1..20]ofreal;i,j:integer;begin
fori:=1to20dobegin
forj:=1to3doread(a[i,j]);readln;end;
{從鍵盤上讀入20個同學(xué)的三次競賽成績}fori:=1to20dob[i]:=0;{先將平均分?jǐn)?shù)組清0}fori:=1to20dobegin
forj:=1to3dob[i]:=b[i]+a[i,j];{計算總分}
第39頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
b[i]:=b[i]/3;{計算平均分}end;
fori:=1to20dowrite(b[i]:5:1);{輸出平均分}writeln;end.6.3字符串
1.字符串用于存放整批的字符數(shù)據(jù)。通常編程中使用字符串存放字符化了的數(shù)字?jǐn)?shù)據(jù)。如高精度運算時存放操作數(shù)和運算結(jié)果。字符串可以看作是特殊的字符串?dāng)?shù)組來處理。當(dāng)然,它也有自已的特點。下面是字符串定義的格式:var
s:string;s1:string[15];
字符串定義時,如不指定長度,則按該類型的最大長度(255個字符)分配空間,使用時最大可用長度為255個;如果在中括號中給出一個具體的值(1255之間),則按這個值的大小分配空間。使用時,最大的可用長度即為該值。
2.字符串的輸入、輸出:
字符串類型既可按數(shù)組方式輸入、輸出,也可直接輸入、輸出:readln(s);writeln(s);多個字符串輸入時以回車作為數(shù)據(jù)間的分隔符;每個readln語句只能讀入一個字符串。3.有關(guān)字符串的操作:
操作類型返作用回值型l:=length(s);{l的值為9}字符串s:="123456789";s1:=copy(s,3,5);{s1的值是"34567"}vars:string;k,code:integer;begins:="1234";val(s,k,code);write(k);{k=1234}i:=1234;str(i,s);write(s);{s="1234"}s:="HonestAbeLincoln";Delete(s,8,4);Writeln(s);{"HonestLincoln"}第40頁共277頁例子length(s)函求字符串s的長整s:="123456789";數(shù)度函復(fù)制s中從w開數(shù)始的k位將字符串s轉(zhuǎn)為copy(s,w,k)val(s,k,code)過數(shù)值,存在k中;程code是錯誤代碼過將數(shù)值i轉(zhuǎn)為字程符串s過在s中刪除從第str(i,s)Delete(s,w,k)w位開始的k個程字符信息學(xué)奧林匹克競賽輔導(dǎo)Insert(s1,S,w)Pos(c,S)過將s1插到s中第程w位數(shù)的位置運算將兩個字符串連接起來S:="HonestLincoln";Insert("Abe",S,8);{"HonestAbeLincoln"}函求字符c在s中整S:="123.5";型i:=Pos("",S);{i的值為1}s1:="1234";s2:="5678";s:=s1+s2;{"12345678"}+
思考與練習(xí):
符1、隨機產(chǎn)生20個100以內(nèi)的數(shù),輸出;按從小到大的順序排序,輸出。
2、求一個5X5數(shù)陣中的馬鞍數(shù),輸出它的位置。所謂馬鞍數(shù),是指在行上最小而在列上最大的數(shù)。如下:5678945678345212349012548
則1行1列上的數(shù)就是馬鞍數(shù)。
3、做一個加法器。完成30000以內(nèi)的加法,兩個加數(shù)間用“+”連接,可以連加,回車表示式子輸入完成;“#”表示結(jié)束運算,退出加法器。
第七章函數(shù)和過程
8.1過程8.2函數(shù)
8.3全局變量和局部變量8.4值參數(shù)和變量參數(shù)練習(xí)與作業(yè)8.1過程
1.過程的定義
procedure過程名(形式參數(shù):參數(shù)說明);{也可以不帶參數(shù)}varbegin...end;2.過程的調(diào)用
第41頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
過程名(實在參數(shù)表);
例1:求n個自然數(shù)的最大公約數(shù);programgcd1;constmaxn=100;varn,i,gcd:integer;
a:array[1..maxn]ofinteger;procedureenter;begin
write("n=(信息學(xué)奧林匹克競賽輔導(dǎo)
...{函數(shù)語句}...
函數(shù)名:=表達式end;
2.函數(shù)的調(diào)用:
函數(shù)在語法上相當(dāng)于一個表達式,所以,調(diào)用時,函數(shù)不能獨立成為一個語句;它可以出現(xiàn)在任何表達式可以出現(xiàn)的地方。例如賦值語句的右邊:
X:=函數(shù)名(實在參數(shù)表);{X的類型與函數(shù)類型必須一致}
又,如果函數(shù)類型是boolean,則還可以出現(xiàn)在條件語句中,充當(dāng)條件表達式:if函數(shù)名(實在參數(shù)表)then
例3:編一程序,求從10名同學(xué)中選出3名代表,有幾種不同的選法。(公式:C(m,n)=m!/n!*(m-n)!從m中選n)programzohe1;varm,n:integer;c:longint;
functionfactor(x:integer):longint;{定義}vari:integer;p:longint;beginp:=1;
fori:=1toxdop:=p*i;factor:=p;{這個語句必須}end;begin
write("m,n=");readln(m,n);
c:=factor(m)div(factor(n)*factor(m-n));{調(diào)用}writeln("c(",m,",",n,")=",c);end.
8.3全局變量和局部變量
在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。全局變量作用域是整個程序;局部變量作用域是定義該變量的子程序。當(dāng)全局變量與局部變量同名時:在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。例4:全局變量和局部變量。programlocal_global;vari,k:integer;proceduresub1;vari,j:integer;begin
第43頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
i:=17;
writeln("iinsub=",i);writeln("kinsub=",k);end;begini:=2;k:=9;
writeln("iinmain=",i);writeln("kinsub=",k);sub1;
writeln("iinmain=",i);writeln("jinmain=",j);readln;end.
上述程序運行時將出現(xiàn)UnknownIdentfier;因為變量j在主程序中沒定義。當(dāng)刪除本語句時。運行結(jié)果如下:iinmain=2kinmain=9iinsub=17kinsub=9iinmain=28.4值參和變量參數(shù)
值形參傳值:調(diào)用時可用表達式代替形參,不該變實在參數(shù)的值。變量形參傳地址:調(diào)用時必須用變量代替行參變量,改變實在參數(shù)的值。例4:請看下列程序的運行結(jié)果。programli3_10;vara,b,c:integer;
proceduresub(x,y:integer;varz:integer);begin
x:=x+1;y:=y+1;z:=x+y;
writeln("sub:x=",x:2,"y=",y:2,"z=",z:2);end;begin
a:=1;b:=4;c:=9;
writeln("main:a=",a:2,"b=",b:2,"c=",c);sub(a,b,c);
writeln("main:a=",a:2,"b=",b:2,"c=",c);sub(c+5,b*b,a);
writeln("main:a=",a:2,"b=",b:2,"c=",c);
第44頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
readln;end.
main:a=1b=4c=9sub:x=2y=5z=7main:a=1b=4c=7sub:x=13y=17z=30main:a=30b=4c=7練習(xí)與作業(yè)
1、試編寫一個將阿拉伯?dāng)?shù)字轉(zhuǎn)換為中文大寫數(shù)字的函數(shù)。(如中文狀態(tài)不方便,可以替換為ABCDEFGHIJ)
2、輸入一個長字符串和一個短字符串以及一個合適的整數(shù),通過程序從指定位置用指定短字符串替換長字符串中的內(nèi)容(要求編寫過程來實現(xiàn)),最后輸出新字符串。
第八章子界與枚舉類型
8.1子界類型8.2枚舉類型
Pascal有豐富的數(shù)據(jù)類型,在程序設(shè)計中有特殊而方便的應(yīng)用。類型定義的語法格式:type
=;=;
=;8.1子界與枚舉1.子界類型:
當(dāng)某些變量的取值范圍很具體時,可用子界類型,它更符合實際、便于查錯和節(jié)省內(nèi)存。定義如下:typeriqi=1..31;zimu="A".."Z";varday:riqi;ch1:zimu;也可以直接定義:day:1..31;year:0..200;ch1:"A".."Z";8.2枚舉類型:
第45頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo)
通過預(yù)定義列出所有值的標(biāo)識符來定義一個有序集合,這些值的次序和枚舉類型說明中的標(biāo)識符的次序是一致的。枚舉類型的形式:(標(biāo)識符1,,標(biāo)識符n)例如:
typedaystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)枚舉元素只能是標(biāo)識符,而不能是數(shù)值常量或字符常量。例如以下的定義是錯誤的: 枚舉元素是標(biāo)識符,不要把作為枚舉元素的標(biāo)識符視作變量名,它不能被賦值。同一個枚舉元素不能出現(xiàn)在兩個或兩個以上的枚舉類型定義中。例如以下的定義是錯誤的:typedaytype1=(monday,tuesday);daytype2=(monday,wednesday); 可以將枚舉類型的定義和變量的定義結(jié)合在一起。例如:vara:(monday,tuesday,sunday)枚舉類型屬于順序類型。根據(jù)定義類型時各枚舉元素的排列順序確定它們的序列,序列號從0開始。 例如:已經(jīng)定義daystype ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday 但是枚舉類型中的第一個元素沒有前趨,最后一個元素沒有后繼。TurboPascal不允許直接讀寫枚舉值,所以枚舉值的輸出常用case語句間接的輸出。枚舉值的輸入,則要一一判斷讀入字符是否是枚舉類型的標(biāo)識符。若是才能賦給枚舉變量,否則就會出錯。例如:枚舉值的輸出casedayof sunday:write("sunday");monday:write("monday");tuesday:write("tuesday");wednesday:write("wednesday");thursday:write("thursday");friday:write("friday");saturday:write("saturday");end;練習(xí): 1.按月、日順序輸入今年的一個日期,輸出該日是星期幾?已知今年元旦是星期一。 第九章集合類型 9.1集合9.1集合1.集合的定義: type類型名=setof基類型 第46頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo) 例如:type num=setofchar;varn:num;或var n:setofchar;2.集合的表示: 用一組方括號括號一組元素來表示,元素之間用逗號分隔。如:[A,B,C,D]--有四個枚舉量的集合["A","B","C","D"]--有四個字符的集合[1..20]--包含了1到20中所有整數(shù)的集合[0]--只有一個元素0的單元素集[]--空集3.集合的運算: (1)并(a+b):屬于a或?qū)儆赽[0..7]+[0..4]的值為[0..7](2)交(a*b):既屬于a又屬于b[0..7]*[0..4]的值為[0..4](3)差(a-b):屬于a但不屬于b[0..7]-[0..4]的值為[5..7](4)相等(a=b):a,b的元素完全一樣[0..7]=[0..4]的值為false(5)不等():元素不一樣[0..7][0..4]的值為true(6)包含于(=[0..4]的值為true(8)成員(in): 1in[0..4]的值為true4.注意事項: (1)集合運算相當(dāng)快,在程序中常用集合表達式來描述復(fù)雜的測試。如 A)條件表達式:(ch="T")or(ch="t")or(ch="Y")or(ch="y")可用集合表達式表示為: chin["T","t","Y","y"] B)if(ch>=20)and(ch信息學(xué)奧林匹克競賽輔導(dǎo) ifchin[20..50]then...; (2)集合類型是一種使用簡便,節(jié)省內(nèi)存面又運算速度快的數(shù)據(jù)類型。 (3)TurboPascal規(guī)定集合的元素個數(shù)不超過256個(當(dāng)實際問題所需的元素個數(shù)大于256時,可采用布爾數(shù)組代替集合類型)。所以如下定義是錯誤的:vari:setofinteger;(4)集合類型變量不能進行算術(shù)運算,了不允許用讀/寫語句直接輸入/輸出集合。所以集合的建立: A)要通過賦值語句實現(xiàn); B)或先初始化一個集合,然后通過并運算向集合中逐步加入各個元素.(5)集合元素是無序的,所以ord,pred和succ函數(shù)不能用于集合類型的變量。練習(xí): 編程讀入兩個字符串,然后輸出如下信息: (1)出現(xiàn)在某一個字符串中至少一次的字母和數(shù)字;(2)同時出現(xiàn)在兩個字符串中至少一次的字母和數(shù)字; (3)出現(xiàn)在一個字符串中而不出現(xiàn)在另一個字符串中的字母和數(shù)字;(4)不出現(xiàn)在任何字符串中的字母和數(shù)字。 第十章記錄與文件類型 10.1記錄類型10.2文件類型 10.1記錄1.記錄的定義: type類型標(biāo)識符=record字段名1:類型1;字段名2:類型2;... 字段名n:類型n;end;如:type studata=recordnum:string[6];name:string[8];sex:boolean; s:array[1..5]ofreal;end;var 第48頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo) student:studata; students:array[1..10]ofstudata;2.記錄的運用: (1)對記錄中和個域的引用,要寫出記錄名和域名,如:student.num(2)開域語句:with。with記錄名do語句;或 with記錄名1,記錄名2,...do語句;注意: 1.在do后面語句中使用的記錄的域時,只要簡單地寫出域名就可以了,域名前的記錄變量和"."均可省略。 2.在關(guān)鍵字with后面,語句可以是一個簡單語句,了可以是一個復(fù)合語句。3.雖然在with后可以有多個記錄變量名,但一般在with后只使用一個記錄變量名。10.2文件 文件是一種構(gòu)造型的數(shù)據(jù)類型。在程序中都需要產(chǎn)生一些輸出,也需要接受若干個輸入。這些輸入、輸出實際上是用文件的方法來實現(xiàn)的,在Pascal中用標(biāo)準(zhǔn)文件“input”和“output”來實現(xiàn),它們分別對應(yīng)標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備(可省略不寫)這也就是一些程序的程序書寫如下的原因了: programex(input,output);... 但有時大量數(shù)據(jù)的讀入和輸出都是來是磁盤文件,這就要求我們必須熟練掌握對磁盤文件的操作。 對于我們來說,我們只必須掌握文本文件(或稱正文文件,text)的讀寫即可:1.文本文件的定義: 文本文件不是簡單地由某類型的元素序列所組成,它的基本元素是字符,由它們構(gòu)成行,若干行組成一份原文。由于各行的長度可以不同,所以文本文件只能順序地處理。文本文件的定義如下:varfp:text;2.文本文件的讀操作: (1)調(diào)用assign過程,把磁盤文件賦予文本文件變量;assign(fp,filename); (2)調(diào)用reset過程,為讀操作做準(zhǔn)備;reset(fp); (3)在需要讀數(shù)據(jù)的位置調(diào)用read過程或readln過程。readln(fp,var1,var2,...,varn);3.文本文件的寫操作: 第49頁共277頁信息學(xué)奧林匹克競賽輔導(dǎo) (1)調(diào)用assign過程,把磁盤文件賦予文本文件變量;assign(fp,filename); (2)調(diào)用rewrite過程,為讀操作做準(zhǔn)備;rewrite(fp); (3)在需要讀數(shù)據(jù)的位置調(diào)用write過程或writeln過程。writeln(fp,var1,var2,...,varn);4.文本文件的關(guān)閉操作:close(fp);5.文本文件的其他操作: (1)EOF(fp)布爾函數(shù),用于判斷文件結(jié)束否。(2)EOLN(fp)布爾函數(shù),用于判斷行結(jié)束否。例1:下面是一個建立和使用文件的程序:programwenjian;constn=3;m=2;typestudent=recordname:string; score:array[1..m]of0..100;end; varst:array[1..n]ofstudent;stfile:fileofstudent;sumst:array[1..n]ofinteger;sumsub:array[1..m]ofinteger;sum:integer;procedurenewfile;vari,j:integer;begin assign(stfile,"score.fil");rewrite(stfile);fori:=1tondobegin writeln("Inputstudent",i,"nameand",m,"score");readln(st[i].name);forj:=1tomdoread(st[i].score[j]);readln; write(stfile,st[i]);end; close(stfile); 第50頁共277頁 友情提示:本文中關(guān)于《高一第一學(xué)期信息技術(shù)競賽輔導(dǎo)總結(jié)》給出的范例僅供您參考拓展思維使用,高一第一學(xué)期信息技術(shù)競賽輔導(dǎo)總結(jié):該篇文章建議您自主創(chuàng)作。 來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。
《高一第一學(xué)期信息技術(shù)競賽輔導(dǎo)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/599982.html