小學(xué)信息學(xué)奧賽教程_第1頁(yè)
小學(xué)信息學(xué)奧賽教程_第2頁(yè)
小學(xué)信息學(xué)奧賽教程_第3頁(yè)
小學(xué)信息學(xué)奧賽教程_第4頁(yè)
小學(xué)信息學(xué)奧賽教程_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

目錄第一章計(jì)算機(jī)根底知識(shí)………………………11.1計(jì)算機(jī)開展史………………………11.2計(jì)算機(jī)的組成………………………21.5計(jì)算機(jī)語(yǔ)言………………………41.3預(yù)防計(jì)算機(jī)中毒……………………51.4數(shù)制…………………6習(xí)題……………8第二章認(rèn)識(shí)Pascal………………112.1安裝及刪除Pascal系統(tǒng)……………112.2FreePascal窗口界面…………………132.3程序演示………………17習(xí)題…………………………19第三章Pascal語(yǔ)言根底知識(shí)…………………203.1關(guān)鍵字與標(biāo)識(shí)符……………………203.2Pascal的數(shù)據(jù)類型…………………213.3常量、變量及表達(dá)式…………………233.4ASCⅡ碼………………253.5標(biāo)準(zhǔn)函數(shù)………………263.6自定義函數(shù)……………273.7Pascal程序結(jié)構(gòu)……………………30習(xí)題…………………………32第四章Pascal簡(jiǎn)單語(yǔ)句………………………354.1賦值語(yǔ)句………………354.2輸入〔read、readln〕語(yǔ)句…………364.3輸出〔write、writeln〕語(yǔ)句………384.4條件〔if〕語(yǔ)句………………………414.5分情況case語(yǔ)句……………………424.6For循環(huán)語(yǔ)句…………434.7當(dāng)型循環(huán)〔while/do〕語(yǔ)句…………464.8直到型循環(huán)〔repeat/until〕語(yǔ)句…………………47習(xí)題…………………………48第五章文件操作…………………535.1類型文件………………535.2文本文件………………55習(xí)題…………………………61第六章Pascal算法根底………………………536.1一維數(shù)組………………536.2排序算法………………556.3綜合實(shí)例………………57習(xí)題…………………………61附錄習(xí)題解答……………………539.18大課間電腦興趣組發(fā)動(dòng)會(huì)第一章計(jì)算機(jī)根底知識(shí)1.1計(jì)算機(jī)開展史公元前5世紀(jì),中國(guó)人創(chuàng)造了算盤,廣泛應(yīng)用于商業(yè)貿(mào)易中,算盤被認(rèn)為是最早的計(jì)算機(jī),并一直使用至今。算盤在某些方面的運(yùn)算能力要超過目前的計(jì)算機(jī),算盤的方面表達(dá)了中國(guó)人民的智慧?,F(xiàn)代計(jì)算機(jī)開展歷程第一代電子管計(jì)算機(jī)(1946-1957)世界上第一臺(tái)計(jì)算機(jī)于1946年誕生于美國(guó)的賓夕法尼亞大學(xué)。它的名字叫埃尼阿克〔ENIAC是ElectronicNumericalIntegratorandComputer的英文縮寫)。ENIAC代表了計(jì)算機(jī)開展史上的里程碑,它通過不同局部之間的重新接線編程,還擁有并行計(jì)算能力。ENIAC使用了18000多個(gè)電子管,70000多個(gè)電阻器,有5百萬(wàn)多個(gè)焊接點(diǎn),耗電160千瓦,其運(yùn)算速度為每秒5000次,占地170平方米,重達(dá)30多噸。第一代計(jì)算機(jī)的特點(diǎn)是操作指令是為特定任務(wù)而編制的,每種機(jī)器有各自不同的機(jī)器語(yǔ)言,功能受到限制,速度也慢。另一個(gè)明顯特征是使用真空電子管和磁鼓儲(chǔ)存數(shù)據(jù)。第二代晶體管計(jì)算機(jī)(1957-1964)1948年,晶體管創(chuàng)造代替了體積龐大電子管,電子設(shè)備的體積不斷減小。1956年,晶體管在計(jì)算機(jī)中使用,晶體管和磁芯存儲(chǔ)器導(dǎo)致了第二代計(jì)算機(jī)的產(chǎn)生。第二代計(jì)算機(jī)體積小、速度快、功耗低、性能更穩(wěn)定。1960年,出現(xiàn)了一些成功地用在商業(yè)領(lǐng)域、大學(xué)和政府部門的第二代計(jì)算機(jī)。第二代計(jì)算機(jī)用晶體管代替電子管,還有現(xiàn)代計(jì)算機(jī)的一些部件:打印機(jī)、磁帶、磁盤、內(nèi)存、操作系統(tǒng)等。計(jì)算機(jī)中存儲(chǔ)的程序使得計(jì)算機(jī)有很好的適應(yīng)性,可以更有效地用于商業(yè)用途。在這一時(shí)期出現(xiàn)了更高級(jí)的COBOL和FORTRAN等語(yǔ)言,使計(jì)算機(jī)編程更容易。新的職業(yè)(程序員、分析員和計(jì)算機(jī)系統(tǒng)專家)和整個(gè)軟件產(chǎn)業(yè)由此誕生。第三代集成電路計(jì)算機(jī)(1964-1972)1958年德州儀器的工程師JackKilby創(chuàng)造了集成電路(IC),將三種電子元件結(jié)合到一片小小的硅片上。更多的元件集成到單一的半導(dǎo)體芯片上,計(jì)算機(jī)變得更小,功耗更低,速度更快。這一時(shí)期的開展還包括使用了操作系統(tǒng),使得計(jì)算機(jī)在中心程序的控制協(xié)調(diào)下可以同時(shí)運(yùn)行許多不同的程序。第四代大規(guī)模集成電路計(jì)算機(jī)(1972-現(xiàn)在)大規(guī)模集成電路(LSI)可以在一個(gè)芯片上容納幾百個(gè)元件。到了80年代,超大規(guī)模集成電路(VLSI)在芯片上容納了幾十萬(wàn)個(gè)元件,后來的(ULSI)將數(shù)字?jǐn)U充到百萬(wàn)級(jí)??梢栽谟矌糯笮〉男酒先菁{如此數(shù)量的元件使得計(jì)算機(jī)的體積和價(jià)格不斷下降,而功能和可靠性不斷增強(qiáng)。70年代中期,計(jì)算機(jī)制造商開始將計(jì)算機(jī)帶給普通消費(fèi)者,這時(shí)的小型機(jī)帶有友好界面的軟件包,供非專業(yè)人員使用的程序和最受歡送的字處理和電子表格程序。1981年,IBM推出個(gè)人計(jì)算機(jī)(PC)用于家庭、辦公室和學(xué)校。80年代個(gè)人計(jì)算機(jī)的競(jìng)爭(zhēng)使得價(jià)格不斷下跌,微機(jī)的擁有量不斷增加,計(jì)算機(jī)繼續(xù)縮小體積。與IBMPC競(jìng)爭(zhēng)的AppleMacintosh系列于1984年推出,Macintosh提供了友好的圖形界面,用戶可以用鼠標(biāo)方便地操作。第五代計(jì)算機(jī)具有人工智能的計(jì)算機(jī)。目前仍處在探索、研制階段。1.2計(jì)算機(jī)的組成一個(gè)完整的計(jì)算機(jī)系統(tǒng),由硬件系統(tǒng)和軟件系統(tǒng)兩大局部組成的。1.2.1硬件計(jì)算機(jī)硬件從外觀上看主要有顯示器、主機(jī)箱、鍵盤和鼠標(biāo);從邏輯功能上看,可以分為控制器、運(yùn)算器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五個(gè)局部。翻開計(jì)算機(jī)主機(jī)箱,里面有一塊印刷電路板,這就是計(jì)算機(jī)的主機(jī)板(簡(jiǎn)稱主板),一般地,計(jì)算機(jī)的重要控件都做在計(jì)算機(jī)的主板上。主板的類型和品種很多,從類型上來說,它們都是以CPU來分類的,CPU芯片在主板上是可以插拔的。主板上還許多部件,如ROM、RAM、總線槽、插座、電池等。1.CPUCPU是中央處理器(CentralProcessingUnit)的英文縮寫,由運(yùn)算器和控制器組成。它是計(jì)算機(jī)的運(yùn)算控制中心,是計(jì)算機(jī)中集成度最高、最貴重的一塊芯片。它是由幾千~幾千萬(wàn)個(gè)晶體管組成的超大規(guī)模的集成電路芯片。計(jì)算機(jī)所有數(shù)據(jù)的加工處理都是在CPU中完成的。CPU還負(fù)責(zé)發(fā)出控制信號(hào),使計(jì)算機(jī)的各個(gè)部件協(xié)調(diào)一致地工作。2.存儲(chǔ)器存儲(chǔ)器由內(nèi)部存儲(chǔ)器〔簡(jiǎn)稱為內(nèi)存〕和外部存儲(chǔ)器〔簡(jiǎn)稱為外存〕組成。①內(nèi)部存儲(chǔ)器計(jì)算機(jī)要執(zhí)行的程序、要處理的信息和數(shù)據(jù),都必須先存入內(nèi)存,才能由CPU取出進(jìn)行處理。內(nèi)存一般可以分為隨機(jī)讀寫存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)兩種。ROM中存儲(chǔ)的數(shù)據(jù)只能讀出,而用一般的方法不能寫入。它的最大優(yōu)點(diǎn)是它保存的數(shù)據(jù)在斷電后不會(huì)喪失,因此用來保存計(jì)算機(jī)經(jīng)常使用且固定不變的程序和數(shù)據(jù)。ROM中保存的最重要的程序是根本輸入輸出系統(tǒng)BIOS,這是一個(gè)對(duì)輸入輸出設(shè)備進(jìn)行管理的程序。RAM中存儲(chǔ)的數(shù)據(jù)可以隨時(shí)取出來(稱為讀出),也可以隨時(shí)存入新數(shù)據(jù)(稱為寫入)或?qū)υ瓉淼臄?shù)據(jù)進(jìn)行修改。RAM的缺點(diǎn)是斷電以后所存儲(chǔ)的所有數(shù)據(jù)都將喪失。充當(dāng)內(nèi)存的集成電路芯片是做在一小條印刷電路板上的,稱為內(nèi)存條。內(nèi)存條可以很方便地插在主板上,其容量現(xiàn)在一般為1GB、2GB等。②外部存儲(chǔ)器內(nèi)存的容量有限,且價(jià)格較貴,關(guān)機(jī)以后內(nèi)存中所存儲(chǔ)的數(shù)據(jù)就消失了,因此計(jì)算機(jī)還必須有外存來存儲(chǔ)數(shù)據(jù)。外存的特點(diǎn)是存儲(chǔ)容量大、價(jià)格較低,所存儲(chǔ)的數(shù)據(jù)在計(jì)算機(jī)關(guān)機(jī)后也不會(huì)喪失。外存主要有硬盤、光盤、軟盤、U盤等。3.輸入/輸出設(shè)備輸入設(shè)備就是把數(shù)據(jù)送入計(jì)算機(jī)的設(shè)備,它接受用戶的程序和數(shù)據(jù),并轉(zhuǎn)換成二進(jìn)制代碼送入計(jì)算機(jī)的內(nèi)存中存儲(chǔ)起來,供計(jì)算機(jī)運(yùn)行時(shí)使用。輸出設(shè)備就是把經(jīng)過計(jì)算機(jī)處理的數(shù)據(jù),以人們能夠識(shí)別的形式輸出的設(shè)備。輸入/輸出設(shè)備就如同人有了眼睛可以看、耳朵可以聽、嘴巴可以講、手可以寫字一樣,輸入/輸出設(shè)備是計(jì)算機(jī)與外界溝通的橋梁。輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀、手寫筆等。鍵盤主要用來輸入各種文字、數(shù)據(jù)和命令。鼠標(biāo)主要用于繪圖以及快速地移動(dòng)光標(biāo)進(jìn)行選擇或輸入。掃描儀主要用來將圖形或圖像資料輸入到計(jì)算機(jī)中。手寫筆主要用來輸入信息。輸出設(shè)備有顯示器、打印機(jī)、繪圖儀、音箱等。顯示器,能顯示計(jì)算機(jī)輸出的文字、圖形或圖像;打印機(jī)能把計(jì)算機(jī)輸出的文字、圖形、圖像等打印到紙上,主要有噴墨打印機(jī)、激光打印機(jī)和針式打印機(jī)等;音箱能輸出經(jīng)過計(jì)算機(jī)處理的聲音信息。〔講〕1.2.2軟件計(jì)算機(jī)如果只有硬件將無法工作,還需要軟件配合才能正常運(yùn)行。計(jì)算機(jī)軟件可以分為系統(tǒng)軟件和應(yīng)用軟件兩大類。1.系統(tǒng)軟件系統(tǒng)軟件是一種綜合管理計(jì)算機(jī)硬件和軟件資源,為用戶提供工作環(huán)境和開發(fā)工具的大型軟件。主要包括:操作系統(tǒng)軟件是計(jì)算機(jī)的大管家,負(fù)責(zé)管理和控制計(jì)算機(jī)各個(gè)部件協(xié)調(diào)一致地工作,是一個(gè)最根本、最重要的系統(tǒng)軟件。一臺(tái)計(jì)算機(jī)必須通過操作系統(tǒng)才能正常工作。主要的操作系統(tǒng)軟件有DOS、Windows98、WindowsXP、Unix、Linux、Netware等。2.應(yīng)用軟件應(yīng)用軟件是計(jì)算機(jī)用戶為了解決某些具體問題而編制的軟件。如圖書館資料檢索軟件、人事管理軟件、工資管理軟件、輔助教學(xué)軟件〔CAI〕等。還有為各種不同用途編制的專用軟件,如文字處理軟件〔Word、WPS〕、電子表格軟件〔Excel〕、游戲等。1.3計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言〔ComputerLanguage〕指用于人與計(jì)算機(jī)之間通訊的語(yǔ)言。計(jì)算機(jī)語(yǔ)言是人與計(jì)算機(jī)之間傳遞信息的媒介。計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的開展,經(jīng)歷了從機(jī)器語(yǔ)言、匯編語(yǔ)言到高級(jí)語(yǔ)言的歷程。其中機(jī)器語(yǔ)言、匯編語(yǔ)言也稱為低級(jí)語(yǔ)言。1.機(jī)器語(yǔ)言機(jī)器語(yǔ)言,是第一代計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)創(chuàng)造之初,用計(jì)算機(jī)的語(yǔ)言去命令計(jì)算機(jī)工作,一句話,就是寫出一串串由"0"和"1"組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種計(jì)算機(jī)能夠認(rèn)識(shí)的語(yǔ)言,就是機(jī)器語(yǔ)言。因此程序就是一個(gè)個(gè)的二進(jìn)制文件。由于使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語(yǔ)言,故而運(yùn)算效率是所有語(yǔ)言中最高的。但使用機(jī)器語(yǔ)言是十分痛苦的,特別是在程序有錯(cuò)需要修改時(shí),更是如此。此外每臺(tái)計(jì)算機(jī)的指令系統(tǒng)往往各不相同,所以,在一臺(tái)計(jì)算機(jī)上執(zhí)行的程序,要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須另編程序,造成了重復(fù)工作。2.匯編語(yǔ)言為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改良:用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令的二進(jìn)制串,比方,用"ADD"代表加法,"MOV"代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言,即第二代計(jì)算機(jī)語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,專門負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語(yǔ)言,這種翻譯程序被稱為匯編程序。匯編語(yǔ)言同樣十分依賴于機(jī)器硬件,移植性不好,但效率仍十分高,針對(duì)計(jì)算機(jī)特定硬件而編制的匯編語(yǔ)言程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精煉而質(zhì)量高,所以至今仍是一種常用而強(qiáng)有力的軟件開發(fā)工具。3.高級(jí)語(yǔ)言從最初與計(jì)算機(jī)交流的痛苦經(jīng)歷中,人們意識(shí)到,應(yīng)該設(shè)計(jì)一種這樣的語(yǔ)言,這種語(yǔ)言接近于數(shù)學(xué)語(yǔ)言或人的自然語(yǔ)言,同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有機(jī)器上通用。經(jīng)過努力,1954年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語(yǔ)言——FORTRAN問世了,40多年來,共有幾百種高級(jí)語(yǔ)言出現(xiàn),有重要意義的有幾十種,影響較大、使用較普遍的有FORTRAN、BASIC、Pascal、C、C++、VC、VB、Delphi、JAVA等。高級(jí)語(yǔ)言的開展也經(jīng)歷了從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,從面向過程到非過程化程序語(yǔ)言的過程。1969年,提出了結(jié)構(gòu)化程序設(shè)計(jì)方法,1970年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言——Pascal語(yǔ)言出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)時(shí)期的開始。80年代初開始,在軟件設(shè)計(jì)思想上,又產(chǎn)生了一次革命,其成果就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。在此之前的高級(jí)語(yǔ)言,幾乎都是面向過程的,程序的執(zhí)行是流水線似的,在一個(gè)模塊被執(zhí)行完成前,人們不能干別的事,也無法動(dòng)態(tài)地改變程序的執(zhí)行方向。這和人們?nèi)粘L幚硎挛锏姆绞绞遣灰恢碌模瑢?duì)人而言是希望發(fā)生一件事就處理一件事,也就是說,不能面向過程,而應(yīng)是面向具體的應(yīng)用功能,也就是對(duì)象〔Object〕。其方法就是軟件的集成化,如同硬件的集成電路一樣,生產(chǎn)一些通用的、封裝緊密的功能模塊,稱之為軟件集成塊,它與具體應(yīng)用無關(guān),但能相互組合,完成具體的應(yīng)用功能,同時(shí)又能重復(fù)使用。對(duì)使用者來說,只關(guān)心它的接口〔輸入量、輸出量〕及能實(shí)現(xiàn)的功能,至于如何實(shí)現(xiàn)的,那是它內(nèi)部的事,使用者完全不用關(guān)心,C++、VirtualBasic、Delphi就是典型代表。高級(jí)語(yǔ)言的下一個(gè)開展目標(biāo)是面向應(yīng)用,也就是說:只需要告訴程序你要干什么,程序就能自動(dòng)生成算法,自動(dòng)進(jìn)行處理,這就是非過程化的程序語(yǔ)言。

