第二章程序設(shè)計(jì)概念_第1頁(yè)
第二章程序設(shè)計(jì)概念_第2頁(yè)
第二章程序設(shè)計(jì)概念_第3頁(yè)
第二章程序設(shè)計(jì)概念_第4頁(yè)
第二章程序設(shè)計(jì)概念_第5頁(yè)
已閱讀5頁(yè),還剩103頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章程序設(shè)計(jì)概念解決問(wèn)題的一般概念日常生活問(wèn)題的解決A.明確問(wèn)題B.理解問(wèn)題C.尋找備選方案D.從備選方案列表中找出最好的解決方案E.列出所選擇的解決方案的指令F.評(píng)價(jià)解決方案計(jì)算機(jī)中的問(wèn)題計(jì)算機(jī)并不能解決人類所面臨所有問(wèn)題1算法問(wèn)題:主要執(zhí)行非常困難和耗時(shí)的數(shù)據(jù)計(jì)算,如微分問(wèn)題,地球軌跡,10000名字排序2啟發(fā)式問(wèn)題:人工智能領(lǐng)域,下象棋,打牌1算法方案:可以通過(guò)一系列明確的動(dòng)作來(lái)解決.2啟發(fā)式方案:需具有相應(yīng)的知識(shí)和經(jīng)驗(yàn),經(jīng)過(guò)不斷的嘗試和失敗才能達(dá)到最終目標(biāo)。1計(jì)算型如數(shù)學(xué)計(jì)算過(guò)程,大多數(shù)學(xué)問(wèn)題都是計(jì)算型2

邏輯型如包含關(guān)系或邏輯處理的問(wèn)題3反復(fù)型反復(fù)執(zhí)行一組數(shù)學(xué)型或邏輯型指令的問(wèn)題,大多啟發(fā)式問(wèn)題都屬于反復(fù)型。計(jì)算機(jī)解決問(wèn)題的類型計(jì)算機(jī)解決問(wèn)題的基本過(guò)程:

分析問(wèn)題設(shè)計(jì)算法調(diào)試程序編寫(xiě)程序檢測(cè)結(jié)果解決問(wèn)題的難點(diǎn):

人計(jì)算機(jī)編寫(xiě)指令算法計(jì)算機(jī)解決的任何問(wèn)題都可以通過(guò)按特定順序執(zhí)行一系列操作來(lái)完成,對(duì)操作的描述就是算法(Algorithm)。算法包括了執(zhí)行的操作和執(zhí)行操作的順序。李開(kāi)復(fù):算法的力量

算法是計(jì)算機(jī)科學(xué)領(lǐng)域最重要的基石之一,但卻受到了國(guó)內(nèi)一些程序員的冷落。許多學(xué)生看到一些公司在招聘時(shí)要求的編程語(yǔ)言五花八門(mén)就產(chǎn)生了一種誤解,認(rèn)為學(xué)計(jì)算機(jī)就是學(xué)各種編程語(yǔ)言,或者認(rèn)為,學(xué)習(xí)最新的語(yǔ)言、技術(shù)、標(biāo)準(zhǔn)就是最好的鋪路方法。其實(shí)大家都被這些公司誤導(dǎo)了。編程語(yǔ)言雖然該學(xué),但是學(xué)習(xí)計(jì)算機(jī)算法和理論更重要,因?yàn)橛?jì)算機(jī)語(yǔ)言和開(kāi)發(fā)平臺(tái)日新月異,但萬(wàn)變不離其宗的是那些算法和理論,例如數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理、計(jì)算機(jī)體系結(jié)構(gòu)、關(guān)系型數(shù)據(jù)庫(kù)原理等等。整天趕時(shí)髦的人最后只懂得招式,沒(méi)有功力,是不可能成為高手的。用流程圖表示求解下列問(wèn)題的算法。

