數(shù)據(jù)的存儲與運(yùn)算.ppt_第1頁
數(shù)據(jù)的存儲與運(yùn)算.ppt_第2頁
數(shù)據(jù)的存儲與運(yùn)算.ppt_第3頁
數(shù)據(jù)的存儲與運(yùn)算.ppt_第4頁
數(shù)據(jù)的存儲與運(yùn)算.ppt_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第2章 數(shù)據(jù)的存儲與運(yùn)算,2.1 數(shù)據(jù)在計算機(jī)中是怎樣存儲的 2.2 整型數(shù)據(jù)的運(yùn)算與分析 2.3 實型數(shù)據(jù)的運(yùn)算與分析 2.4 字符型數(shù)據(jù)的運(yùn)算 2.5 符號常量 2.6 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 2.7 C運(yùn)算符和C表達(dá)式 2.8 提高部分,2.1 數(shù)據(jù)在計算機(jī)中是怎樣存儲的,2.1.1 數(shù)據(jù)在計算機(jī)中是以二進(jìn)制形式存儲的 2.1.2 位、字節(jié)和地址 2.1.3 不同類型數(shù)據(jù)的存儲方式,P16,計算機(jī)內(nèi)部的信息都是用二進(jìn)制表示 計算機(jī)存儲器是用半導(dǎo)體集成電路構(gòu)成的 有兩種穩(wěn)定的工作狀態(tài):“導(dǎo)” 與“截止”,即電脈沖的“有”與“無” 分別用“1”和“0”表示,2.1.1 數(shù)據(jù)在計算機(jī)中是以二進(jìn)

2、制形式存儲的,P16,若相鄰的8個二極管元件中第1,3,5,7個元件處于“導(dǎo)通”狀態(tài),第2,4,6,8個元件處于“截止”狀態(tài),用“10101010”表示,導(dǎo)通 截止 導(dǎo)通 截止 導(dǎo)通 截止 導(dǎo)通 截止,1 0 1 0 1 0 1 0,2.1.1 數(shù)據(jù)在計算機(jī)中是以二進(jìn)制形式存儲的,P16,2.1.1 數(shù)據(jù)在計算機(jī)中是以二進(jìn)制形式存儲的,P16,2.1.2 位、字節(jié)和地址,位(bit) ,又稱“比特” 。每一個二極管元件稱為一個“二進(jìn)制位”,是存儲信息的最小單位。它的值是“1”或“0” 字節(jié)(byte) ,又稱“拜特” 。一般將8個“二進(jìn)制位”組織成一組,稱為“字節(jié)”。這是人們最常用的存儲單位,

3、P17,2.1.2 位、字節(jié)和地址,地址。計算機(jī)的存儲器包含許多存儲單元,操作系統(tǒng)把所有存儲單元以字節(jié)為單位編號,P17,2.1.3 不同類型數(shù)據(jù)的存儲方式,整數(shù)的存儲方式 一個十進(jìn)制整數(shù),先轉(zhuǎn)換為二進(jìn)制形式 如整數(shù)10,以二進(jìn)制形式表示是1010,P18,用一字節(jié)存放,用兩字節(jié)存放,負(fù)數(shù)按補(bǔ)碼形式存放,2.1.3 不同類型數(shù)據(jù)的存儲方式,實數(shù)的存儲形式 對于實數(shù),一律采用指數(shù)形式存儲 123.456標(biāo)準(zhǔn)化指數(shù)形式為0.123456103,P18,2.1.3 不同類型數(shù)據(jù)的存儲方式,字符的存儲方式 對于字符,按ASCII代碼存放 A的ASCII代碼是65(1000001),P18,2.2 整型

4、數(shù)據(jù)的運(yùn)算與分析,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析 2.2.2 整型常量與整型變量,P19,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,例2.1 雞兔同籠。在一個蘢子里同時養(yǎng)著一些雞和兔子,你想了解有多少只雞和多少只兔,主人對你說:我只告訴你雞和兔的總頭數(shù)是16和總腳數(shù)是40,你能不能自己計算有多少只雞和多少只兔?,P19,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,解題思路: 設(shè)x代表雞的數(shù)量,y代表兔的數(shù)量,總頭數(shù)為h,總腳數(shù)為f 列出下面的方程式: x + y = h (1) 2x + 4y = f (2) 解方程得到:,P19,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,#include v