1.4預(yù)防計(jì)算機(jī)中毒計(jì)算機(jī)病毒是一種人為惡意編制的程序,它隱藏在計(jì)算機(jī)系統(tǒng)中,能破壞計(jì)算機(jī)的工作程序和數(shù)據(jù),使計(jì)算機(jī)不能正常運(yùn)行。計(jì)算機(jī)病毒具有傳染性、繁殖性、潛伏性和破壞性,它能利用系統(tǒng)信息資源生存、繁殖,并通過磁盤、光盤和網(wǎng)絡(luò)等途徑傳播,造成極大的危害。常用的殺毒軟件:國(guó)產(chǎn)主要有瑞星殺毒軟件、金山毒霸、江民KV2023、KILL等;國(guó)外主要有諾頓殺毒〔Norton〕、卡巴斯基〔Kaspersky〕等。1.預(yù)防方法病毒的傳染無非是兩種方式:一是網(wǎng)絡(luò),二是軟盤、光盤、優(yōu)盤等存儲(chǔ)媒介。如今網(wǎng)絡(luò)的盛行,通過互聯(lián)網(wǎng)傳遞的病毒要遠(yuǎn)遠(yuǎn)高于后者。為此,我們要特別注意在網(wǎng)上的行為,因?yàn)橛行┚W(wǎng)站很有可能就是網(wǎng)絡(luò)陷阱。①安裝防病毒軟件,并經(jīng)常進(jìn)行升級(jí)。病毒總是領(lǐng)先一步,先有病毒,然后才有反病毒軟件,所以要及時(shí)升級(jí)以便能查殺最新出現(xiàn)的計(jì)算機(jī)病毒。定期舉行全盤殺毒。②不使用盜版軟件或來歷不明的程序。不隨便下載、復(fù)制、保存Internet、U盤、軟盤或者局域網(wǎng)內(nèi)其它電腦中的程序。③對(duì)外來程序在使用前要進(jìn)行殺毒,確定無病毒后,才能使用。④平時(shí)留心病毒的開展動(dòng)態(tài),譬如流行的CIH病毒,知道了它的發(fā)作條件是每月的二十六日,那么在不能確定自己的電腦是否被CIH病毒感染的時(shí)候,最簡(jiǎn)單的做法就是通過更改電腦的日期跳過二十六日這一天。⑤除了以上預(yù)防方法外,平時(shí)還要做好重要資料的備份。以便電腦中毒后的恢復(fù)。2.病毒之后的解決方法如果不小時(shí)感染病毒了,也不要慌,試試以下方法,減少損失。①停止運(yùn)行現(xiàn)有的程序,啟動(dòng)反病毒軟件,對(duì)電腦進(jìn)行全盤掃描。②發(fā)現(xiàn)病毒后,我們一般應(yīng)利用反病毒軟件去除文件中的病毒,如果病毒不能被去除,一般應(yīng)將其刪除,然后重新安裝相應(yīng)的應(yīng)用程序。③某些病毒在Windows正常狀態(tài)下無法完全去除或者刪除,此時(shí)我們可以進(jìn)入平安模式,進(jìn)行查殺病毒,并去除或刪除病毒。④如果病毒還是無法去除或刪除,可以用“干凈〞〔既未感染病毒〕的系統(tǒng)盤,重新安裝系統(tǒng)。這可能為造成一些資料的喪失,所以在平時(shí)要注意重要資料的備份,安裝前把重要資料復(fù)制到非系統(tǒng)盤分區(qū)。1.5數(shù)制1.5.1數(shù)學(xué)預(yù)備知識(shí)1.冪的定義:an讀作a的n次方,也可以讀作a的n次冪,表示n個(gè)a相乘,即:例如:104=10*10*10*10=10000關(guān)于冪的運(yùn)算,有如下的運(yùn)算規(guī)律:〔1〕am*an=am+n;〔2〕〔am〕n=amn;〔3〕a0=1;〔4〕a-n=。1.5.2數(shù)制簡(jiǎn)介我們通常所說的數(shù)都是指十進(jìn)制數(shù)。十進(jìn)制數(shù)有如下的特點(diǎn):有10個(gè)數(shù)碼:0、1、2、3、4、5、6、7、8、9;進(jìn)位的規(guī)律是:逢十進(jìn)一。在計(jì)算機(jī)中,廣泛采用的是只有“0〞和“1〞兩個(gè)根本符號(hào)組成的二進(jìn)制數(shù),而不使用人們習(xí)慣的十進(jìn)制數(shù),原因如下:〔1〕二進(jìn)制數(shù)在物理上最容易實(shí)現(xiàn)。例如,可以只用高、低兩個(gè)電平表示"1"和“0〞,也可以用脈沖的有無或者脈沖的正負(fù)極性表示它們?!?〕二進(jìn)制數(shù)用來表示的二進(jìn)制數(shù)的編碼、計(jì)數(shù)、加減運(yùn)算規(guī)那么簡(jiǎn)單?!?〕二進(jìn)制數(shù)的兩個(gè)符號(hào)“0〞和“1〞正好與邏輯命題的兩個(gè)值"是"和"否"或稱"真"和"假"相對(duì)應(yīng),為計(jì)算機(jī)實(shí)現(xiàn)邏輯運(yùn)算和程序中的邏輯判斷提供了便利的條件。二進(jìn)制數(shù)的基數(shù)是2,只有0和1兩個(gè)數(shù)字,逢2進(jìn)1。為了進(jìn)一步了解數(shù)制的轉(zhuǎn)換及其有關(guān)的規(guī)律,我們必須學(xué)習(xí)數(shù)制有關(guān)的根本理論?;鶖?shù):數(shù)制所使用數(shù)碼的個(gè)數(shù)。例如,二進(jìn)制的基數(shù)為2;十進(jìn)制的基數(shù)為10。數(shù)碼:數(shù)制中表示根本數(shù)值大小的不同數(shù)字符號(hào)。例如,十進(jìn)制有10個(gè)數(shù)碼:0、1、2、3、4、5、6、7、8、9。位權(quán):數(shù)制中某一位上的1所表示數(shù)值的大小〔所處位置的價(jià)值〕。例如,十進(jìn)制的123,1的位權(quán)是100即102,2的位權(quán)是10即101,3的位權(quán)是1,即100。因此,(123)10=1*102+2*101+3*1001.5.3數(shù)制的表示法常用的進(jìn)位數(shù)制如下表:名稱基數(shù)數(shù)碼標(biāo)志符進(jìn)位規(guī)那么十進(jìn)制100,1,2,3,4,5,6,7,8,9D逢十進(jìn)一二進(jìn)制20,1B逢二進(jìn)一八進(jìn)制80,1,2,8,4,5,6,7Q逢八進(jìn)一十六進(jìn)制160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)H逢十六進(jìn)一不同進(jìn)位制數(shù)的表示如下:十進(jìn)制數(shù)100可表示為100D或者(100)10;二進(jìn)制數(shù)100可表示為100B或者(100)2八進(jìn)制數(shù)100可表示為100Q或者(100)8十六進(jìn)制數(shù) 100可表示為100H或者(100)161.5.4將其他數(shù)進(jìn)制轉(zhuǎn)換成十進(jìn)制數(shù)把二進(jìn)制數(shù)按照權(quán)位展開,然后各項(xiàng)相加,就得到相應(yīng)的十進(jìn)制數(shù)。將二進(jìn)制數(shù)(10110.101)2轉(zhuǎn)換成十進(jìn)制數(shù)。(10110.101)2=1*24+0*23+1*22+1*21+0*20+1*2-1+0*2-2+1*2-3