求1~100的積YN開(kāi)始結(jié)束1=>i1=>productProduct*i=>producti+1=>ii<=100輸出product開(kāi)始結(jié)束1=>i0=>sumsum+i=>sumi+1=>ii<=100YN輸出sum計(jì)算機(jī)中表示的算法:一個(gè)逐步的指令序列,用來(lái)描述怎樣執(zhí)行操作以產(chǎn)生期望的結(jié)果。算法體現(xiàn)了解決問(wèn)題的步驟,一旦選定算法,就要用計(jì)算機(jī)語(yǔ)言編寫(xiě)程序(生成代碼)。

把算法翻譯成計(jì)算機(jī)認(rèn)識(shí)的命令程序程序是為完成一項(xiàng)特定任務(wù)而用計(jì)算機(jī)語(yǔ)言編寫(xiě)的一組指令序列。編寫(xiě)程序就是指示計(jì)算機(jī)完成特定的任務(wù)或解決特定的問(wèn)題。程序就是計(jì)算機(jī)的駕駛員操作碼

操作數(shù)

數(shù)據(jù)傳送指令數(shù)據(jù)處理指令程序控制指令輸入輸出指令

其它指令

IfGoto……+-×÷AndOr……CPU內(nèi)存I/O設(shè)備主機(jī)對(duì)計(jì)算機(jī)的硬件進(jìn)行管理等指令

結(jié)構(gòu)分類指令:用來(lái)規(guī)定計(jì)算機(jī)的一個(gè)基本操作的二進(jìn)制代碼。#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;do{sum=sum+i;i=i+1;}while(i<=100);cout<<sum<<endl;return0;}C語(yǔ)言編寫(xiě)的程序開(kāi)始結(jié)束1=>i0=>sumsum+i=>sumi+1=>ii<=100YN算法的流程圖#include<iostream>usingnamespacestd;intmain(){inti=1,product=1;do{product=product*i;i=i+1;}while(i<=100);cout<<product<<endl;return0;}#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;do{sum=sum+i;i=i+1;}while(i<=100);cout<<sum<<endl;return0;}求積求和不是所有的算法都能編寫(xiě)成計(jì)算機(jī)可執(zhí)行的程序。計(jì)算機(jī)算法特征:有窮性、確定性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出、有效性。計(jì)算機(jī)不能容忍算法的多義性。程序員的難點(diǎn)?廣大的學(xué)生上網(wǎng)成癮如患絕癥。編寫(xiě)程序的前期工作1、分析問(wèn)題a.確定期望的輸出b.確定輸入項(xiàng)目c.列出相關(guān)輸入和輸出的公式d.執(zhí)行手工計(jì)算2.選擇一個(gè)全面解決問(wèn)題的算法3.編寫(xiě)程序4.測(cè)試?yán)纾簣A的周長(zhǎng)C可由公式C=2πr確定,其中π值3.1415,r是圓的半徑。利用這個(gè)公式,計(jì)算半徑是65.0m的圓的周長(zhǎng)。a.確定期望的輸出:圓的周長(zhǎng)b.確定輸入項(xiàng)目:半徑c.列出相關(guān)輸入和輸出的公式:C=2πrd.執(zhí)行手工計(jì)算:給一個(gè)半徑,用該公式計(jì)算開(kāi)始結(jié)束設(shè)置半徑r值為2周長(zhǎng)C=2πr

輸出周長(zhǎng)#include<iostream>usingnamespacestd;intmain(){floatr,C;//聲明輸入和輸出項(xiàng)目r=65.0;//設(shè)置半徑的值

C=2*3.1415*r;//計(jì)算周長(zhǎng)(輸出)

cout<<“圓的周長(zhǎng):”<<C<<endl;return0;}編寫(xiě)程序好的程序設(shè)計(jì)方法才能寫(xiě)出優(yōu)秀的代碼。把選擇好的算法翻譯成C語(yǔ)言的過(guò)程稱為程序設(shè)計(jì)。程序設(shè)計(jì)方法