5、oid main() int h,f,x,y; h=16; f=40; y=(f-2* h)/2; x=h-y; printf(“%d%dn”,x,y); ,P19,定義整型變量h,f,x,y,使h的值等于16,使f的值等于40,計算兔的個數(shù),計算雞的個數(shù),2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,#include void main() int h,f,x,y; h=16; f=40; y=(f-2* h)/2; x=h-y; printf(“%d%dn”,x,y); ,P19,輸出雞和兔個數(shù),124,%d,%d,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,#include void main()

6、 int h,f,x,y; h=16; f=40; y=(f-2* h)/2; x=h-y; printf(“%d%dn”,x,y); ,P19,輸出雞和兔個數(shù),12,4,%d,%d,cock=%d, rabbit=%d,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,#include void main() int h,f,x,y; h=16; f=40; y=(f-2* h)/2; x=h-y; printf(“%d%dn”,x,y); ,P19,輸出雞和兔個數(shù),12,4,cock=%d, rabbit=%d,cock=12, rabbit=4,2.2.1 整型數(shù)據(jù)運(yùn)算程序舉例和分析,定義變量的一

7、般形式是: 類型名 變量名; 例如:int h,f,x,y; 變量都必須在使用前定義,指定其類型 賦值:h=37; f=88;,P19,2.2.2 整型常量與整型變量,常量和變量 常量是指在程序運(yùn)行過程中其值不能改變的量 變量是指在程序運(yùn)行過程中其值可以改變的量,P22,2.2.2 整型常量與整型變量,常量和變量 要注意區(qū)別變量名和變量值,P22,16,h,2000,存儲單元,變量名,變量地址,變量值,2.2.2 整型常量與整型變量,常量和變量 要注意區(qū)別變量名和變量值,P22,16,h,2000,執(zhí)行h=37;,37,2.2.2 整型常量與整型變量,變量名的取名規(guī)則 變量名第一個字符必須是字

8、母或下劃線,其后字符必須是字母、數(shù)字或下劃線,P22,合法:sum,average, _total, Class, day, month, Student_name,tan,li_ling 不合法:Zhang-sun,Students, $123,33,3D64,2.2.2 整型常量與整型變量,變量名的取名規(guī)則 變量名第一個字符必須是字母或下劃線,其后字符必須是字母、數(shù)字或下劃線 大小寫字母代表不同的字符,一般,程序中的變量名用小寫字母表示 變量名的長度不是無限的 變量名盡量簡單易記、見名知意 在同一函數(shù)中,不同變量不能取相同名,P22,2.2.2 整型常量與整型變量,變量必須“先定義,后使用

9、” 根據(jù)定義變量時指定的類型,編譯系統(tǒng)為變量分配相應(yīng)的存儲單元 凡未被事先定義的,系統(tǒng)不把它認(rèn)作變量名,保證程序中變量名使用得正確 指定了每一變量屬于一個類型,就便于在編譯時據(jù)此檢查在程序中要求對該變量進(jìn)行的運(yùn)算是否合法,P22,2.2.2 整型常量與整型變量,變量類型相當(dāng)于建造房屋的圖紙,按照同一套圖紙可以建造出許多套外形和結(jié)構(gòu)完全相同的房屋,它們具有相同的特征 類型是抽象的,變量是具體的 圖紙相當(dāng)于一系列的規(guī)則和要求,依照它進(jìn)行施工。但光有圖紙是不能住人的,只有建成的房屋才能住人 類型不占存儲單元,不能用來存儲數(shù)據(jù),而變量占存儲單元,可以用來存儲數(shù)據(jù),P22,2.2.2 整型常量與整型變量

10、,整型常量的表示形式 除了常用的十進(jìn)制形式外,還允許使用八進(jìn)制形式和十六進(jìn)制形式表示的數(shù) 整型變量的種類 基本整型,類型名為int 長整型,類型名為long int 短整型,類型名為short int ,P22,2.3 實型數(shù)據(jù)的運(yùn)算與分析,2.3.1 實型數(shù)據(jù)的運(yùn)算舉例 2.3.2 實型常量的表示形式 2.3.3 實型變量,P24,2.3.1 實型數(shù)據(jù)的運(yùn)算舉例,例2.2 分期付款的計算。張先生為購房,向銀行貸款,貸款額為D元,每月準(zhǔn)備還P元,月利率為R,求需要多少個月才能還清。,P24,m是還清貸款所需月數(shù) d=324500,p=3245,r=0.8%,2.3.1 實型數(shù)據(jù)的運(yùn)算舉例,(1

11、)d和p是整數(shù),r是一個小數(shù),因此程序中要分別定義整型變量和實型變量。 (2)公式中用到對數(shù)log,這個對數(shù)是以10為底的。對數(shù)log的函數(shù)log10,P24,2.3.1 實型數(shù)據(jù)的運(yùn)算舉例,#include #include void main() int d,p; float r,m; d=324500; p=3245; r=0.008; m=(log10(p)-log10(p-d*r)/log10(1+r); printf(“month=%fn”,m); printf(“total=%fn”,m*p); ,P24,用到數(shù)學(xué)函數(shù)時,定義整型變量d,p,定義實型變量r,m,賦值,求m的值,2