=16+4+2+0.5+0.125=〔22.625〕D1.5.5十進(jìn)制數(shù)轉(zhuǎn)換成為二進(jìn)數(shù)將十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù),必須把整數(shù)及小數(shù)局部分開進(jìn)行轉(zhuǎn)換,最后合并成為一個(gè)新的其他進(jìn)制的數(shù)。1.整數(shù)局部采用“除以2取余,逆序輸出〞的方法。例:將(25)10轉(zhuǎn)換成二進(jìn)制數(shù)。2|252|12……余數(shù)12|6……余數(shù)02|3……余數(shù)02|1……余數(shù)10……余數(shù)1按照逆序輸出的原那么,得到:(25)10=(11001)22.小數(shù)局部采用“乘以2取整,順序輸出〞的方法。例如:將(0.375)10轉(zhuǎn)換成二進(jìn)制數(shù)。0.375×2=0.75……取整00.75×2=1.5……取整10.5×2=1.0……取整1根據(jù)以上的算式,我們最后按照順序輸出的原那么得到:(0.375)10=(0.011)2【習(xí)題】一、填空題1.世界上第一臺(tái)計(jì)算機(jī)于〔〕年誕生于〔〕國(guó)的賓夕法尼亞大學(xué),它的名字叫〔〕。2.個(gè)人計(jì)算機(jī)也稱為〔〕。3.一個(gè)完整的計(jì)算機(jī)系統(tǒng),由〔〕和〔〕兩大局部組成的。4.硬件從邏輯功能上看,可以分為〔〕、〔〕、〔〕、〔〕、〔〕五個(gè)局部。5.中央處理器也稱為〔〕。6.存儲(chǔ)器由〔〕和〔〕組成。7.內(nèi)部存儲(chǔ)器〔簡(jiǎn)稱為內(nèi)存〕一般可以分為〔〕和〔〕兩種。8.計(jì)算機(jī)軟件可以分為〔〕和〔〕兩大類。9.計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的開展,經(jīng)歷了從〔〕語(yǔ)言、〔〕語(yǔ)言到〔〕語(yǔ)言的歷程。10.1970年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言——〔〕語(yǔ)言出現(xiàn)。11.用冪表示以下各數(shù):〔1〕3*3*3*3〔2〕9*9*9*9*9*9*9*912.計(jì)算:〔1〕83〔2〕163〔3〕26+23+22+2+1〔4〕44+2*43+3*42+4+113.將以下各數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)〔1〕(20314)5〔2〕(12B)1614.將以下各數(shù)轉(zhuǎn)換成二進(jìn)制數(shù):〔1〕(335)10;〔2〕(0.625)10;〔3〕(11.8125)10。二、選擇題1.與(10010100)2對(duì)應(yīng)的十進(jìn)制數(shù)是〔〕?!睞〕128;〔B〕148;〔C〕186;〔D〕236。2.十進(jìn)制數(shù)127轉(zhuǎn)換成二進(jìn)制數(shù)是〔〕?!睞〕11111111;〔B〕01111111;〔C〕10000000;〔D〕11111110。3.在一個(gè)非零無符號(hào)二進(jìn)制整數(shù)之后添加一個(gè)0,那么此數(shù)的值為原數(shù)的〔A〕4倍;〔B〕2倍;〔C〕1/2倍;〔D〕1/4倍。4.在以下四個(gè)數(shù)中,最大的數(shù)是〔〕〔A〕(73.5)10;〔B〕(1001101.01)2;〔C〕(115.1)8;〔D〕(4C.4)165.以下各式中不正確的選項(xiàng)是〔〕〔A〕(10)16=(16)10;〔B〕(10)5>(5)10;〔C〕(10)5<(5)10;〔D〕(11)2+(11)2=(110)214.計(jì)算機(jī)病毒的特點(diǎn)是〔〕〔A〕傳播性、潛伏性、易讀性與隱蔽性〔B〕破壞性、傳播性、潛伏性與平安性〔C〕傳播性、潛伏性、破壞性與隱蔽性〔D〕傳播性、潛伏性、破壞性與易讀性三、不定項(xiàng)選擇題1.第一代計(jì)算機(jī)使用的是〔〕。第二代計(jì)算機(jī)使用的是〔〕。第三代計(jì)算機(jī)使用的是〔〕。第四代計(jì)算機(jī)使用的是〔〕。A、晶體管B、電子管C、大規(guī)模、超大規(guī)模集成電路D、集成電路2.計(jì)算機(jī)病毒具有以下〔〕特性?A、傳染性B、繁殖性C、潛伏性D、破壞性3.以下是殺毒軟件的〔〕?A、瑞星B、KILLC、卡巴斯基D、金山毒霸4.〔〕語(yǔ)言,是第一代計(jì)算機(jī)語(yǔ)言。A、機(jī)器B、匯編C、高級(jí)D、解釋5.以下斷電之后仍能保存數(shù)據(jù)的有〔〕。A.存放器B.ROMC.RAMD.高速緩存6.Linux是一種()。A.繪圖軟件B.程序設(shè)計(jì)語(yǔ)言C.操作系統(tǒng)D.網(wǎng)絡(luò)瀏覽器7.CPU是()的簡(jiǎn)稱。A.硬盤B.中央處理器C.高級(jí)程序語(yǔ)言D.核心存放器8.下面()是系統(tǒng)軟件A)DOS和MISB)WPS和UNIXC)DOS和UNIXD)UNIX和Word9.以下各組設(shè)備中,全部屬于輸入設(shè)備的一組是()A)鍵盤、磁盤和打印機(jī)B)鍵盤、掃描儀和鼠標(biāo)C)鍵盤、鼠標(biāo)和顯示器D)硬盤、打印機(jī)和鍵盤10.在計(jì)算機(jī)中采用二進(jìn)制,是因?yàn)?)A)可降低硬件本錢B)兩個(gè)狀態(tài)的系統(tǒng)具有穩(wěn)定性C)二進(jìn)制的運(yùn)算法那么簡(jiǎn)單D)上述三個(gè)原因四、判斷題1.反病毒軟件總是領(lǐng)先一步,先有反病毒軟件,然后才有病毒。2.因特網(wǎng)上會(huì)傳染病毒,所以不上網(wǎng),只使用光盤,就不會(huì)感染病毒了。3.〔101011〕2=〔42〕104.1KB=1024MB5.文件的擴(kuò)展名表示文件的類型?!踩鏱mp是文本文件的擴(kuò)展名,txt是圖片文件的擴(kuò)展名等〕五、簡(jiǎn)答題1、外部存儲(chǔ)器〔簡(jiǎn)稱為外存〕主要有哪些?2、輸入設(shè)備主要有哪些?3、輸出設(shè)備主要有哪些?4、你知道的操作系統(tǒng)有哪些?5、你知道的殺毒軟件有哪些?第二章認(rèn)識(shí)PascalPASCAL語(yǔ)言也是一種計(jì)算機(jī)高級(jí)語(yǔ)言,它是瑞士蘇黎世聯(lián)邦工業(yè)大學(xué)的N.沃斯(WirthN)教授于1968年設(shè)計(jì)完成的,1971年正式發(fā)表。它的命名是為了紀(jì)念法國(guó)數(shù)學(xué)家Pascal。PASCAL語(yǔ)言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,可以用來編寫應(yīng)用程序。它又是一種系統(tǒng)程序設(shè)計(jì)語(yǔ)言,可以用來編寫順序型的系統(tǒng)軟件〔如編譯程序〕。它的功能強(qiáng)、編譯程序簡(jiǎn)單,是70年代影響最大一種算法語(yǔ)言。目前信息學(xué)奧賽Pascal語(yǔ)言規(guī)定必須使用FreePascal1.0.10及以上版本作為編譯器。FreePascal是一個(gè)32位的編譯器,理論上可以使用4GB的內(nèi)存,因此實(shí)際上幾乎可以使用系統(tǒng)中的所有剩余內(nèi)存〔除非賽題中有內(nèi)存限制〕。在本書中,我們選擇FreePascal〔2.04版〕作為編譯器,有關(guān)編程問題算法都是在這一軟件中完成編譯工作的。2.1安裝FreePascal2.1.1安裝FreePascal下載了FreePascal〔版本2.04〕后,運(yùn)行安裝文件,將出現(xiàn)“Setup–FreePascal〞的英文安裝界面。可以根據(jù)需要,按提示一步一步安裝。推薦直接點(diǎn)擊“next〞按鈕按默認(rèn)安裝。2.1.2卸載FreePascal當(dāng)Pascal系統(tǒng)文件發(fā)生錯(cuò)誤或出現(xiàn)更先進(jìn)的Pascal版本時(shí),可以先刪除老版本的系統(tǒng)程序,再安裝新版本的系統(tǒng)程序。具體操作方法是:選擇菜單:“開始所有程序FreePascaluninstallFreePascal〞后,將可見到如圖2-1所示的對(duì)話框,選擇“是〞,系統(tǒng)將開始卸載FreePascal,直到結(jié)束?!矆D2-1〕〔圖2-1〕2.1.3設(shè)置FreePascal屬性安裝FreePascal〔版本2.04,以下簡(jiǎn)稱FP〕后,在桌面上會(huì)創(chuàng)立一個(gè)快捷啟動(dòng)圖標(biāo)〔如果沒有這個(gè)快捷啟動(dòng)的圖標(biāo),可自己創(chuàng)立快捷方式〕,雙擊這個(gè)圖標(biāo)啟動(dòng)FreePascal后,往往在窗口中會(huì)看到很多中文亂碼,這是由于默認(rèn)設(shè)置不檔的原因造成的。因此,我們必須對(duì)這個(gè)軟件的工作環(huán)境進(jìn)行個(gè)性化的設(shè)置。在桌面啟動(dòng)的快捷方式右擊鼠標(biāo),在彈出的快捷菜單中選擇“屬性〞,進(jìn)入到屬性設(shè)置對(duì)話框中,切換到“選項(xiàng)〞,在其中的“當(dāng)前代碼頁(yè)〞選擇框右邊單擊鼠標(biāo),選擇其中為“437〔OEM-美國(guó)〕〞〔圖2-2〕,再單擊“確定〞按鈕后再次啟動(dòng)FreePascal,界面上便沒有中文亂碼了?!矆D2-2〕〔圖2-2〕另外,在圖2-2所示的FreePascal屬性設(shè)置對(duì)話框中,我們還可以進(jìn)行字體、布局、顏色、兼容性等多種設(shè)置。具體設(shè)置方法,可進(jìn)入各自的對(duì)話框,進(jìn)行各種設(shè)置的嘗試。如果想程序在運(yùn)行時(shí)全屏顯示,在圖2-2的“顯示選項(xiàng)〞中選擇“全屏〞,那么程序運(yùn)行時(shí)便以全屏的方式進(jìn)行顯示。2.2FreePascal使用界面〔圖2-3〕FreePascal啟動(dòng)成功后,會(huì)出現(xiàn)以下圖2-3所示窗口,由標(biāo)題欄、菜單欄、編輯區(qū)、狀態(tài)欄和滾動(dòng)條構(gòu)成?!矆D2-3〕選擇菜單:FileNew,我們便創(chuàng)立了一個(gè)新的Pascal程序窗口,如圖2-4所示?!矆D2-4〕退出FreePascal方法是:選擇主菜單File中菜單項(xiàng)Exit,或者通過鍵盤命令A(yù)LT+X,可以徹底退出Pascal,假設(shè)有未存儲(chǔ)過的內(nèi)容,系統(tǒng)會(huì)給出提示詢問是否要保存?!矆D2-4〕FreePascal共有10條主菜單,分別是:File、Edit、Search、Run、Compile、Debug、Tools、Options、Window、Helps,這些菜單中的子菜單及有關(guān)說明如下。1.File(文件)菜單序號(hào)菜單項(xiàng)說明1序號(hào)菜單項(xiàng)說明1New新建文件2Newfromtemplate由模板新建文件3Open…翻開磁盤上已有文件4reload重載5Save保存文件6Saveas…另存文件7Saveall保存所有文件8Print打印9Printsetup打印設(shè)置10Changedir…改變當(dāng)前路徑11Commandshell進(jìn)入DOSShell狀態(tài)12Exit退出〔圖2-5〕序號(hào)菜單項(xiàng)序號(hào)菜單項(xiàng)說明1Undo撤消上一步操作2Redo恢復(fù)剛撤消一步的操作3Cut將指定內(nèi)容剪切到剪貼板4Copy將指定內(nèi)容復(fù)制到剪貼板5Paste進(jìn)行粘貼6Clear刪除所選內(nèi)容7SelectAll選擇全部8Unselect取消選擇9Showclipboard顯示剪貼板內(nèi)容10CopytoWindows復(fù)制到Windows剪貼板上11PastefromWindows粘貼Windows剪貼板內(nèi)容〔圖2-6〕另外,如果我們要把Windows其他文檔上的程序復(fù)制到FreePascal中,可以使用編輯菜單中的“PastefromWindows〞命令。而在這里的“CopytoWindows〞那么是與之相反的操作:可以把程序復(fù)制到FreePascal以外的文檔中。3.Search〔搜索〕菜單序號(hào)序號(hào)菜單說明1Find…查找2Replace…替換3Searchagain重新繼續(xù)進(jìn)行查找4Gotolinenumber…按行查找5Findprocedure…查找指定過程6Objects對(duì)象7Modules模塊8Globals總體9Symbol…符號(hào)〔圖2-7〕4.Run〔運(yùn)行〕菜單序號(hào)序號(hào)菜單說明1Run運(yùn)行當(dāng)前程序2Stepover單步執(zhí)行當(dāng)前程序3Traceinto軌跡跟蹤,進(jìn)行過程內(nèi)部4GotoCursor運(yùn)行到光標(biāo)指定的行5Untilreture直到返回6RunDirectory…運(yùn)行目錄7Parameters…顯示參數(shù)對(duì)話框8Programreset將正在運(yùn)行的程序復(fù)位〔圖2-8〕5.Compile〔編譯〕菜單序號(hào)序號(hào)菜單說明1Compile編譯當(dāng)前編輯窗口程序2Make編譯生成可執(zhí)行程序3Build將程序編譯4Target…選擇編譯模式5Primaryfile…原文件6Clearprimaryfile去除原文件7Compilermessages編譯信息〔圖2-9〕序號(hào)菜單說明1序號(hào)菜單說明1Output輸出2Userscreen使用屏幕3AddWatch4Watches監(jiān)視5Breakpoint6BreakpointList7Callstack8Disassemble分解9Registers10FloatingPointUnit11VectorUnit12GDBwindow〔圖2-10〕序號(hào)菜單說明1序號(hào)菜單說明1Mode…運(yùn)行模式2Compiler…設(shè)定編譯器的各個(gè)選項(xiàng)3Memorysizes…設(shè)定可用內(nèi)存大小和堆棧大小4Linker…設(shè)置連接程序工作環(huán)境5Debugger…設(shè)置調(diào)試跟蹤程序工作環(huán)境6Directories…設(shè)置集成開發(fā)環(huán)境的工作目錄7Brower…瀏覽8Tools…工具9Environment設(shè)置系統(tǒng)的各種環(huán)境參數(shù)10Open…翻開11Save保存12Saveas…另存為〔圖2-12〕序號(hào)菜單說明1序號(hào)菜單說明1Messages信息2Gotonext跳轉(zhuǎn)到下一步3Gotoprevious跳轉(zhuǎn)到上一步4Grep尋找文件實(shí)用程序5Calculator計(jì)算機(jī)6AsciitableAscii表〔圖2-11〕9.Window〔窗口〕菜單序號(hào)序號(hào)菜單說明1Titl以并列方式顯示所有窗口2Cascade以重疊方式顯示所有窗口3Closeall關(guān)閉所有窗口4Size/Move改變窗口大小/移動(dòng)窗口位置5Zoom放大/復(fù)原當(dāng)前窗口位置6Next切換到下一個(gè)窗口7Previous切換到前一個(gè)窗口8Hide隱藏當(dāng)前窗口9Close關(guān)閉當(dāng)前窗口10List…列表11Refreshdisplay刷新顯示〔圖2-13〕序號(hào)菜單說明1序號(hào)菜單說明1Contents目錄2Index索引3Topicsearch標(biāo)題搜索4Previoustopic搜索前一個(gè)標(biāo)題5Usinghelp使用幫助6Files…文件…7About…關(guān)于…〔圖2-14〕2.3程序演示下面通過一個(gè)簡(jiǎn)單的Pascal