一、結(jié)構(gòu)化程序設(shè)計(jì)方法二、面向?qū)ο蟮姆椒ńY(jié)構(gòu)化程序設(shè)計(jì)方法程序的目的:用于數(shù)學(xué)計(jì)算主要工作:設(shè)計(jì)求解問(wèn)題的過(guò)程缺點(diǎn):對(duì)于龐大、復(fù)雜的程序難以開(kāi)發(fā)和維護(hù)設(shè)計(jì)思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu):按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹(shù)狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡(jiǎn)單,功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實(shí)現(xiàn)的具體方法是使用子程序。優(yōu)點(diǎn):有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開(kāi)發(fā)和維護(hù)。缺點(diǎn):可重用性差、數(shù)據(jù)安全性差、難以開(kāi)發(fā)大型軟件和圖形界面的應(yīng)用軟件把數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程分離為相互獨(dú)立的實(shí)體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過(guò)程都要進(jìn)行相應(yīng)的修改。每一種相對(duì)于老問(wèn)題的新方法都要帶來(lái)額外的開(kāi)銷。圖形用戶界面的應(yīng)用程序,很難用過(guò)程來(lái)描述和實(shí)現(xiàn),開(kāi)發(fā)和維護(hù)也都很困難。面向?qū)ο蟮姆椒▽?shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相互依存、不可分離的整體——對(duì)象。對(duì)同類型對(duì)象抽象出其共性,形成類。類通過(guò)一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系。對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行通訊。優(yōu)點(diǎn):程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過(guò)繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開(kāi)發(fā)和維護(hù)都更為方便。根據(jù)程序設(shè)計(jì)方法選擇合適的程序設(shè)計(jì)語(yǔ)言

計(jì)算機(jī)語(yǔ)言的發(fā)展第一臺(tái)可編程的計(jì)算機(jī)是1822年由英國(guó)物理學(xué)家和數(shù)學(xué)家CharlesBabbage(查爾斯.巴比奇)發(fā)明的,AdaByron(艾達(dá).拜倫)為這臺(tái)機(jī)器開(kāi)發(fā)過(guò)一組指令。可惜,這臺(tái)機(jī)器沒(méi)有完成。但可編程的機(jī)器的概念誕生了。Ada

Auausta伯爵夫人,(詩(shī)人拜倫之女)第一位計(jì)算機(jī)程序員巴貝奇,CharlesBabbage(1792~1871)

英國(guó)數(shù)學(xué)家。1792年12月26日生于英國(guó)德文郡,1871年10月18日卒于倫敦。巴貝奇于1810年入劍橋大學(xué)學(xué)習(xí),后為該校數(shù)學(xué)教授。1816年被選為英國(guó)皇家學(xué)會(huì)會(huì)員。1812年巴貝奇開(kāi)始研究差分機(jī),1822年制成一臺(tái)可以運(yùn)轉(zhuǎn)的小型樣機(jī)。它是一臺(tái)專用的加法機(jī),在計(jì)算過(guò)程中不用人干預(yù)便可自動(dòng)進(jìn)行計(jì)算。巴貝奇在1832年提出了分析機(jī)的設(shè)想,把程序控制引入計(jì)算機(jī)。但是由于當(dāng)時(shí)技術(shù)和經(jīng)費(fèi)等原因未能研制成功。

1834年,Charles

Babbage發(fā)明解析機(jī)(Analytical

Engine),首度提出近似現(xiàn)代電腦組織的觀念。雖因機(jī)器結(jié)構(gòu)太復(fù)雜,非當(dāng)時(shí)技術(shù)所能制造。但解析機(jī)的設(shè)計(jì)理念和Babbage的程式構(gòu)想,卻開(kāi)啟了近代計(jì)算機(jī)的先河。

1937年,美國(guó)科學(xué)家制造了一臺(tái)機(jī)器(稱為ABC),但需要人配合才能執(zhí)行指令。1939年,賓夕法尼亞大學(xué)的約翰.馬茨里(JohnW.Mauchly)博士開(kāi)始研制一種稱為電子數(shù)字積分計(jì)算機(jī)ENIIAC(ElectricalNumericalIntegratorandComputer),直到1946年才完成。

第一臺(tái)電子計(jì)算機(jī)