12、.3.1 實型數(shù)據(jù)的運(yùn)算舉例,#include #include void main() int d,p; float r,m; d=324500; p=3245; r=0.008; m=(log10(p)-log10(p-d*r)/log10(1+r); printf(“month=%fn”,m); printf(“total=%fn”,m*p); ,P24,輸出m的值,計算并輸出還款數(shù),total=655436.127930,month=201.983404,輸出實數(shù)時,2.3.1 實型數(shù)據(jù)的運(yùn)算舉例,#include #include void main() int d=324500,p

13、=3245; double r=0.008,m; m=(log10(p)-log10(p-d*r)/log10(1+r); printf(“month=%fn”,m); printf(“total=%fn”,m*p); ,P24,定義變量時賦初值,定義double型無警告錯,2.3.2 實型常量的表示形式,實數(shù)在計算機(jī)語言中常稱為浮點(diǎn)數(shù) 十進(jìn)制小數(shù)形式 如:0.123, 123.23, 0.0 指數(shù)形式 如:123e3或123E3,P26,2.3.3 實型變量,實型變量的分類 單精度實型變量(float型) 雙精度實型變量(double型) 長雙精度實型變量(long double型),P27

14、,2.3.3 實型變量,實型變量的分類 實型數(shù)據(jù)的舍入誤差 實型變量是由有限的存儲單元組成的 能提供的有效數(shù)字總是有限的 在有效位以外的數(shù)字將被舍去 會產(chǎn)生一些誤差,P27,2.3.3 實型變量,實型變量的分類 實型數(shù)據(jù)的舍入誤差 例2.3 實型數(shù)據(jù)的舍入誤差,P27,#include void main() float a; a = 1234.1415926; printf(a=%fn,a); ,a=1234.141602,7位有效位,2.3.3 實型變量,實型變量的分類 實型數(shù)據(jù)的舍入誤差 把實數(shù)按雙精度數(shù)處理 把程序中的實常量處理成雙精度型,分配8個字節(jié),以提高精度。,P27,a = 1

15、234.1415926;,雙精度,單精度,編譯時有警告,最好:double a;,2.4 字符型數(shù)據(jù)的運(yùn)算,2.4.1 字符數(shù)據(jù)運(yùn)算的簡單例子 2.4.2 字符常量和字符變量 2.4.3 字符串常量,P29,2.4.1 字符數(shù)據(jù)運(yùn)算的簡單例子,例2.4 逐個輸出英文字母C,H,I,N,A。然后按反序輸出,即A,N,I,H,C。,P29,#include void main() char a=C,b=H,c=I,d=N,e=A; printf(“%c%c%c%c%cn”,a,b,c,d,e); printf(“%c%c%c%c%cn”,e,d,c,b,a); ,定義字符變量,2.4.1 字符數(shù)據(jù)

16、運(yùn)算的簡單例子,例2.4 逐個輸出英文字母C,H,I,N,A。然后按反序輸出,即A,N,I,H,C。,P29,#include void main() char a=C,b=H,c=I,d=N,e=A; printf(“%c%c%c%c%cn”,a,b,c,d,e); printf(“%c%c%c%c%cn”,e,d,c,b,a); ,用單撇號括起來,輸出字符,CHINA ANIHC,2.4.2 字符常量和字符變量,字符常量 字符常量是用單撇號括起來的一個字符 英文字母可以作為字符常量 鍵盤上的字符都可以作為字符常量 小寫字母和大寫字母是不同的字符常量,P29,2.4.2 字符常量和字符變量,

17、轉(zhuǎn)義字符 轉(zhuǎn)義字符必須以反斜杠“”開頭 “”后只能有一個字符(或代表字符的8進(jìn)制或16進(jìn)制數(shù)),P29,2.4.2 字符常量和字符變量,t 跳到下一個輸出區(qū) b 消除前一個已輸出的字符 r 將當(dāng)前的輸出位置返回在本行開頭 f 將當(dāng)前的輸出位置移到下頁的開頭 0 常用于字符串中,作為串結(jié)束標(biāo)志 代表一個反斜杠字符“” 代表一個單撤號字符 ” 代表一個雙撤號字符 ddd 13位8進(jìn)制數(shù)所代表的字符 xhh 12位16進(jìn)制數(shù)所代表的字符,P29,2.4.2 字符常量和字符變量,字符變量 用來存放字符常量 只能放一個字符 字符變量的定義形式: char 字符變量列表;,P29,2.4.2 字符常量和字

18、符變量,字符數(shù)據(jù)與整型數(shù)據(jù)在一定條件下通用 char c=a;與char c=97;等價,P29,2.4.2 字符常量和字符變量,字符數(shù)據(jù)與整型數(shù)據(jù)在一定條件下通用 例2.5 將兩個整數(shù)分別賦給兩個字符變量,再將字符數(shù)據(jù)按字符和整數(shù)形式輸出。 #include void main() char c1=97,c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); ,P29,char c1=a,c2=b;,a b,97 98,2.4.2 字符常量和字符變量,字符數(shù)據(jù)與整型數(shù)據(jù)在一定條件下通用 例2.5 將兩個整數(shù)分別賦給兩個字符變量,再將字符數(shù)

19、據(jù)按字符和整數(shù)形式輸出。 字符a的存儲(用ASCII代碼存放),P29,按%c輸出:a,按%d輸出:97,printf(“%c %cn”,97+1,a+1); 輸出什么?,2.4.2 字符常量和字符變量,字符數(shù)據(jù)與整型數(shù)據(jù)在一定條件下通用 例2.5 將兩個整數(shù)分別賦給兩個字符變量,再將字符數(shù)據(jù)按字符和整數(shù)形式輸出。,P29,b b,printf(“%d %dn”,97+1,a+1); 輸出什么?,98 98,2.4.2 字符常量和字符變量,字符數(shù)據(jù)與整型數(shù)據(jù)在一定條件下通用 例2.6 將小寫字母轉(zhuǎn)換為大寫字母。 #include void main() char c1=a,c2=b; c1=c

20、1-32; c2=c2-32; printf(%c,%cn,c1,c2); ,P29,a97 A65 b98 B66 c99 C67 規(guī)律是?,A,B,2.4.3 字符串常量,字符串常量是一對雙撇號括起來的字符序列 How do you do. CHINA a 都是合法的字符串,P33,2.4.3 字符串常量,字符串常量是一對雙撇號括起來的字符序列 是字符常量 是字符串常量 二者的含義是不同的,P33,char c; c=a;,正確,char c; c=”a”;,錯誤,存放字符a的存儲單元,存放字符串”a”的存儲單元,2.5 符號常量,2.5.1 符號常量的作用 2.5.2 符號常量的性質(zhì)和使

21、用方法,P34,2.5.1 符號常量的作用,例2.7求以r為半徑的圓周長c和圓面積s,再求以r為半徑的圓球體積v。,P35,c=2*3.1415926*r;,s=3.1415926*r*r;,v=4/3*3.1415926*r*r*r;,#include void main() double r=3.67,c,s,v; c= 2 * 3.1415926 *r; s= 3.1415926 * r*r ; v= 4/3 * 3.1415926 * r*r*r ; printf(“c=%fns=%fnv=%fn”,c,s,v); ,c=23.059290 s=42.313797 v=155.2916

22、33,有錯,4.0/3.0,#include void main() double r=3.67,c,s,v; c= 2 * 3.1415926 *r; s= 3.1415926 * r*r ; v= 4.0/3.0 * 3.1415926 * r*r*r ; printf(“c=%fns=%fnv=%fn”,c,s,v); ,c=23.059290 s=42.313797 v=207.055511,pow(r,2),pow(r,3),#include ,#include #include void main() double r=3.67,c,s,v; c= 2 * 3.1415926 *r

23、; s= 3.1415926 * pow(r,2); v= 4.0/3.0 * 3.1415926 *pow(r,3); printf(“c=%fns=%fnv=%fn”,c,s,v); ,c=23.059290 s=42.313797 v=207.055511,#define PI 3.1415926,PI,PI,PI,#include #include void main() double r=3.67,c,s,v; c= 2 * PI *r; s= PI * pow(r,2); v= 4.0/3.0 * PI *pow(r,3); printf(“c=%fns=%fnv=%fn”,c,s

24、,v); ,c=23.059290 s=42.313797 v=207.055511,#define PI 3.1415926,符號常量,2.5.2 符號常量的性質(zhì)和使用方法,#define不是C語句,行末沒有分號 #define是一個“預(yù)編譯命令” 符號常量一般用大寫,以示與變量區(qū)別 好處: 含義清楚 在需要改變一個常量時能做到“一改全改” 用符號常量能保護(hù)所代表的數(shù)據(jù)不被破壞,P36,2.6 算術(shù)運(yùn)算符和算術(shù)表達(dá)式,2.6.1 算術(shù)運(yùn)算符 2.6.2 算術(shù)表達(dá)式,P38,2.6.1 算術(shù)運(yùn)算符,P38,1.基本的算術(shù)運(yùn)算符: + :加法運(yùn)算符 - :減法運(yùn)算符 * :乘法運(yùn)算符 / :除法