程序來說明如何完成一個(gè)程序的輸入、編輯、編譯、鏈接、運(yùn)行、保存等操作。程序如下:program

tuxing(input,output);var

h,k:integer;begin

for

h:=1

to

4

do

begin

write('

':h);

for

k:=1

to

6

do

write('*');

writeln

endend.下面,我們來介紹在FreePascal中錄入、編譯上面程序的方法。1.錄入程序〔圖2-15〕啟動(dòng)Free

Pascal后,選擇菜單“FileNew〞,在編輯窗口中錄入以上程序。在輸入的過程中可使用光標(biāo)鍵和刪除鍵進(jìn)行編輯操作,每行輸完后按回車鍵換行。程序輸入后,效果如圖2-15所示?!矆D2-15〕2.保存程序選擇主菜單File中的菜單項(xiàng)Save,或按快捷鍵F2,在出現(xiàn)的對(duì)話框中輸入文件名:tuxing.pas,單擊“OK〞,那么該程序就以tuxing.pas為文件名保存在當(dāng)前目錄了。3.運(yùn)行程序選擇主菜單Run中的菜單項(xiàng)Run,或按快捷鍵Ctrl+F9,那么完成程序的運(yùn)行,在Output窗口中會(huì)出現(xiàn)程序的運(yùn)行結(jié)果,按F5鍵將輸出窗口放大,以便看清所有的運(yùn)行結(jié)果,再按F5可復(fù)原窗口。該程序的運(yùn)行結(jié)果如圖2-16所示?!矆D2-16〕

也可以在運(yùn)行后通過快捷鍵Alt+F5切換到用戶屏幕,以便觀察運(yùn)行結(jié)果。再按任一鍵可返回編輯窗口。〔圖2-16〕4.編譯源程序〔圖2-17〕程序輸入以后,即可開始編譯。運(yùn)行主菜單Compile中的菜單項(xiàng)Compile,或者按快捷鍵Alt+F9,對(duì)所輸入的程序進(jìn)行編譯,此時(shí)屏幕上會(huì)顯示有關(guān)編譯信息的對(duì)話框。如圖2-17所示。〔圖2-17〕如果在編譯過程中發(fā)現(xiàn)程序有語(yǔ)法錯(cuò)誤,系統(tǒng)會(huì)提示第一個(gè)錯(cuò)誤信息。此時(shí),應(yīng)有針對(duì)性地進(jìn)行修改。修改后再重復(fù)編譯的過程,直到編譯成功?!?023.09.22講〕【習(xí)題】一、填空1.PASCAL語(yǔ)言是瑞士蘇黎世聯(lián)邦工業(yè)大學(xué)的〔〕教授于1968年設(shè)計(jì)完成的,1971年正式發(fā)表。它的命名是為了紀(jì)念法國(guó)數(shù)學(xué)家〔〕。2.對(duì)所輸入的程序進(jìn)行編譯,可以運(yùn)行主菜單Compile中的菜單項(xiàng)Compile,或者按快捷鍵〔〕。3.運(yùn)行編寫好的程序,可以選擇主菜單Run中的菜單項(xiàng)Run,或按快捷鍵〔〕。4.保存程序可以選擇主菜單File中的菜單項(xiàng)Save,或按快捷鍵〔〕。5.退出pascal系統(tǒng)可以選擇主菜單File中的菜單項(xiàng)Exit,或按快捷鍵〔〕。6.切換到用戶屏幕可以選擇主菜單Debug中的菜單項(xiàng)Userscreen,或按快捷鍵〔〕。7.實(shí)現(xiàn)復(fù)制功能可以選擇主菜單Edit中的菜單項(xiàng)Copy,或按快捷鍵〔〕。8.實(shí)現(xiàn)粘貼功能可以選擇主菜單Edit中的菜單項(xiàng)Paste,或按快捷鍵〔〕。第三章Pascal語(yǔ)言根底知識(shí)Pascal語(yǔ)言結(jié)構(gòu)合理、可靠、易檢驗(yàn),充分考慮了算法設(shè)計(jì)的模塊思想,任何一個(gè)Pascal程序都可以由順序、分支、循環(huán)三種根本結(jié)構(gòu)構(gòu)成。它具有豐富的數(shù)據(jù)類型,靈活通用的語(yǔ)句,高效的運(yùn)行結(jié)果,充分表達(dá)了結(jié)構(gòu)化程序設(shè)計(jì)的原那么。3.1關(guān)鍵字與標(biāo)識(shí)符1.根本符號(hào)(1)

字母

AZ,ab(2)

數(shù)字

09(3)

特殊符號(hào)+-*/=<><><=>=()[]{}:=·,;:‘^..#$@_〔下劃線〕注意:pascal語(yǔ)言除了能使用以上規(guī)定的根本符號(hào)外,不得使用任何其它符號(hào),例如:圓周率∏、希臘字母α、β等。如果誤用符號(hào),系統(tǒng)會(huì)給出“出錯(cuò)信息〞。字母無大小寫之分。2.關(guān)鍵字保存字是指pascal語(yǔ)言中一些有特殊含義的英文單詞〔或縮寫〕,例如前面例子中的program,var,begin,end等。這些單詞已被Pascal語(yǔ)言自己所使用,不能用于其他場(chǎng)合,故稱為關(guān)鍵字。FreePascal的關(guān)鍵字如下: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,EXPORTS,SHR,STRING,ASM,OBJECT,UNIT,CONSTRUCTOR,IMPLEMENTATION,DESTRUCTOR,USES,INHERITED,INLINE,INTERFACE,LIBRARY,XOR,SHL,PROTECTED,PUBLIC,PUBLISHED,TRY,F(xiàn)INALLY,EXCEPT,RAISE。注意:所起的文件名不能與保存字相同。在FreePascal環(huán)境中編寫程序代碼時(shí),遇到與保存字匹配的字符串,編輯器會(huì)自動(dòng)將整個(gè)字符串標(biāo)為白色,提醒用戶這是系統(tǒng)的關(guān)鍵字。3.Pascal標(biāo)識(shí)符標(biāo)識(shí)符用來表示常量、變量、類型、文件、函數(shù)、過程和程序的名字的符號(hào),必須由英文字母或下劃線開頭,后面是英文字母、數(shù)字、下劃線的任意組合。標(biāo)識(shí)符分為兩大類:〔1〕

標(biāo)準(zhǔn)標(biāo)識(shí)符標(biāo)準(zhǔn)標(biāo)識(shí)符是預(yù)先定義好的標(biāo)識(shí)符,具有確定的含義,共有39個(gè),可分為以下5類:標(biāo)準(zhǔn)常量:false,true,maxint標(biāo)準(zhǔn)類型:integer,real,char,boolean,text.標(biāo)準(zhǔn)文件:input,output標(biāo)準(zhǔn)函數(shù):abs,arctan,chr,cos,eof,eoln,exp,ln,odd,ord,pred,round,sin,sqr,

sqrt,succ,trunc標(biāo)準(zhǔn)過程:get,new,pack,page,put,read,readln,reset,rewrite,unpack,write,

writeln〔2〕自定義標(biāo)識(shí)符用戶根據(jù)自己的需要來命名的標(biāo)識(shí)符。例如:數(shù)學(xué)中的圓周就率∏可以用標(biāo)識(shí)符“pi〞表示;計(jì)算面積的程序可以命令為“mianji〞。注意:注意區(qū)分合法與非法的標(biāo)識(shí)符。如A,B,I,J,_xyz,r2d_4,MIN,X1等等,均是合法的標(biāo)識(shí)符。而3X,X-Y,X&Y,X

Y等那么不是標(biāo)識(shí)符,或稱為非法的標(biāo)識(shí)符。Pascal不區(qū)分英文字母的大小寫,認(rèn)為是同一個(gè)標(biāo)識(shí)符。但是,從易讀性的角度考慮,SetTheName或Set_the_name作為標(biāo)識(shí)符明顯要比SETTHENAME易讀。因此在編程時(shí)要養(yǎng)成好的習(xí)慣,增強(qiáng)代碼的可讀性。一個(gè)標(biāo)識(shí)符的有效長(zhǎng)度為63。不提倡將標(biāo)準(zhǔn)標(biāo)識(shí)符用作自定義標(biāo)識(shí)符。3.2Pascal的數(shù)據(jù)類型1.整型(integer)〔1〕這是Pascal中整數(shù)的數(shù)據(jù)類型,

范圍-32768~32767。標(biāo)準(zhǔn)標(biāo)識(shí)符maxint表示的就是整型值

32767。例如:123,0,-256,+234都是合法的整數(shù)。1234A,0.01,12.34都是非法的整數(shù)?!?〕Pascal還支持以下5種預(yù)定義整型類型,它們的區(qū)別在于表示數(shù)的范圍不同。如下表所示:類型數(shù)值范圍占字節(jié)數(shù)格式shortint-128..1271帶符號(hào)8位integer-32768..327672帶符號(hào)16位longint-2147483648..21474836474帶符號(hào)32位byte0..2551帶符號(hào)8位word0..655352帶符號(hào)16位Pascal規(guī)定了兩個(gè)預(yù)定義整型常量標(biāo)識(shí)符maxint和maxlonint,他們各表示確定的常數(shù)值,maxint為32767,longint為2147483647,他們的類型分別是integer和longint。2.實(shí)型一個(gè)實(shí)型數(shù)據(jù)用來存放實(shí)數(shù)。Pascal支持五種預(yù)定義實(shí)型,它們是real〔根本實(shí)型〕、single〔但精度實(shí)型〕、double〔雙精度實(shí)型〕、extended〔擴(kuò)展實(shí)型〕、comp〔裝配實(shí)型〕,TurboPascal分別用相同的名字作為他們的標(biāo)識(shí)符。每一種類型規(guī)定了相應(yīng)的實(shí)數(shù)取值范圍、所占用的內(nèi)存字節(jié)數(shù)以及它們所能到達(dá)的精度。類型數(shù)值范圍占字節(jié)數(shù)有效位數(shù)real2.9e-39..1.7e38611..12single1.5e-45..3.4e3847..8double5.0e-324..1.7e308815..16extended3.4e-4932..1.1e49321019..20comp-9.2e18..9.2e18819..20實(shí)數(shù)的表示法有兩種:十進(jìn)制表示法,如:-0.4576,123.567,-234,0科學(xué)計(jì)數(shù)法,如:1.234E-4,-3.546E12表示1.234乘10的負(fù)4次.方;-3.546乘10的12次方。3.布爾型一個(gè)布爾型數(shù)據(jù)用來存放邏輯值〔布爾值〕。布爾型的值只有兩個(gè):false和true,并且false的序號(hào)是0,true的序號(hào)是1。false和true都是預(yù)定義常數(shù)標(biāo)識(shí)符,分別表示邏輯假和邏輯真。并且true<false。boolean是布爾型的標(biāo)識(shí)符。4.字符型字符型用char作為標(biāo)識(shí)符。字符型必須用單引號(hào)括起來,字母作為字符型時(shí),大小寫是不等價(jià)的,并且字符型只允許單引號(hào)中有一個(gè)字符,否那么就是字符串。3.3常量、變量及表達(dá)式1.運(yùn)算符〔1〕算術(shù)運(yùn)算符:+、-、*、/、div、mod〔2〕關(guān)系運(yùn)算符:=,<>,<,>,<=,>=,in〔3〕邏輯運(yùn)算符:not

,and

,or〔4〕集合運(yùn)算符:+、-、*〔5〕賦值運(yùn)算符::=2.求整與求余運(yùn)算DIV是計(jì)算除法時(shí)取整數(shù)局部的商,余數(shù)不計(jì);而mod那么是求除式的余數(shù)。9÷2=4〔商〕……余數(shù)1在這種情況下,我們用以上兩個(gè)函數(shù)表示是:9div2=4〔商〕;9mod2=1〔余數(shù)〕。另一個(gè)必須注意的問題是:div與除法運(yùn)算符“/〞不同,兩者有著本質(zhì)上的區(qū)別。像上面的這個(gè)算式,用“/〞是:9/2=4.5;比擬:9div2=4,我們便不難理解這兩種運(yùn)算的區(qū)別了。3.常量在程序運(yùn)行過程中,其值不能被改變的量稱為常量。PASCAL除了maxint、true、flase三個(gè)標(biāo)準(zhǔn)常量外,用戶還可以使用常量定義語(yǔ)句定義新的常量。定義常量的語(yǔ)法格式是:const<常量標(biāo)識(shí)符>=<常量>;...<常量標(biāo)識(shí)符>=<常量>;常量標(biāo)識(shí)符的類型由定義它的常量的類型決定。例如:consta=12隱含說明a是整型;constr=3.21隱含說明r是實(shí)型常量定義局部必須以保存字const開頭,可以包含一個(gè)或幾個(gè)常量定義,而且每個(gè)常量均以分號(hào)結(jié)束。例如:constcounter:integer=0;flag:boolean=true;index:0..100=0;等。我們?cè)谇髨A的周長(zhǎng)和面積時(shí),都用到圓周率π,這個(gè)圓周率就是一個(gè)常量。在這種情況下,我們可以通過如下語(yǔ)句定義表示圓周率的變量pi:const

