02A 基本数据运算与输入输出.ppt_第1页
02A 基本数据运算与输入输出.ppt_第2页
02A 基本数据运算与输入输出.ppt_第3页
02A 基本数据运算与输入输出.ppt_第4页
02A 基本数据运算与输入输出.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第2章 基本数据运算与输入输出(A) 主要内容 如何用计算机计算圆面积(2.1-2.4) 标识符(2.5) 基本数据类型(2.9) 变量定义(2.6) 常量(2.8,2.9.1) I/O流控制(3.12) 小结及作业 2 C+程序设计 2.1 如何用计算机计算圆面积 问题描述 u计算机从键盘读入圆的半径,输出其面积 u程序将使用变量保存半径和面积,并用一个表达式计算面积 解决思路 u读入半径 u利用圆面积公式计算面积 u输出面积 3 C+程序设计 2.1 如何用计算机计算圆面积 程序主函数框架 程序清单 int main() / Step 1: Read in radius / Step 2: Compute area / Step 3: Display the area #include using namespace std; int main() / Step 1: Read in radius double radius; cout radius; / Step 2: Compute area double area = radius * radius * 3.14159; / Step 3: Display the area cout “ , . ? : ; 5 C+程序设计 2.2 标识符 标识符 u由字符集元素组成的一串字符,为变量、常量及函数等程序实体命名 u分为系统预定义标识符(如预编译指令)和用户自定义标识符(如变量名 ,函数名) u标志符命名规则 4由字母、下划线、数字组成,且第一个符号不能是数字 4中间不能有空格 4C+是大小写敏感,即大写和小写字母是不同的 4最好使用英文单词或其组合,切忌使用汉字或汉语拼音 4不能使用保留字作为标志符(参见附录A) 4采用见名思义的原则: sum、name、sex,不要太长,一般以不超 过31个字符为宜 6 C+程序设计 2.2 标识符 保留字 u又称关键字(Keyword),是预先定义好的标识符,对 C+编译程序有特殊含义 u在程序中用到的其他名字(标识符)不能与C+的关键 字相同 u关键字也不能重新定义 u不同开发环境如VC、BC会对保留字有不同扩充 uC/C+保留字参见教材附录A C+关键字(P492) 7 C+程序设计 2.3 基本数据类型 中学阶段数学课学习的数据类型及运算 u实数(R)、复数(C) 4355.5,76.8 4有序实数对:2+3i u整数(I)、小数 435, -68 43.5 , 0.8 u自然数(N),正整数(Z) 40,1,2,3, u有理数、无理数 u正数、负数 u常数:,e 自然数 整数 小数 实数 复数 数 数 正数 负数 数 有理数 无理数 8 C+程序设计 2.3 基本数据类型 C+语言中的数据类型 整型 int 字符型 单字符型 char 宽字符型 wchar_t 实 型 单精度型 float 双精度型 double 逻辑型 bool 数据类型 基本数据类型 非基本数据类型 数组 type 指针 type * 空类型 void 结构 struct 共用体 union 枚举 enum 类 class 9 C+程序设计 2.3 基本数据类型 C+语言中数据为什么要区分类型? u不同类型的数据代表不同的 4数据表示形式 4合法的取值范围 4可参与的运算种类 4占用内存空间大小 u对程序当中所用到的所有数据都必须指定其数据类型 从基本数据类型到抽象数据类型 u无数据类型 void u基本数据类型 u构造数据类型 u抽象数据类型 10 C+程序设计 2.3 基本数据类型 基本数据类型:系统事先规定了的数据类型(内置类型) uint,整数,在目前绝大多数机器上占4个字节 ufloat,单精度浮点数,一般是4个字节长,VC 内缺省显示为 6 位有 效数字 udouble,双精度浮点数,一般是8个字节长,VC 内缺省显示为 14 位有效数字 uchar 4字符,一般是1个字节长 4用来表示 256 个ASCII字符,或者0255的整数 注 意 数据类型标识符为小写字母 int 大小范围与机器有关 11 C+程序设计 2.3 基本数据类型 基本数据类型修饰符:short、long、signed、unsigned u short 4 short int,短整数,一般2个字节长,通常简写为short u long 4 long int,长整数,VC中一般是4个字节长,通常简写为long 4 long double,长双精度(高精度)浮点数,一般是10个字节长。 u signed 4用来修饰char、int、short和long,说明他们是有符号的整数(正整 数、0和负整数),一般缺省都是有符号的,所以这个修饰符通常省略 u unsigned 4用来修饰 char、int、short 和 long,说明他们是无符号的整数(正 整数和0) 12 C+程序设计 一、无符号的整型数据 大于或等于零的正整数 无符号的短整型 分类 无符号的基本整型 无符号的长整型 unsigned short int 标识符 unsigned int unsigned long int 2 对应内存空 间的大小 4 4 0216-1 取值范围 同上 0232-1 注意 1、 的含义 2、标识符为小写字母 3、int 与机器有关 2.3 基本数据类型 13 C+程序设计 二、有符号的整型数据 包括负整数、零、正整数 有符号的短整型 分类 有符号的基本整型 有符号的长整型 signed short int 标识符 signed int signed long int 2 对应内存 空间的大小 4 4 取值范围 -215215 2.3 基本数据类型 -231231 同上 有符号整数在计算机内存中是以补码形式存储 14 C+程序设计 1. 求整数的补码规则 例如: (10)补= (-10)补= 00001010 11110110 -10 取绝对值 1000001010 1111010111110110 用二进制 表示 各位取反末位加1 2. 由补码推出原码 -10 加负号 1000001010 1111010111110110 用十进制 表示 各位取反末位减1 2.3 基本数据类型 下面以一个字节存储有符号整数为例分析其取值范围 15 C+程序设计 补码 00000001 1 10000000 -128 11111111 -1 01111111 127 00000000 0 10000001 -127 原 码 11111110 -2 取值范围 -128 127 -27 27-1 2.3 基本数据类型 正数 负数 16 C+程序设计 三、实型:一律作为有符号的数据使用 2.3 基本数据类型 分类 标志符 字节数 缺省有效精度 单精度实数 float 4 6位 双精度实数 double 8 14位 实数作为有符号的数据使用 ,可表示为小数形式和指数形式,但在计算机 内部都用浮点方式来实现存储 定点小数:小数点位置固定,位于符号位和第一个数值位之间,如 -0.34 ,表示的是纯小数; 浮点数:小数点的位置是可以浮动的数,如 浮点数通用表示是将实数分为阶码和尾数两部分: S 为尾数(正 负均可),一般规定用纯小数形式,r为基数,对二进制而言,r=2, j为阶码(正 负均可) ,但必须是整数 17 C+程序设计 2.3 基本数据类型 理论上浮点数在计算机中的存储格式为 阶码j尾数S 阶码 符号 阶码 数值尾数 符号 位数数值 18 C+程序设计 浮点数在VC6中实际的存储方式为 float 型 2.3 基本数据类型 31 30 29 23 22 21 1 0 符号位 阶码 尾数 double 型 63 62 61 52 51 50 1 0 符号位 阶码 尾数 阶码:决定数的大小,对应浮点数:2-128 2127,尾数:决定数的精度 19 C+程序设计 例:float 71.3125 转换为二进制为:1000111.0101,将其规范化之后成为: 1.000111010126 ,这里的规范化是指移动小数点使小数点的左边只有一个“1”。 内存里实际存储实数的三部分信息:符号(如+)、指数(如6)和尾数(即 小数点右边的位,如0001 1101 0100),而小数点左边的1并不存储。 0 10000101 0001 1101 01 0000000000000 (42 8E A0 00) 2.3 基本数据类型 符号位 指数位 小数部分 指数偏移量 单精度浮点数 1位31 8位30-23 23位22-00 127 双精度浮点数 1位63 11位62-52 52位51-00 1023 尾数部分占的位数愈多,实数的有效数字愈多,即有效精度愈高。指数部分占 的位数愈多,则能表示的数值范围愈大。 实数在操作中存在误差,例如:把 111111.111 作为 float 型数据,输出的结果是 111111.109 20 C+程序设计 四、字符型 采用 ASCII 码字符集,即用 1 个字节存放字符的 ASCII 码值 2.3 基本数据类型 分类 标志符 内存空间 取值范围 有符号字符型 signed char 1 -128127 无符号字符型 unsigned char 1 0255 21 C+程序设计 2.3 基本数据类型 数据类型数据长度适用范围小数点后 有效位数 bool8 bits(1Byte)0或10 char8bit (1Byte)02550 int32 bits(4Byte)-231(231-1)0 short int 16 bits (2Byte)-32768327670 long int32bits (4Byte)-231(231-1)0 unsigned short16 (2Byte)0655350 unsigned int32 bits (4Byte)0(232-1)0 unsigned long32 bits (4Byte)042949672950 float32 bits (4Byte)3.41038 3.410387 double64 bits (8Byte)1.710-308 1.71030816 long double64 bits (8Byte)1.710-308 1.71030816 22 C+程序设计 2.4 变量 变量:在程序运行中其值可以改变的量 u变量是存储信息的单元,它对应某个内存空间 u变量名代表其存储空间,程序能在变量中存储值和取出值 变量的定义: 数据类型 变量名1=初值,变量名2=初值,; 例: float r1=1.5f, r2=0.5f, r3; char ch=A; 变量的初始化:为变量赋初值的过程,用赋值运算符“=”进 行 u定义的同时进行初始化 u单独进行初始化 int a ,b; unsigned long sum ; a = 123, sum=0 ; b = a ; 23 C+程序设计 2.4 变量 变量名的含义 u表示分配给变量的存储空间 u表示内存空间中存储的数据:变量的值 每个变量都有一个名字、一个数据类型和一个值 注意变量名与变量值的区别 3 a 变量名(一个符号地址,在对程序编 译时系统分配给它一个内存地址) 变量值(在程序中对变量取值,实 际上是通过变量名找到相应内存地 址,从其存储单元中读取数据) 存储单元 24 C+程序设计 2.4 变量 变量名命名规定 u由字母、下划线、数字组成,且第一个符号不能是数字 u不要与关键字、保留字重名; u中间不能有空格 uC+是大小写敏感,即大写和小写字母是不同的 u变量名中不能包含”. ; , “ + -”之类特殊符号 u变量名不要与C+中的库函数、类名和对象名相同 u不要使用易混淆的字母 u某些功能的变量采用习惯命名,如循环变量习惯用i,j,k u采用见名思义的原则: sum、name、sex,不要太长,一般以 不超过31个字符为宜 u最好使用英文单词或其组合,切忌使用汉字或汉语拼音 25 C+程序设计 2.4 变量 变量名命名风格 u下划线和大小写通常用来增强可读性 uUnix风格: variable_name uWindows风格(匈牙利命名法): chName, strName 指出下列命名的正确性, 错误的指出原因 x_y,x1,X1,x,y 姓名 2x varname 指出下列命名的正确性, 错误的指出原因 _y1 Case,51select, A lot,-vv Sin,cin,cout,string D6Xy 26 C+程序设计 2.4 变量 匈牙利命名法 u标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类 型 u在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些 单词指出程序中该对象的用途 u常用的数据类型的标准前缀 4ch 字符(char) 4n 整数(integer) 4b BOOL 4l 长整数(long) 4h HANDLE(无符号int) 4m_ 类成员变量 4fn 函数(function) u例如,nCount表示一个计数器的变量,数据类型是整型。 27 C+程序设计 #include using namespace std; int main( ) int price = 30; int num, total; /定义变量,在内存中开辟区间 num=10; /变量赋值,10为常量 total=num*price; cout using namespace std; int main() int int10,int8,int16; /定义3个整型变量 int10 = 10; /默认为十进制 int8 = 010; /八进制 int16 = 0x10; /十六进制 cout using namespace std; int main( ) float a, b; double c, d; a=0.01; b=3.45678e-2; c=3.45678e-2; d=9.7654e-5; cout using namespace std; int main() char c1,c2,c3,c4; char n1,n2; c1=a; /字符常量 c2=97; /十进制 c3=x61; /转义字符 c4=0141; /八进制 cout using namespace std; #define PI 3.1415926 /自定义常量 int main() const int PRICE=30; /自定义常量,在程序中保持不变 int num, total; /定义变量,在内存中开辟区间 num=10; /变量赋值, 10 为文字常量 total=num*PRICE; cout using namespace std; #define PI 3.14156 #define S “China“ int main() const float pi=3.14156;/变量作为常量使用 cout using namespace std; int main() const double PI = 3.1415926; / Step 1: Read in radius double radius; cout radius; / Step 2: Compute area double area = radius * radius * PI; / Step 3: Display the area cout using namespace std; 包含输入输出流的头文件为 iostream.h,有关包含文件的 作用,在编译预处理部分(第5章)作详细介绍。 43 C+程序设计 int a,b; cinab; /程序运行至此停下,等待从键盘输入变量值 键盘输入:3 5 或:3 5 均可。 输入语句自动过滤空白字符! a 3键盘 b 5键盘 输入语句:cin u输入十进制整数和实数: cin . 2.6 I/O流控制 44 C+程序设计 float c,d; cincd; char ch1,ch2; cinch1ch2; 若输入:ab 则ch1为a, ch2为b。 若输入:a b 则ch1为a, ch2为b。 字符型变量过滤空白字符,cin格式过滤空白字符! 输入语句:cin u浮点型数据同整型数据一样 u字符型数据 2.6 I/O流控制 45 C+程序设计 float a; int i1,i2; char ch1,ch2; cini1ai2ch1ch2; 输入:34 5.678 1a b i2: 1 在缺省的情况下,cin自动跳过输入的空格,换言之,cin不能将输入 的空格赋给字符型变量; 回车键也是作为输入字符之间的分隔符,也不能将输入的回车键字符 赋给字符型变量。 a: 5.578i1: 34 ch1: ach2: b 2.6 I/O流控制 输入语句:cin u不同类型数据混合输入 46 C+程序设计 若要把从键盘上输入的每一个字符,包括空格和回车键都作为一个输 入字符赋给字符型变量时,必须使用函数cin.get(),其格式为: cin.get(); cin.get() 从输入行中取出一个字符,并将它赋给字符型变量,该语句一 次只能从输入行中提取一个字符。 char c1; cin.get(c1); char ch1,ch2,ch3; cin.get(ch1); cin.get(ch2); cin.get(ch3); 则:ch1:Ach2:空格ch3:B 输入:A B 并且在输入缓冲区中保留回车键! 2.6 I/O流控制 47 C+程序设计 输入语句:cin u输入十六进制或八进制数据:缺省情况下,系统约定输入的整型 数是十进制数据;当要求按八进制或十六进制输入数据时,在 cin 中 必须指明相应的数据类型:hex 为十六进制,oct 为八进制,dec 为十 进制。 int i,j,k,l; cinhexi;/指明输入为十六进制数 cinoctj;/指明输入为八进制数 cink;/输入仍为八进制数 cindecl;/指明输入为十进制数 当执行到语句cin时,若输入的数据为: 11 11 12 12 结果:i: 17 j: 9 k: 10 l: 12 2.6 I/O流控制 48 C+程序设计 2.6 I/O流控制 输入语句:cin u使用非十进制数输入时,要注意以下几点 4八进制或十六进制数的输入,只能适用于整型变量,不适用于字 符型变量,实型变量 4当在cin中指明使用的数制输入后,则所指明的数制一直有效,直 到在接着的cin中指明输入时所使用的另一数制为止。如上例中,输入k的 值时,仍为八进制。 4输入数据的格式、个数和类型必须与cin中所列举的变量类型一一 对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的 提取数据也不正确。 cina b; cinab; int a, b; cinab; 49 C+程序设计 输出语句:cout u与输入 cin 对应的输出是cout 输出流 u当要

温馨提示

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

评论

0/150

提交评论