(ENIAC,ElectronicNumericalIntegratorAndCalculator)5000次加法/秒重量28噸占地170m218800只電子管1500個(gè)繼電器功率150KW計(jì)算機(jī)語(yǔ)言的分類計(jì)算機(jī)語(yǔ)言機(jī)器語(yǔ)言低級(jí)語(yǔ)言高級(jí)語(yǔ)言匯編語(yǔ)言C,C++,DELPHI已知基本工資(basepay)和加班工資(overpay),計(jì)算總工資(pays)。我們的算法:basepay+overpay=>pays機(jī)器編碼:11000000000000000000010000000000101111000000000000000010000000000011匯編(不同機(jī)器類型,編碼不同):LOADbasepayADDoverpaySTOREpays高級(jí)語(yǔ)言編碼(C語(yǔ)言源代碼)pays=basepay+overpay;機(jī)器語(yǔ)言由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言稱為機(jī)器語(yǔ)言。匯編語(yǔ)言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。機(jī)器語(yǔ)言由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言稱為機(jī)器語(yǔ)言。匯編語(yǔ)言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。計(jì)算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語(yǔ)言來(lái)編寫(xiě)程序。這一階段,在人類的自然語(yǔ)言和計(jì)算機(jī)編程語(yǔ)言之間存在著巨大的鴻溝。機(jī)器語(yǔ)言由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言稱為機(jī)器語(yǔ)言。匯編語(yǔ)言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。計(jì)算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語(yǔ)言來(lái)編寫(xiě)程序。這一階段,在人類的自然語(yǔ)言和計(jì)算機(jī)編程語(yǔ)言之間存在著巨大的鴻溝。此時(shí)編程語(yǔ)言與人類自然語(yǔ)言間的鴻溝略有縮小,但仍與人類的思維相差甚遠(yuǎn)。因?yàn)樗某橄髮哟翁?,程序員需要考慮大量的機(jī)器細(xì)節(jié)。高級(jí)語(yǔ)言屏蔽了機(jī)器的細(xì)節(jié),提高了語(yǔ)言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語(yǔ)句。這使得在書(shū)寫(xiě)程序時(shí)可以聯(lián)系到程序所描述的具體事物。IBMForTranPascalAdaCC++Jave高級(jí)語(yǔ)言屏蔽了機(jī)器的細(xì)節(jié),提高了語(yǔ)言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語(yǔ)句。這使得在書(shū)寫(xiě)程序時(shí)可以聯(lián)系到程序所描述的具體事物。C是面向過(guò)程的高級(jí)語(yǔ)言C++是面向?qū)ο蟮母呒?jí)語(yǔ)言

計(jì)算機(jī)同人類解決問(wèn)題一樣,必須了解問(wèn)題域,找出問(wèn)題中相關(guān)的數(shù)據(jù)、未組織要素、已組織要素、信息,這些信息和數(shù)據(jù)是計(jì)算機(jī)解決問(wèn)題的工具,是處理過(guò)程中用到的數(shù)據(jù)。在解決問(wèn)題時(shí),計(jì)算機(jī)首先要把問(wèn)題中所需要的數(shù)據(jù)和要執(zhí)行的程序存儲(chǔ)到計(jì)算機(jī)的內(nèi)存(主存儲(chǔ)器)中。

存儲(chǔ)器的種類存儲(chǔ)器是計(jì)算機(jī)的記憶部件,負(fù)責(zé)存儲(chǔ)程序和數(shù)據(jù)。存儲(chǔ)器分兩大類:主存儲(chǔ)器(內(nèi)存)和輔助存儲(chǔ)器(外存)。主存儲(chǔ)器采用的是半導(dǎo)體存儲(chǔ)器,其特點(diǎn)是:存取數(shù)據(jù)速度快,可隨機(jī)存取,體積小,功耗低。內(nèi)存容量有限。主存儲(chǔ)器(內(nèi)存)又分為隨機(jī)存儲(chǔ)器RAM和只讀存儲(chǔ)器ROM。ROM(ReadOnlyMemory)主要用來(lái)存放固定不變的程序、數(shù)據(jù)系統(tǒng)軟件,如BIOS程序。這種存儲(chǔ)器中的信息只能讀出而不能隨意寫(xiě)入。斷電后所存數(shù)據(jù)不會(huì)改變(具有非易失性)。RAM(RandomAccessMemory)是一種隨機(jī)訪問(wèn)的可讀寫(xiě)存儲(chǔ)器。在計(jì)算機(jī)斷電后RAM中的信息會(huì)丟失(具有易失性)。RAM存儲(chǔ)器分為:靜態(tài)RAM和動(dòng)態(tài)RAM。程序執(zhí)行時(shí),程序和數(shù)據(jù)都存儲(chǔ)在RAM中。CPUCPU內(nèi)部結(jié)構(gòu)Cache計(jì)算機(jī)的存儲(chǔ)程序工作原理