pi=3.1415926;

如下的常量定義是錯(cuò)誤的:const

a=100;

a,b=20;

c=100

or

50;常量a定義了兩次,a,b=20;應(yīng)該寫成b=20;c不能既表示100又表示50。4.變量變量指在程序執(zhí)行過程中可以改變值的數(shù)據(jù)。在編程中,我們必須引用一些符號(hào)來表示有關(guān)的對(duì)象或量,就象我們學(xué)習(xí)代數(shù)中假設(shè)未知數(shù)x來表示一些求知量一樣。變量是編程中必須不可少的量。變量必須先說明后再在程序中使用。變量有三個(gè)要素是:變量名、變量類型、變量值。變量:在某個(gè)程序中的運(yùn)行過程中其值可以發(fā)生改變的量。這一點(diǎn)與常量有著本質(zhì)的區(qū)別。變量聲明的語(yǔ)法格式是:var<變量標(biāo)識(shí)符列表>:<類型>;...<變量標(biāo)識(shí)符列表>:<類型>;其中,保存字var表示開始一個(gè)變量說明局部。變量標(biāo)識(shí)符列表是一個(gè)用逗號(hào)隔開的標(biāo)識(shí)符序列,冒號(hào)后面的類型是類型標(biāo)識(shí)符。每個(gè)變量說明均以分號(hào)結(jié)束。例如:Vara,b,c:integer;m,n:real;以上第一個(gè)語(yǔ)句聲明了三個(gè)整型變量:a、b、c,第二個(gè)語(yǔ)句聲明了兩個(gè)實(shí)型變量:m和n。5.表達(dá)式表達(dá)式是指由常量、變量、函數(shù)、括號(hào)、集合及運(yùn)算符聯(lián)結(jié)起來的有意義的式子。在以上的運(yùn)算符中,賦值運(yùn)算符是最為常見的,實(shí)際上就是給預(yù)變量一個(gè)具體的數(shù)值。在Pascal編程中,經(jīng)常用到。這是我們要求學(xué)生們一定要掌握的。在六種算術(shù)運(yùn)算中,+〔加法〕、-〔減法〕、*〔乘法〕這四種運(yùn)算與小學(xué)算術(shù)的運(yùn)算意義一樣,運(yùn)算的規(guī)律也是一樣的:〔1〕同級(jí)運(yùn)算從左到右計(jì)算,不同級(jí)別運(yùn)算從高到低運(yùn)算;〔2〕括號(hào)優(yōu)先級(jí)最高,從內(nèi)到外逐層降低。這里要特別強(qiáng)調(diào)的是后面的兩種運(yùn)算:div〔求整〕、mod〔求余〕。這兩個(gè)函數(shù)十分重要,下面再作進(jìn)一步的解析。(9月28日講〕3.4ASCII碼目前計(jì)算機(jī)中用得最廣泛的字符集及其編碼,是由美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)制定的ASCII碼〔AmericanStandardCodeforInformationInterchange,美國(guó)標(biāo)準(zhǔn)信息交換碼〕,它已被國(guó)際標(biāo)準(zhǔn)化組織〔ISO〕定為國(guó)際標(biāo)準(zhǔn),稱為ISO646標(biāo)準(zhǔn)。適用于所有拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。因?yàn)?位二進(jìn)制數(shù)可以表示〔21〕2種狀態(tài):0、1;而2位二進(jìn)制數(shù)可以表示〔22〕=4種狀態(tài):00、01、10、11;依次類推,7位二進(jìn)制數(shù)可以表示〔27=〕128種狀態(tài),每種狀態(tài)都唯一地編為一個(gè)7位的二進(jìn)制碼,對(duì)應(yīng)一個(gè)字符〔或控制碼〕,這些碼可以排列成一個(gè)十進(jìn)制序號(hào)0~127。所以,7位ASCII碼是用七位二進(jìn)制數(shù)進(jìn)行編碼的,可以表示128個(gè)字符。第0~32號(hào)及第127號(hào)(共34個(gè))是控制字符或通訊專用字符,如控制符:LF〔換行〕、CR〔回車〕、FF〔換頁(yè)〕、DEL〔刪除〕、BEL〔振鈴〕等;通訊專用字符:SOH〔文頭〕、EOT〔文尾〕、ACK〔確認(rèn)〕等;第33~126號(hào)(共94個(gè))是字符,其中第48~57號(hào)為0~9十個(gè)阿拉伯?dāng)?shù)字;65~90號(hào)為26個(gè)大寫英文字母,97~122號(hào)為26個(gè)小寫英文字母,其余為一些標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。為了便于查詢,以以下出ASCII碼表:ASCII碼字符ASCII碼字符ASCII碼字符ASCII碼字符0nul32Space空格64@96'1soh33!65A97a2stx34"66B98b3etx35#67C99c4eot36$68D100d5enq37%69E101e6ack38&70F102f7bel39`71G103g8bs40(72H104h9ht41)73I105i10nl42*74J106j11vt43+75K107k12ff44,76L108l13er45-77M109m14so46.78N110n15si47/79O111o16dle48080P112p17dc149181Q113q18dc250282R114r19dc351383S115s20dc452484T116t21nak53585U117u22syn54686V118v23etb55787W119w24can56888X120x25em57989Y121y26sub58:90Z122z27esc59;91[123{28fs60<92\124|29gs61=93]125}30re62>94^126~31us63?95_127del在Pascal中,我們可以通過函數(shù)來查找字符對(duì)應(yīng)的ASCII碼,反過來,我們也可以通過ASCII碼獲得對(duì)應(yīng)的字符。具體的是如下的兩個(gè)函數(shù):ord(x)返回字符x對(duì)應(yīng)的ASCII碼。例:ord(‘A’)=65ord(‘a(chǎn)’)=97另外:ord(false)=0ord(true)=1chr(x)求編號(hào)x對(duì)應(yīng)的字符。例:Chr(65)=’A’chr(97)=’a’chr(48)=’0’3.5標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)是Pascal語(yǔ)言預(yù)先定義的,它們實(shí)際上是能完成特定功能的計(jì)算功能的子程序。每個(gè)標(biāo)準(zhǔn)函數(shù)都用一個(gè)標(biāo)識(shí)符來標(biāo)識(shí),每個(gè)標(biāo)準(zhǔn)函數(shù)都能完成一個(gè)特定的功能,在程序中可以直接調(diào)用它們。TurboPascal語(yǔ)言中某些標(biāo)準(zhǔn)函數(shù)與數(shù)學(xué)中的函數(shù)有相似之處。PASCAL把常用的一些運(yùn)算定義為系統(tǒng)標(biāo)準(zhǔn)函數(shù)。這些函數(shù)如下表:序號(hào)函數(shù)含義是否要求掌握要求掌握的函數(shù)應(yīng)用舉例1Abs(x)|x|,求絕對(duì)值是Abs(-5)=52Sqr(x)X2,求數(shù)的平方是Sqr(3)=93Sqrt(x)求算術(shù)平方根否4Sin(x)正弦函數(shù)sinx否5Cos(x)余弦函數(shù)cosx否6Arctan(x)反正切函數(shù)tan-1x否7Exp(x)指數(shù)函數(shù)ex否8ln(x)自然對(duì)數(shù)lnx否9Trunc(x)將實(shí)數(shù)x的小數(shù)局部截去是Trunc(15.4)=1510Round(x)將實(shí)數(shù)x的小數(shù)局部四舍五入取整是Round(7.8)=811Int(x)函數(shù)值為x的整數(shù)局部是Int(2.4)=2,Int(-32.3)=-3212Frac(x)函數(shù)值為x的小數(shù)局部是Frac(-32.3)=-0.313ord(x)將一個(gè)字符轉(zhuǎn)換成字符序號(hào)的函數(shù)是Ord(‘b’)=9814chr(x)求ASCII碼值為x的字符是Chr(65)=A15pred(x)前趨函數(shù)是pred(5)=4pred(‘B’)=’A’16succ(x)后繼函數(shù)是succ(‘A’)=’B’succ(8)=917odd(x)邏輯判斷函數(shù),判斷x是否奇數(shù)。是Odd(5)=TRUEOdd(6)=FALSE3.6自定義函數(shù)在此之前,我們?cè)?jīng)介紹并使用了pascal提供的各種標(biāo)準(zhǔn)函數(shù),如ABS,SUCC等等,這些函數(shù)為我們編寫程序提供了很大的方便。但這些函數(shù)只是常用的根本函數(shù),編程時(shí)經(jīng)常需要自定義一些函數(shù)。1.自定義函數(shù)的一般形式function<函數(shù)名>(<形式參數(shù)表>):<類型>;{函數(shù)首部}VAR函數(shù)的變量說明;BEGIN函數(shù)體END;說明:①函數(shù)由首部與函數(shù)體兩局部組成。②函數(shù)首部以關(guān)鍵字function開頭。③函數(shù)名是用戶自定義的標(biāo)識(shí)符。④函數(shù)的類型也就是函數(shù)值的類型,所求得的函數(shù)值通過函數(shù)名傳回調(diào)用它的程序??梢?,函數(shù)的作用一般是為了求得一個(gè)值。2.函數(shù)的調(diào)用我們可以在任何與函數(shù)值類型兼容的表達(dá)式中調(diào)用函數(shù),或者說,函數(shù)調(diào)用只能出現(xiàn)在允許表達(dá)式出現(xiàn)的地方,或作為表達(dá)式的一個(gè)因子。函數(shù)調(diào)用方式與標(biāo)準(zhǔn)函數(shù)的調(diào)用方式相同。函數(shù)調(diào)用的一般格式:<函數(shù)名>或<函數(shù)名>〔實(shí)在參數(shù)表〕說明:①實(shí)在參數(shù)簡(jiǎn)稱實(shí)參。實(shí)參的個(gè)數(shù)必須與函數(shù)說明中形參的個(gè)數(shù)一致,實(shí)參的類型與形參的類型應(yīng)當(dāng)一一對(duì)應(yīng)。②調(diào)用函數(shù)時(shí),一般的,實(shí)參必須有確定的值。③函數(shù)調(diào)用的步驟為:計(jì)算實(shí)參的值,"賦給"對(duì)應(yīng)的形參;函數(shù)的編寫自己編寫一個(gè)函數(shù),它的格式如下:FUNCTION函數(shù)名〔形式參數(shù)表〕:函數(shù)類型;VAR函數(shù)的變量說明;BEGIN函數(shù)體END;我們來分析一下,一個(gè)函數(shù)的編寫可分成三部份:一是函數(shù)首部,即第一個(gè)語(yǔ)句。它必須以FUNCTION開頭,函數(shù)名是自己取的,取名的原那么是便于記憶,和文件名的取名規(guī)那么類似。形式參數(shù)〔簡(jiǎn)稱形參〕表以標(biāo)識(shí)符的形式給出,相當(dāng)于函數(shù)中的自變量。參數(shù)可以有多個(gè),也可以有多種類型。不同類型的參數(shù)之間用“;〞隔開,同類型的參數(shù)如有多個(gè),那么用“,〞隔開,在其后得加上說明。如:FUNCTIONA1〔A,B,C:INTEGER;D,E,F(xiàn):REAL〕:REAL;在最后,函數(shù)屬于哪種類型,還得表示出來。在本例中,該函數(shù)為實(shí)型。第二局部是函數(shù)的變量說明局部,對(duì)在本函數(shù)中將要用到的變量作類型說明,這一點(diǎn)和以前學(xué)的變量一樣。如果程序不用變量,那么此局部也可省掉。第三局部是函數(shù)體,本函數(shù)的功能實(shí)現(xiàn)就在于此,編寫的語(yǔ)句就在里面。例3編寫一求階乘的函數(shù)。我們給此函數(shù)取一名字就叫JS。fUNCTIONjs(n:integer):longint;vari:integer;s:longint;begins:=1;fori:=1tondos:=s*i;js:=s;end;在本例中,函數(shù)名叫JS,只有一個(gè)INTEGER型的自變量N,函數(shù)JS屬LONGINT型。在本函數(shù)中,要用到兩個(gè)變量I,S,在VAR后已加以說明。在函數(shù)體中,是一個(gè)求階乘的語(yǔ)句,但有一點(diǎn)要注意:雖然N的階乘的值在S中,但最后必須將此值賦給函數(shù)JS,此時(shí)JS不帶任何參數(shù)。在任何函數(shù)中,最后都要把最終結(jié)果賦給函數(shù)名,因?yàn)樵摵瘮?shù)的結(jié)果是靠函數(shù)名返回的。在這里,函數(shù)的參數(shù)N是一個(gè)接口參數(shù),說得更明確點(diǎn)是入口參數(shù)。如果我們調(diào)用函數(shù):JS〔3〕,那么在程序里所有有N的地方N被替代成3來計(jì)算。在這里,3就被稱為值參。又如:SQRT〔4〕,LN〔5〕,這里的4,5叫值參。而SQRT〔X〕,LN〔Y〕中的X,Y叫形參。函數(shù)的調(diào)用自定義的函數(shù)在調(diào)用前要先說明,在主程序中的位置如下:PROGRAM程序名〔INPUT,OUTPUT〕;VAR主程序變量說明;FOUNCTION函數(shù)名〔形參表〕:函數(shù)類型;VAR函數(shù)變量說明;BEGIN函數(shù)體END;{FUNCTION}BEGIN主程序END.{PROGRM}在主程序中,我們把函數(shù)的全部說明放在主程序的變量說明和程序體之間,然后在主程序的執(zhí)行局部就可以直接調(diào)用自定義函數(shù)了。注意:在函數(shù)的說明局部,我們要用形參,但在程序的執(zhí)行局部調(diào)用自定義函數(shù)時(shí),就得用值參了。例4利用前面定義的階乘函數(shù),求5!,9!。PROGRAMe59(input,outout);VARa1,a2:longint;fUNCTIONjs(n:integer):longint;vari:integer;s:longint;begins:=1;fori:=1tondos:=s*i;js:=s;end;BEGINa1:=js(5);a2:=js(9);writeln('5!=',a1,'','9!=',a2);END.在這個(gè)程序中,在主程序的BEGIN之前,我們對(duì)函數(shù)進(jìn)行了一次說明,在后面的程序中都可以象標(biāo)準(zhǔn)函數(shù)那樣直接調(diào)用自定義函數(shù)了。在FUNCTION語(yǔ)句中,用的是形參N,在主程序調(diào)用中,調(diào)用函數(shù)是用的值參,如:JS〔5〕;程序執(zhí)行到這兒會(huì)自動(dòng)將5代入前面的FUNCTION函數(shù)中,用5取代所有的N,最終將結(jié)果賦值給JS。所以在A1中一定是5!,A2中是9!。另外,函數(shù)不能單獨(dú)使用,一定要結(jié)合主程序才能運(yùn)行。如果是求1?。??。?!+...+10!,那么只需把主程序改成:A1:=0;FORJ:=1TO10DOA1:=A1+JS〔J〕;WRITELN〔A1〕;在例4中,主程序的變量A1,A2叫全程變量,它們除了主程序外,還可以在函數(shù)中出現(xiàn);在函數(shù)說明中用到的變量I,S那么是局部變量,只能在函數(shù)局部使用,一旦出了函數(shù)那么失去意義;別外要注意:全程變量和局部變量盡量不要同名。3.7Pascal程序結(jié)構(gòu)我們先來看一個(gè)實(shí)例,據(jù)此來理解Pascal語(yǔ)言的結(jié)構(gòu)。3.7.1Pascal實(shí)例分析一個(gè)三角形的底和高,計(jì)算它的面積。我們知道,三角形的面積=底*高/2,假設(shè)三角形的底是a,高是h,面積是s,那么:S=a*h/2,我們編程的思路是:利用Pascal設(shè)計(jì)一個(gè)計(jì)算程序,程序運(yùn)行時(shí)讓用戶輸入a和h,輸入后計(jì)算并顯示三角形的面積。程序如下:Programsjx(input,output);vara,h,s:real;beginreadln(a,h);s:=a*h/2writeln(‘s=’,s);〔圖3-1〕end.〔圖3-1〕在FreePascal中錄入以上程序后如圖3-1所示。在以上的程序中,Readln〔a,h〕是讀入錄入數(shù)據(jù)并賦值給a和h的語(yǔ)句。程序運(yùn)行時(shí),如圖3-2所示,等待用戶輸入a和h兩個(gè)數(shù)據(jù)。在這里我們要輸入7和8兩個(gè)數(shù)據(jù),分別賦給a和h,可以采用輸入:7空格8回車的方式〔如圖3-3〕完成輸入過程,也可以采用輸入一個(gè)數(shù)據(jù)后回車再輸入另一個(gè)數(shù)據(jù)再回車的方式完成數(shù)據(jù)的錄入工作。按照上面程序運(yùn)行并錄入以上數(shù)據(jù)之后,按Alt+F5查看運(yùn)行結(jié)果,如圖3-4所示?!矆D3-2〕〔圖3-3〕〔圖3-4〕在圖3-4顯示的運(yùn)行結(jié)果揭示的問題是:以圖3-3中我們所錄入三角形底、高分別是7、8時(shí),三角形的面積是2.8*10〔圖3-2〕〔圖3-3〕〔圖3-4〕3.7.2Pascal程序結(jié)構(gòu)從上面的程序可以看到,Pascal源程序由如下兩個(gè)主要局部構(gòu)成:1.程序首部程序首部是程序的開頭局部,由Program后接程序名及程序參數(shù)表組成,由分號(hào)結(jié)束。在以上的這個(gè)程序中,程序名sjx是用戶定義的一個(gè)標(biāo)識(shí)符,參數(shù)一般是文件的變量名,用于該程序與外界交流數(shù)據(jù),最常用的參數(shù)為input和output,在Freepascal中,參數(shù)表可以省略。2.程序體程序體是程序的主體局部,由說明局部和執(zhí)行局部組成?!?〕說明局部主要是對(duì)程序中要使用的標(biāo)號(hào)、常量、變量、類型等都要進(jìn)行聲明;〔2〕執(zhí)行局部指begin與end之間的局部,是程序的核心。最后的end后面必須加“.〞,表示程序結(jié)束?!揪毩?xí)】一、選擇題:1.下面選項(xiàng)中屬于非法的用戶自定義標(biāo)識(shí)符的是〔〕。〔A〕dir;〔B〕z12;〔C〕file;〔D〕list。2.以下選項(xiàng)中能夠用作用戶自定義標(biāo)識(shí)符的是〔〕?!睞〕TYPE;〔B〕π;〔C〕SET;〔D〕trust。3.以下符號(hào)________是標(biāo)識(shí)符。〔A〕2scaa;〔B〕Firsttry;〔C〕name-or-hers;〔D〕number