25、運(yùn)算符 % :求余運(yùn)算符(要求兩側(cè)均為整數(shù)。如19%4,結(jié)果為3 ),2.6.1 算術(shù)運(yùn)算符,P38,兩個整數(shù)相除的結(jié)果為整數(shù) 如5/3的結(jié)果值為,舍去小數(shù)部分 如果除數(shù)或被除數(shù)中有一個為負(fù)值,舍入方向不固定。例如,-5/3,有的系統(tǒng)中得到的結(jié)果為-1,在有的系統(tǒng)中則得到結(jié)果為-2 VC+采取“向零取整”的方法 如5/3=1,-5/3=-1,取整后向零靠攏,2.6.1 算術(shù)運(yùn)算符,P38,如果參加+、-、*、/ 運(yùn)算的兩個數(shù)中有一個數(shù)為float或double型,則結(jié)果都是double型,因為系統(tǒng)將所有float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算。這是為了提高運(yùn)算精度。,2.6.1

26、算術(shù)運(yùn)算符,P38,2. 自增、自減運(yùn)算符: 作用是使變量的值增或減 +i,-i:在使用i之前,先使i的值加(減)1 i+,i-:在使用i之后,使i的值加(減)1,2.6.2.算術(shù)表達(dá)式,P39,用算術(shù)運(yùn)算符和括號將運(yùn)算對象(也稱操作數(shù))連接起來的、符合語法規(guī)則的式子,稱為算術(shù)表達(dá)式 運(yùn)算對象包括常量、變量、函數(shù)等,2.6.2.算術(shù)表達(dá)式,P39,各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 char和short型轉(zhuǎn)換為int型 float型一律轉(zhuǎn)換為double型 整型 (包括int,short,long) 數(shù)據(jù)與double型數(shù)據(jù)進(jìn)行運(yùn)算,先將整型轉(zhuǎn)換為double型,2.6.2.算術(shù)表達(dá)式,P39,各類數(shù)