計(jì)算機(jī)利用主存儲(chǔ)器(主存)存放需執(zhí)行的程序,中央處理器依次從主存中取出每一條指令,并經(jīng)過(guò)分析后加以執(zhí)行,直到全部指令執(zhí)行完成。不論指令還是數(shù)據(jù),若想存入計(jì)算機(jī)中,都必須采用二進(jìn)制編碼形式,在二進(jìn)制系統(tǒng)中只有兩個(gè)數(shù)0和1,即便是多媒體信息(聲音、圖形等)也必須轉(zhuǎn)換成二進(jìn)制的形式,才能存入計(jì)算機(jī).二進(jìn)制概念128瓦32瓦64瓦16瓦8瓦4瓦1瓦2瓦11111000二進(jìn)制數(shù)制,由18世紀(jì)德國(guó)數(shù)理哲學(xué)大師萊布尼茲發(fā)現(xiàn)。二進(jìn)制具有以下優(yōu)勢(shì):1.易于物理實(shí)現(xiàn):因?yàn)榫哂卸N穩(wěn)定狀態(tài)的物理器件是很多的,如門(mén)電路的導(dǎo)通與截止,電壓的高與低,而它們恰好對(duì)應(yīng)表示1和0兩個(gè)符號(hào)。假如采用十進(jìn)制,要制造具有十種穩(wěn)定狀態(tài)的物理電路,那是非常困難的。2.二進(jìn)制數(shù)運(yùn)算簡(jiǎn)單:數(shù)學(xué)推導(dǎo)證明,對(duì)R進(jìn)制的算術(shù)求和、求積規(guī)則各有R(R+1)/2種。如采用十進(jìn)制,就有55種求和與求積的運(yùn)算規(guī)則;而二進(jìn)制僅各有三種,因而簡(jiǎn)化了運(yùn)算器等物理器件的設(shè)計(jì)。3.機(jī)器可靠性高:由于電壓的高低,電流的有無(wú)等都是一種質(zhì)的變化,兩種狀態(tài)分明,所以基2碼的傳遞抗干擾能力強(qiáng),鑒別信息的可靠性高。4.通用性強(qiáng):基2碼不僅成功地運(yùn)用于數(shù)值信息編碼(二進(jìn)制),而且適用于各種非數(shù)值信息的數(shù)字化編碼。特別是僅有的二個(gè)符號(hào)0和1正好與邏輯命題的兩個(gè)值“真”與“假”相對(duì)應(yīng),從而為計(jì)算機(jī)實(shí)現(xiàn)邏輯運(yùn)算和邏輯判斷提供了方便。十進(jìn)制 R=10,數(shù)字集0,1,2,3,4,5,6,7,8,9二進(jìn)制 R=2,數(shù)字集0,1八進(jìn)制 R=8,數(shù)字集0,1,2,3,4,5,6,7十六進(jìn)制R=16,數(shù)字集0,…,9,A,B,C,D,E,F其他進(jìn)制日常生活中我們最熟悉十進(jìn)制數(shù)據(jù),但在與計(jì)算機(jī)打交道時(shí),會(huì)接觸到二進(jìn)制、八進(jìn)制、十六進(jìn)制系統(tǒng),但無(wú)論哪種數(shù)制,其共同之處都是進(jìn)位記數(shù)制。