one4.以下錯(cuò)誤的pascal實(shí)型數(shù)是__________?!玻痢?;〔B〕2.34E2;〔C〕23E1;〔D〕56.E5。5.以下〔〕是pascal合法的數(shù)據(jù)。〔A〕73e4;〔B〕-e5;〔C〕.21;〔D〕1,717,158。6.表達(dá)式4+3MOD8*3的運(yùn)算結(jié)果為〔〕:〔A〕13;〔B〕16;〔C〕19;〔D〕21。7.表達(dá)式

(

23

div

3

mod

4

)

的值是〔〕:〔A〕0

;〔B〕2;〔C〕3;〔D〕7。8.設(shè)a,b,c,d,e均為整型變量,且a=6,b=15,c=8,d=9,e=4,那么表達(dá)式a+b

div

c*d

mod

e的值是〔〕:〔A〕7;〔B〕-6;〔C〕11;〔D〕2。9.以下中錯(cuò)誤的Pascal表達(dá)式是〔〕:〔A〕10e6*3.7;〔B〕7

div

15;〔C〕20

div

6/5.0;〔D〕4.0

div

2。10.以下中合法的關(guān)系表達(dá)式是〔〕。

A、’a’<99

B、23.5<20

C、12<32

and

56>46

D、5<x<1411.以下屬于合法的常量定義的是〔〕:〔A〕const