27、值型數(shù)據(jù)間的混合運(yùn)算 10 + a + i * f - d / e,先將a轉(zhuǎn)換成整數(shù)97,運(yùn)算結(jié)果為107,i為整型 f為float型 d為double型 e為long型,2.6.2.算術(shù)表達(dá)式,P39,各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 10 + a + i * f - d / e,107,先將i與f轉(zhuǎn)成double型,運(yùn)算結(jié)果為double型,i為整型 f為float型 d為double型 e為long型,2.6.2.算術(shù)表達(dá)式,P39,各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 10 + a + i * f - d / e,107,double型,先將107轉(zhuǎn)換成雙精度型,結(jié)果為double型,i為整型 f為f

28、loat型 d為double型 e為long型,2.6.2.算術(shù)表達(dá)式,P39,各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 10 + a + i * f - d / e,107,double型,double型,轉(zhuǎn)換為double型,double型,最終結(jié)果為double型,i為整型 f為float型 d為double型 e為long型,2.6.2.算術(shù)表達(dá)式,P39,強(qiáng)制類型轉(zhuǎn)換 在表達(dá)式中也可以利用“強(qiáng)制類型轉(zhuǎn)換”運(yùn)算符將數(shù)據(jù)轉(zhuǎn)換成所需的類型,(double)a (將轉(zhuǎn)換成double類型) (int) (x+y) (將x+y的值轉(zhuǎn)換成int型) (float)(5%3)(將5%3的值轉(zhuǎn)換成float型),2.6.2.算術(shù)表達(dá)式,P39,強(qiáng)制類型轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換的一般形式為: (類型名)(表達(dá)式),例2.8 強(qiáng)制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論