內(nèi)部存儲(chǔ)器的作用是存放執(zhí)行的程序和程序中需要使用的數(shù)據(jù),是整個(gè)數(shù)據(jù)存儲(chǔ)和變換的樞紐。存儲(chǔ)器由一個(gè)個(gè)大小相同的存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元由8位二進(jìn)制位組成。為了區(qū)分和訪問(wèn)不同的存儲(chǔ)單元,系統(tǒng)為每一個(gè)存儲(chǔ)單元分配了惟一的編號(hào),稱為存儲(chǔ)單元的地址。存儲(chǔ)單元內(nèi)存放的是數(shù)據(jù)。CPU對(duì)存儲(chǔ)器可以讀(?。┮部梢詫?xiě)(存)數(shù)據(jù).……0110101010110110存放內(nèi)容地址0001000200030004……FFFEFFFF存儲(chǔ)器的邏輯結(jié)構(gòu)存儲(chǔ)器的容量

存儲(chǔ)器的每個(gè)存儲(chǔ)單元可以存放8位二進(jìn)制,稱為一個(gè)字節(jié)(Byte),字節(jié)是訪問(wèn)內(nèi)存的最小單位。字節(jié)是存儲(chǔ)的基本單元,二進(jìn)制位則是計(jì)算機(jī)對(duì)數(shù)據(jù)操作的最小單位。位與字節(jié)的關(guān)系?從物理上看,一個(gè)位(bit)就是一個(gè)既能開(kāi)又能關(guān)的開(kāi)關(guān),開(kāi)用0表示,關(guān)用1表示。單一的bit限制了其可用性,因此,所有的計(jì)算機(jī)都把bit組合起來(lái)形成一個(gè)更大的單元,即字節(jié)(Byte)。存儲(chǔ)單位位(Bit):度量數(shù)據(jù)的最小單位字節(jié)(Byte):最常用的基本單位K字節(jié) 1K=1024byteM(兆)字節(jié) 1M=1024KG(吉)字節(jié) 1G=1024MT(太)字節(jié) 1T=1024Gb7b6b5b4b3b2b1b0計(jì)算機(jī)如何存儲(chǔ)數(shù)據(jù)計(jì)算機(jī)將數(shù)據(jù)存儲(chǔ)在內(nèi)存的存儲(chǔ)單元(字節(jié))中。不同類型的數(shù)據(jù)占用的存儲(chǔ)單元數(shù)不同。

一個(gè)位能表現(xiàn)什么值?一個(gè)字節(jié)能夠表示多少個(gè)不同的位模式?字長(zhǎng):字長(zhǎng)是指計(jì)算機(jī)能直接處理的二進(jìn)制信息的位數(shù)。字長(zhǎng)是由CPU內(nèi)部的寄存器、加法器和數(shù)據(jù)總線的位數(shù)決定的。字長(zhǎng)越長(zhǎng),精度越高,速度越快,但價(jià)格也越高。當(dāng)前微機(jī)字長(zhǎng)有16位,32位,高檔微機(jī)的字長(zhǎng)是64位。主頻:指時(shí)鐘脈沖發(fā)生器在單位時(shí)間(s)內(nèi)發(fā)出的脈沖數(shù)。頻率越高,計(jì)算機(jī)的處理信息的速度也越快。主頻的單位是兆赫茲(MHz,GHz)。存儲(chǔ)容量:(1)內(nèi)存容量。指內(nèi)存儲(chǔ)器能夠存儲(chǔ)信息的總字節(jié)數(shù)。容量越大,運(yùn)行速度越快。內(nèi)存儲(chǔ)器容量大小,受限于CPU的地址總線。(2)外存容量。指外存儲(chǔ)器所能容納的總字節(jié)數(shù)。數(shù)據(jù)以二進(jìn)制形式存儲(chǔ)