x:=0.34;〔B〕const

a:integer=1;〔C〕const

pi=3.14;〔D〕const

bol=bol+1;12.以下中合法的變量說明是〔〕:〔A〕var

r:real;

num:200;〔B〕var

a=real;

i=integer;〔C〕dim

red,white:integer;〔D〕var

i1,i2:integer;

red,white:real;13.以下的函數(shù)值是整型的是〔〕〔A〕succ(false);〔B〕ord(true);〔C〕chr(23);〔D〕odd(98)。14.把整數(shù)5轉(zhuǎn)換為字符’5’的表達(dá)式是〔〕〔A〕chr(5)-ord(‘0’);〔B〕chr(5-ord(‘0’));〔C〕chr(5+ord(‘0’));〔D〕chr(5+ord(0))。15.下面表達(dá)式的結(jié)果值為-100的是:〔A〕trunc(-99.9);〔B〕trunc(-100-0.1);〔C〕-round(-99.9));〔D〕-round(trunc(-100-0.1))。16.設(shè)x是實(shí)型變量,以下表達(dá)式能將x四舍五入后保存兩位小數(shù)的是:〔A〕round(x);〔B〕round(x)/100;〔C〕round(x*100.0)/100;〔D〕round(x*1000.00)/1000.00。17.表達(dá)式odd(k)

