《基本资料型态》word版.docx_第1页
《基本资料型态》word版.docx_第2页
《基本资料型态》word版.docx_第3页
《基本资料型态》word版.docx_第4页
《基本资料型态》word版.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 基本資料型態3.0前言 C+ Data type 1.基本資料型態: a.整數int,short,longb.浮點數float,double,long doublec.字元chard.邏輯值bool2.衍生資料型態: a.與位址相關的資料型態: 指標 參照b.有結構的資料型態: string,enum,array,stract,union,class3.1整數和浮點數1. 整數(integer values):所有不具小數點的數值 程式實例:程式碼 /Int.cpp # include using std:cout; using std:endl;int main( ) cout 48U:48Uendl; cout 75UL:75ULendl; cout 372L:372Lendl; cout 012:012endl; cout 0x12:0x12endl; return 0; 執行結果 48U: 48 75UL: 75 372L:372 012:10 0x12:18 說明 1.整數後面加上U,表示不加正負號的整數(unsigned int)故 48U 482.整數後面加上L long int,故 75UL 75為unsigned long int 372L 372為long int3.整數前加0,數值以8進位方式儲存,故012 2+1*8=10整數前加0x, 數值以16進位方式儲存,故0x12 2+1*16=182.浮點數(float point numbers)為帶有小數點的數值,一般用來描述實數(real numbers)對於較大或較小的數值,浮點數可以用指數表示法(exponential notation)來表示,Example:十進位科學表示法指數表示法2413.6522.413652*102.413652E32.413652E+32.413652e32.413652e+30.00006246.24E56.24e5程式實例/Float.cpp#includeusing std:cout;using std:endl;int main() cout 4.7: 4.7endl; cout 48.0F:48.0Fendl; cout 48.0f:48.0fendl; cout 3.75L:3.75Lendl; cout 4.26e12:4.26e12endl; cout 4.26e+12L: 4.26e+12Lendl; cout 4.26e-12L: 4.26E-12Lendl; return 0;說明4.7格式為double48.0F格式為float48.0f格式為float3.75L格式為long double4.26e12格式為long double4.26e+12L格式為long double4.26e-12L格式為double3.數值資料型態適用範圍資料型態資料長度適用範圍小數點有效位數bool8bits0 or 10int32bits0short int(short)16bits0unsigned int(unsigned)32bits0long int(long)32bits0nnsigned long32bits0float32bits7double64bits16long bouble80bits同double16一般當資料超出範圍時,以+INF(infinity)或-NF表示,而使用double而不用float,通常是為了計算過程中有更多位有效位數,以獲得更精確計算結果。3.2變數和常數1.變數宣告和定義 Example: int Age;float Height; short Id; long Id; float Fa; Double Db; 紅色是整數宣的告和定義2.程式案例 /AVERAGE.cpp#includeusing std:cout;using std:endl;int main() int Number = 3;float a,b;float c = 5.6;float Average;a = 7.8;b = 3.9;Average = (a+b+c)/Number;cout a,b,c的平均值: Average endl;return 0;3.常數的宣告和定義使用常數代號的用途 1.避免重複使用直接寫出數值,以減少輸入錯誤2.可以只修改一處Example: const double Tax = 0.17; const float In = 0.024;注意:數值一旦被宣告為常數,其內容已不能更改 In = 0.27 error3.3算術運算1.Arithmetic Operators算術運算子算術運算子進行之運算Example計算結果+加4+610-減7.83-6.21.63*乘2.5*6.716.75/除10.6/2.54.24%餘數18%42+累加+a(a+)a=a+1-累減-a(a-)a=a-1+=C累加Ca+=2a=a+2-=C累減Ca-=2a=a-2範例程式1.Write a program that inputs a five-digit number, separates the number into its individual digits and prints the digits separated from one another by three spaces each.#include using std:cin;using std:cout;using std:endl;int main()int a;couta; cout (a/10000) (a%10000)/1000 (a%1000)/100 (a%100)/10 (a%10)endl;return 0;2.敘述句(statement) 定義C+程式語言之最小可執行單元 Ex: x = a+b*sin(c); b+;y=x+5.0;x=a+b*(c+6.5)+c*105.8-4.0;x=a+b*(c+6.5)+c*105.8-4.0;紅色表示敘述完全相同3. 一元和二元運算子 x*y x和y為operand *為operator 二元運算子(binary operator):作用於兩個運算元之間的運算子 一元運算子(unary operator):只作用於一個運算元上 Example: -x 計算x的負值(unary operator) x-y 計算x和y的差值(binary operator)4.算術運算的優先權和規則 規則一.先乘除後加減 二.同一敘述內,當運算子的優先權相同時,則依照從左至右的順序處理A. 整數除法 , 餘數運算子(modulus operator)% 1%2 得到1B. 累加或累減的計算 + increment operator - decrement operator一般表示法累加或累減N=N+1N+或+NN=N-1N-或-N +或-寫在operand之前或之後,具有不同意義 For example: M=+i;相當於i=i+1;M=i;(先累加再assignment) M=i+;相當於M=i; i=i+1;(先assignment再累加)C.指派運算子(assignment operators)Statement對等敘述N=N+Inc;N+=Inc;N=N*Inc;N*=Inc;N=N/Inc;N/=Inc;N=N%Inc;N%=Inc;5.資料型態間的轉換 程式碼 /Convert.cpp#includeusing std:cout;using std:endl;int main() int a = 5;float x;x=a+3.8;coutx的值是: xendl;return 0;執行結果 x的值是:8.8上例中a為整數,但x為浮點數,3.8之預設格式為double,其格式轉換如下a+3.8 float()double float但若a+3.8則為int與float之相加,輸出格式為float如下表expressionData of Resulta+3.8ffloata+3.8double上述資料型態間的轉換為自動進行,稱為隱性資料型態轉換(implicit type conversions)C+敘述轉換規則如下1.當混合不同資料型態,計算結果以最精確為準2.assignment operation依lvalue(left value)資料Type儲存另有explicit type conversions x =float(a)+3.8f;或x=(float)a+3.8f;練習3-1(EX3-1.cpp) 已知攝氏與華氏轉換公式=(*9/5)+32,試寫一程式,可將兩個溫度互換3.4數學函數 呼叫C+ standard library之header filecmath C+ mathematic Example:/Power3.cpp#include#includeusing std:cin;using std:cout;using std:endl;int main() double x;coutx;coutIts power of 3 is:pow(x,3)endl;return 0; 常用數學函數參見表3.4.1練習3-2 試寫一程式,經由輸入x,計算 (1) (2)(3) 之函數名稱fabs(x)(4) 之函數名稱exp(x)3.5邏輯值(Boolean data)及其運算 Boolean data只有true和fales兩種值電腦內部分別儲存成1或0A.Relational Operations Example:relrtional expression x3.8 1(x小於3.8) 0(x大於或等於3.8)常用關係運算子(relational expression)關係運算子意義範例小於x大於x10.0=小於或等於y=大於或等於y=x= =等於y= =x!=不等於y!=xB.Logical Operations 邏輯運算子函數Example&And(ab)&(cd)|Or(x8.2)|(y0.0)!Not!(x0.0)C.各種運算子之優先順序 運算子結合規則相關等值運算優先次序! + - -右至左-!a-(!a)高低* / %左至右a*b/c(a*b)/c+ -左至右a*b-c(a*b)-c =左至右a+bc-d(a+b)(c-d)= = !=左至右ab= =c-d(ab)= =(c-d)&左至右a= =b&c!=d(a= =b)&(c!=d)|左至右a&b|c(a&b)|c= += -= /=右至左a=b|ca=(b|c)Example: (1)a*b-cd相當於(a*b)-c)10.0); if(b10.0)判斷結果是否,且y是int,則y存入0程式實例/Bool Check.cpp#includeusing std:cout;using std:endl;int main() bool b1,b2,b3,b4; b1=true; b2=false; b3=(31); b4=(31); coutb1=b1endl; coutb2=b2endl; coutb3=b3endl; coutb4=b4endl; coutSize of bool is:sizeof(bool)byteendl; cout Size of b1 is:sizeof(b1)byte1)成立故b3=1,(3B輸出1,AB輸出03.6字元與字串 文字資料 字元(character)字串(string)A.字元資料 1.包括大寫與小寫英文字母,AZ,az十個阿拉伯數字09特別符號,如+$-!%*以上共128符號2.所有的字元都以單引號包括如下: a,A,S,3.字元以ASC碼儲存,每個字元佔一個byte 例如 a存成01100001 b存成011000104.字元的資料型態寫成char(charcter) 定義方式 char ch= f ; 輸出coutchendl;B.逃離序列(escape sequence) 稱為escape characterESCAPE Sequence意義nnew linettabbback one square(退一格)fform feed(下頁)r輸入(return)反斜線單引號雙引號0字串結束符號C.字串(string) 以雙引號包起來的字元 For example:The answer is 在儲存的時候,所有的字串後面會被自動加上 0 字元,代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论