漢字編碼GB國(guó)標(biāo)碼:中文內(nèi)碼之一,代表中文簡(jiǎn)化字,在中國(guó)大陸廣泛使用,影響所及,使用量漸見(jiàn)普及。國(guó)標(biāo)碼是指國(guó)家標(biāo)準(zhǔn)信息交換用漢字編碼(GB2312-80標(biāo)準(zhǔn))。國(guó)標(biāo)碼是指1980年中國(guó)制定的用于不同的具有漢字處理功能的計(jì)算機(jī)系統(tǒng)間交換漢字信息時(shí)使用的編碼。國(guó)際碼是二字節(jié)碼,用兩個(gè)七位二進(jìn)制數(shù)編碼表示一個(gè)漢字。目前國(guó)標(biāo)碼收入6763個(gè)漢字,其中一級(jí)漢字(最常用)3755個(gè),二級(jí)漢字3008個(gè),另外還包括682個(gè)西文字符、圖符。音頻、視頻、圖形、圖像數(shù)值數(shù)據(jù)整型數(shù)據(jù):二進(jìn)制編碼原碼:商除2取余,逆序排列,最高位是符號(hào)位,整數(shù)是0,負(fù)數(shù)是1.反碼:原碼的各個(gè)位取反,符號(hào)位除外補(bǔ)碼:反碼最末位加11+1=01+0=10+1=10+0=0整數(shù)以補(bǔ)碼形式存儲(chǔ)。正整數(shù):原碼,反碼,補(bǔ)碼一樣.例如:+15(用一個(gè)字節(jié)表示)原碼:00001111符號(hào)位數(shù)值位+15(用一個(gè)字節(jié)表示)原碼:00001111反碼:00001111補(bǔ)碼:00001111正整數(shù)的原碼、反碼、補(bǔ)碼一樣負(fù)整數(shù):例如-15(一個(gè)字節(jié)表示)原碼:10001111反碼:11110000補(bǔ)碼:11110001以補(bǔ)碼形式存儲(chǔ)二進(jìn)制轉(zhuǎn)換為十進(jìn)制00010101=24+22+20=+21必須是原碼才能轉(zhuǎn)為真值.1110000=2-1+2-2+2-3=0.87511001100,計(jì)算出對(duì)應(yīng)的十進(jìn)制數(shù)求出原碼:對(duì)補(bǔ)碼除符號(hào)位外各個(gè)位求反,最末位加111001100對(duì)應(yīng)的原碼是:10110100真值:-52浮點(diǎn)數(shù)的存儲(chǔ)浮點(diǎn)數(shù)轉(zhuǎn)換為二進(jìn)制一、整數(shù)部分:商除2取余,商為0結(jié)束,余數(shù)逆序排列;二、小數(shù)部分:乘2取整,積為0結(jié)束,整數(shù)部分順序排列。例如:?jiǎn)尉雀↑c(diǎn)數(shù)120.5的二進(jìn)制原碼表示:

1111000.1浮點(diǎn)數(shù)120.5用二進(jìn)制表示為:1111000.1用二進(jìn)制的科學(xué)計(jì)數(shù)法表示為1.1110001*26任何一個(gè)數(shù)的科學(xué)計(jì)數(shù)法表示都為1.xxx*2n

尾數(shù)部分就可以表示為xxxx,不保存小數(shù)點(diǎn)前面的1,所以23位的尾數(shù)部分,可以表示的精度卻變成了24位。

對(duì)于指數(shù)部分,因?yàn)橹笖?shù)可正可負(fù),8位的指數(shù)位能表示的指數(shù)范圍就應(yīng)該為:-127~128,指數(shù)部分的存儲(chǔ)采用移位存儲(chǔ),即存儲(chǔ)的數(shù)據(jù)為元數(shù)據(jù)加上127,8位指數(shù)位全是數(shù)值位,數(shù)值范圍:0~255如指數(shù)是6,實(shí)際存儲(chǔ)的是133的二進(jìn)制.