or

odd(k+1)的值是〔〕:〔A〕True;〔B〕False;〔C〕k;〔D〕k+1。18.設(shè)有一函數(shù)定義如下:FUNCTIONhigh(x,y:integer):integer;BEGINhigh:=x-(x+y)DIV(x-y)END;執(zhí)行語(yǔ)句t:=high(4,high(6,high(4,1)))后,變量t的值是〔〕〔A〕3;〔B〕-3;〔C〕1;〔D〕0。二、填空題1.指出以下數(shù)據(jù)屬于什么類型:①2340〔〕②2.45E+3〔〕③’A’〔〕④TRUE〔〕⑤0.89〔〕2.計(jì)算:〔1〕11/4+(3*2-5)/2=_________〔2〕33div7=_________〔3〕99mod22=_________〔4〕-4

div

3

=_________3.把改寫成PASCAL表達(dá)式是______________________。4.對(duì)下面的符號(hào)進(jìn)行分類,哪些是保存字,哪些是標(biāo)準(zhǔn)標(biāo)識(shí)符?Const

real

and

case

text

absDo

in

char

new

input

thenEnd

true

cos

get

ord

to5.計(jì)算:〔1〕ord(‘m’)=________;〔2〕chr(61)=________。三、思考題1.取整函數(shù)int與截?cái)嗳≌瘮?shù)trunc有什么區(qū)別?舉例說明。2.怎樣利用mod函數(shù)判斷一個(gè)數(shù)x是否是奇數(shù)?偶數(shù)又怎樣進(jìn)行判斷?四、程序題1.編程計(jì)算:12+22+32+42+……+1002的值。第四章Pascal簡(jiǎn)單語(yǔ)句4.1賦值語(yǔ)句對(duì)程序已經(jīng)創(chuàng)立的變量,沒有數(shù)據(jù)是不能進(jìn)行計(jì)算的。我們通常使用賦值語(yǔ)句來給變量提供數(shù)據(jù)。程序中所進(jìn)行的各種運(yùn)算,大多數(shù)是在賦值語(yǔ)句中實(shí)現(xiàn)的。1.賦值語(yǔ)句的一般格式變量名:=表達(dá)式變量名:=表達(dá)式其中“:=〞稱為賦值號(hào)。例1:常用賦值舉例如下:語(yǔ)句說明a:=3把3的數(shù)值賦給ab:=a*c+12把a(bǔ)*c+12的值賦給bb:=b+1把b+1的值再賦給b這個(gè)變量,即累加,相當(dāng)于在b的根底上再加1。例2:以下賦值語(yǔ)句都是錯(cuò)誤的:語(yǔ)句說明a:=b:=1不能有兩個(gè)賦值號(hào)在一個(gè)語(yǔ)句中c+2:=4賦值號(hào)左邊不能是表達(dá)式d=3少了冒號(hào)2.執(zhí)行過程計(jì)算機(jī)先計(jì)算賦值號(hào)右邊表達(dá)式的值,然后將表達(dá)式的值賦給變量名代表的變量。因此,賦值號(hào)右邊表達(dá)式必須要有

溫馨提示

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