資源描述:
《C++高級(jí)語言C++程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、1.1程序設(shè)計(jì)與程序設(shè)計(jì)語言1第一章緒論1.1程序設(shè)計(jì)與程序設(shè)計(jì)語言半個(gè)多世紀(jì)以來,計(jì)算機(jī)技術(shù)無論是作為科學(xué)學(xué)科還是作為現(xiàn)代產(chǎn)業(yè),已從一顆幼苗成長為枝繁葉茂的參天大樹?;仡櫰浒l(fā)展歷程,計(jì)算機(jī)科學(xué)與工程的發(fā)展(包括“網(wǎng)絡(luò)時(shí)代”的今天)一直是圍繞著程序設(shè)計(jì)這個(gè)中心課題進(jìn)行的。1.1.1計(jì)算機(jī)與程序設(shè)計(jì)計(jì)算機(jī)也許是廿世紀(jì)人類帶給廿一世紀(jì)的最有價(jià)值的禮物,是人類文明歷史上最偉大的發(fā)明之一,現(xiàn)在估計(jì)它對(duì)人類生活將會(huì)產(chǎn)生多么大的影響也許還為時(shí)尚早。不過我們總是能夠把計(jì)算機(jī)與人類其它偉大發(fā)明,如飛機(jī)、電燈、汽車、電視機(jī)等等相比較,從其差別中可以感到它的威力、影響和壯美前景。計(jì)算機(jī)與其它發(fā)
2、明的主要差別是:·人類的發(fā)明都是對(duì)自己的器官的延長或替代,別的發(fā)明都可歸結(jié)為人的四肢和五官的延長或替代;而計(jì)算機(jī)則是人類大腦功能的延長或某種替代,所以被稱為“電腦”?!と祟惖陌l(fā)明可以應(yīng)用在各個(gè)不同的局部領(lǐng)域,計(jì)算機(jī)與眾不同之處在于它可以應(yīng)用在幾乎所有的人類活動(dòng)的領(lǐng)域。目前,計(jì)算機(jī)的這兩個(gè)特征還在發(fā)展之中,計(jì)算機(jī)可以在怎樣的程度上延長或代替大腦的活動(dòng),計(jì)算機(jī)可以在何種程度上被廣泛而深入地應(yīng)用于各個(gè)領(lǐng)域,誰也不能指出一個(gè)“到頂”不再發(fā)展的時(shí)間,不過我們現(xiàn)在可以指出的是,使計(jì)算機(jī)具有如此影響力的根本原因是,計(jì)算機(jī)不是一個(gè)一次性的直接服務(wù)產(chǎn)品,它為人類服務(wù)是有條件的,這個(gè)條件就是程
3、序設(shè)計(jì)。沒有程序和程序設(shè)計(jì),計(jì)算機(jī)可以說是一堆廢物,也可以換一個(gè)方法說:程序(軟件)是計(jì)算機(jī)的必要組成部分。計(jì)算機(jī)首先要求人們不斷地在程序設(shè)計(jì)上付出大量的創(chuàng)造性勞動(dòng),然后才能享受到它的服務(wù)。2第一章緒論計(jì)算機(jī)本身是人類智慧的產(chǎn)物,它的誕生又導(dǎo)致了人們投入十倍、百倍的精力和智慧用于程序設(shè)計(jì)和軟件開發(fā),從而又引發(fā)出無窮無盡的新的發(fā)明創(chuàng)造。有關(guān)計(jì)算機(jī)科學(xué)與技術(shù)的大部分研究工作都是圍繞程序設(shè)計(jì)進(jìn)行的,特別是形勢(shì)發(fā)展到今天,新型計(jì)算機(jī)本身(主要指計(jì)算機(jī)硬件核心的芯片)的設(shè)計(jì)也歸結(jié)為使用高級(jí)硬件描述語言的“程序設(shè)計(jì)”,所以也可以說整個(gè)計(jì)算機(jī)產(chǎn)業(yè)(硬件和軟件的研究、設(shè)計(jì)和生產(chǎn))就是在進(jìn)行
4、程序的設(shè)計(jì)與開發(fā)。因此計(jì)算機(jī)專家和專業(yè)人員的培養(yǎng)和訓(xùn)練的最重要任務(wù)就是讓學(xué)生掌握程序設(shè)計(jì)及其相關(guān)理論的研究和開發(fā)能力。其實(shí),把計(jì)算機(jī)比作電視機(jī)或電冰箱并不恰當(dāng),它更像是人所馴養(yǎng)的一匹馬,能按照人的指令去完成各種任務(wù),所謂程序,就是要計(jì)算機(jī)完成某一任務(wù)所規(guī)定的一系列動(dòng)作步驟。計(jì)算機(jī)好像是唯人的命令是從的仆人,嚴(yán)格地按照程序規(guī)定的步驟完成任務(wù)。當(dāng)然,計(jì)算機(jī)程序不是簡(jiǎn)單的幾條或幾十條命令放在一起,現(xiàn)代的計(jì)算機(jī)每秒鐘可以執(zhí)行成千上萬條指令(目前,最快的計(jì)算機(jī)的峰值速度可達(dá)每秒鐘處理35萬億條指令,現(xiàn)在人們正在研制千萬億次的P級(jí)高性能計(jì)算機(jī))。因此,計(jì)算機(jī)程序規(guī)模很大,內(nèi)容十分復(fù)雜。
5、為計(jì)算機(jī)編程序是一種非常復(fù)雜,具有挑戰(zhàn)性的工作。也可以說,自計(jì)算機(jī)問世的半個(gè)世紀(jì)以來,人們都是在研究設(shè)計(jì)各種各樣的程序,使計(jì)算機(jī)完成各種各樣的任務(wù)。1946年美國的Mauchly和Eckert研制的第一臺(tái)電腦ENIAC上應(yīng)用的程序是用來計(jì)算火炮的彈道函數(shù)的。微軟公司開發(fā)的Windows系列是一種用來管理計(jì)算機(jī)資源的圖形界面操作系統(tǒng),它也是一個(gè)大規(guī)模的程序。這個(gè)程序已為開發(fā)商創(chuàng)造了數(shù)百億美元的財(cái)富。1997年5月份,另一個(gè)計(jì)算機(jī)程序的開發(fā)也引起了新聞界的注意,這就是擊敗了國際象棋世界冠軍卡斯帕羅夫的計(jì)算機(jī)程序“DeeperBlue”(“超藍(lán)”)。這是一個(gè)能夠下棋的程序,它以4
6、:2擊敗了當(dāng)代最強(qiáng)的國際象棋大師,贏得了70萬美元的獎(jiǎng)金。(實(shí)際上,IBM公司為開發(fā)“DeeperBlue”的投入比這筆獎(jiǎng)金要多得多。)因此,程序設(shè)計(jì)是一件工作量永無止境,極其困難復(fù)雜而又富有魅力和創(chuàng)造樂趣的工作。這樣一項(xiàng)職業(yè),每年都吸引著數(shù)以十萬計(jì)的優(yōu)秀人才投入其中,容納下他們的全部智慧、想象力和創(chuàng)造性的工作,換來了計(jì)算機(jī)產(chǎn)業(yè)和計(jì)算學(xué)科的日新月異的發(fā)展。1.1.2程序設(shè)計(jì)語言,從低級(jí)到高級(jí)程序設(shè)計(jì)的任務(wù)就是用計(jì)算機(jī)懂得的語言即程序設(shè)計(jì)語言編寫程序,然后交給它去執(zhí)行。1.1程序設(shè)計(jì)與程序設(shè)計(jì)語言31.計(jì)算機(jī)指令系統(tǒng)嚴(yán)格地說,一臺(tái)“純粹”的計(jì)算機(jī)(或稱“裸機(jī)”)并沒有特別高超
7、的本領(lǐng),必須由人通過“程序”指揮它完成各種任務(wù)。·計(jì)算機(jī)本身只會(huì)完成幾十種(或一百多種)不同的簡(jiǎn)單“動(dòng)作”,例如把內(nèi)存的某地址的數(shù)取到某寄存器;把某地址的兩個(gè)數(shù)相加送到某寄存器;判斷某個(gè)值是否為0等等?!び?jì)算機(jī)設(shè)計(jì)者把計(jì)算機(jī)可以完成的動(dòng)作編輯成一個(gè)指令表,每種動(dòng)作賦予一個(gè)二進(jìn)制代碼,并為機(jī)器的每種動(dòng)作設(shè)計(jì)一種通用的格式:由指令碼和內(nèi)存地址組成的指令。一條指令就是一個(gè)固定長度的由指令碼和地址碼組成的二進(jìn)制位串,這就是計(jì)算機(jī)唯一可以讀懂的語言。一般稱作機(jī)器語言?!こ绦騿T把要計(jì)算機(jī)完成的任務(wù)分解為一系列其指令表(或指令系