單精度浮點(diǎn)數(shù)120.5的存儲(chǔ)方式如下所示:01000010111100001000000000000符號(hào)位指數(shù)位尾數(shù)位12.651.原碼:1100.101001100110011001102.科學(xué)計(jì)數(shù):1.10010100110011001100110*233.尾數(shù)用補(bǔ)碼表示:100101001100110011001104.指數(shù):3+127=130,130的原碼:100000101內(nèi)存中:010000010110010100110011001100110符號(hào)位指數(shù)位:指數(shù)沒(méi)有符號(hào)位尾數(shù)位-0.0121.原碼:0.000000110001002.科學(xué)計(jì)數(shù):1.1000100*2-73.尾數(shù):10001004.指數(shù):-7+127=120,120的原碼:01111000內(nèi)存中:1011110001000100符號(hào)位指數(shù)位:指數(shù)沒(méi)有符號(hào)位尾數(shù)位如果給出內(nèi)存中一段單精度存儲(chǔ)的數(shù)據(jù),如何知道該數(shù)據(jù)的十進(jìn)制數(shù)值呢?如給出如下內(nèi)存數(shù)據(jù):0100001011101101000000000000首先分段:01000010111011010000000000000000根據(jù)我們的計(jì)算方式,可以計(jì)算出,這樣一組數(shù)據(jù)表示為:1.1101101*26=1110110.1=120.5符號(hào)位指數(shù)位尾數(shù)位給出以下數(shù)的二進(jìn)制存儲(chǔ)形式:25-3018.7-18.7給出以下整數(shù)的十進(jìn)制存儲(chǔ)形式:00111110001110101011111000111010給出以下浮點(diǎn)數(shù)的十進(jìn)制存儲(chǔ)形式:0111001000001110001110001100110011110010000011100011100011001100在程序中如何表示數(shù)據(jù)呢?#include<iostream>usingnamespacestd;intmain(){floatr,C;//聲明輸入和輸出項(xiàng)目r=65.0;//設(shè)置半徑的值

C=2*3.1415*r;//計(jì)算周長(zhǎng)(輸出)

cout<<“圓的周長(zhǎng):”<<C<<endl;return0;}floatr,C;//r,C就表示數(shù)據(jù)r,C在程序中稱為變量。程序中用變量和常量來(lái)表示數(shù)據(jù)。程序員必須給使用的每個(gè)變量命名。變量變量名、變量值、變量標(biāo)識(shí)的內(nèi)存單元:

sudent_score

注:一些在問(wèn)題中值經(jīng)常變動(dòng)的數(shù)據(jù)可以定義成變量,如商品的價(jià)格,賬戶上的余額.89內(nèi)存單元變量名(不能變)變量值(可變,在程序運(yùn)行時(shí))變量名和變量值的區(qū)別:變量名是一個(gè)標(biāo)簽,計(jì)算機(jī)根據(jù)變量名找到相應(yīng)的內(nèi)存地址,然后把這個(gè)地址中存放的內(nèi)容---變量值取出來(lái)進(jìn)行處理.因計(jì)算機(jī)只用名訪址,所以必須保證變量名的一致性。在程序中,通過(guò)變量名來(lái)訪問(wèn)數(shù)據(jù),每個(gè)變量名都與一個(gè)特定的內(nèi)存單元聯(lián)系起來(lái),每個(gè)內(nèi)存單元一次只能存放一個(gè)數(shù)值。

對(duì)于程序員來(lái)說(shuō),變量最關(guān)鍵的作用是什么?存儲(chǔ)單元和內(nèi)存單元的區(qū)別?變量所標(biāo)識(shí)的內(nèi)存單元可以被刷新。刷新的含義是什么?常量常量:常量是一種固定的字符或數(shù)值,在整個(gè)指令運(yùn)行過(guò)程中都不能改變,在編程語(yǔ)言中,可以給常量命名,這時(shí),常量就有了內(nèi)存地址和名字,在程序執(zhí)行過(guò)程中,常量會(huì)被賦值,且該值不能再改變,可通過(guò)名字訪問(wèn)它.常數(shù)是常量的一種表示,直接使用,如89,8.7

3.1415926

PI

常量名(不能變)常量值(不能變)內(nèi)存單元注:一些在問(wèn)題中值不變的數(shù)據(jù)可以定義成常量,如,圓周率的值,一個(gè)公司薪水系統(tǒng)中公司的名字.計(jì)算機(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論