《C程序设计第1章基本数据与表达式(一).ppt》由会员分享,可在线阅读,更多相关《C程序设计第1章基本数据与表达式(一).ppt(55页珍藏版)》请在三一办公上搜索。
1、C+程序设计,第1章 基本数据与表达式,1.1 概述,1.2 C+的字符集与词汇,1.3 C+的基本数据类型与存储形式,1.4 数据对象与访问,1.5 表达式,1.6 数据输入和输出,小结,程序设计语言 人指挥计算机工作的工具,是由字、词和语法规则构成的指令系统,程序设计根据特定的问题,使用某种程序设计语言,设计出计算机执行的指令序列主要完成两方面工作:数据描述(2)数据处理,1.1.1 程序设计与程序设计语言,1.1 概述,问题:输入圆的半径,求圆的周长和面积,数据描述:半径,周长,面积均用实型数表示数据处理:输入半径 r;计算周长=2*r;计算面积=*r2;输出半径,周长,面积;,1.1.
2、2 一个简单的C+程序,1.1 概述,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#
3、includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,数据描述,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*P
4、I*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,数据处理,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;
5、,输入数据,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,计算周长和面积,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#inclu
6、devoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,输出计算结果,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r
7、;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,注释行,例1-1 方法一,用结构化方法编程,求圆的周长和面积,#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,/count the girth and area of circle,/t
8、his is a simple program,注释第一种形式:以”/”开始至行末,例1-1 方法一,用结构化方法编程,求圆的周长和面积,#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,/*this is a simple program count the girth and area of circle*/,注释第一种形式:以”/
9、”开始至行末,第二种形式:/*字符串*/,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,预编译指令在程序编译之前把指定文件内容复制到此处,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count th
10、e girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,函数头,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double
11、PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,函数返回值类型void 空类型,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout
12、girth=girth endl;cout area=area endl;,函数名main 主函数名,系统预定义,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,参数表没有参数不能省略圆括号,例1-1 方法一,用
13、结构化方法编程,求圆的周长和面积,/count the girth and area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,函数体 花括号相括的语句序列 各语句以分号结束 一行可以写多个语句 一个语句可以分多行书写,例1-1 方法一,用结构化方法编程,求圆的周长和面积,/count the girth an
14、d area of circle#includevoid main()double r,girth,area;const double PI=3.1415;cout r;girth=2*PI*r;area=PI*r*r;cout radius=r endl;cout girth=girth endl;cout area=area endl;,函数是程序基本运行单位,一般形式为:类型 函数名(参数表)语句序列,例1-2 用面向对象方法编程,求圆的周长和面积,分析,“圆”是抽象的类类型,建立具体的圆(对象),半径?,圆的周长?面积?,实例化,例1-2 用面向对象方法编程,求圆的周长和面积,分析,圆
15、类 数据成员 半径 成员函数 置半径值求圆的半径求周长 求面积,实例化,例1-2 用面向对象方法编程,求圆的周长和面积,#includeclass Circle double radius;public:void Set_Radius(double r)radius=r;double Get_Radius()return radius;double Get_Girth()return 2*3.14f*radius;double Get_Area()return 3.14f*radius*radius;void main()Circle A,B;A.Set_Radius(6.23);cout A
16、.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl;cout A.Area=A.Get_Area()endl;B.Set_Radius(10.5);cout B.radius=B.Get_Radius()endl;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,例1-2 用面向对象方法编程,求圆的周长和面积,#includeclass Circle double radius;public:void Set_Radius(double r)radius=r;
17、double Get_Radius()return radius;double Get_Girth()return 2*3.14*radius;double Get_Area()return 3.14*radius*radius;void main()Circle A,B;A.Set_Radius(6.23);cout A.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl;cout A.Area=A.Get_Area()endl;B.Set_Radius(10.5);cout B.radius=B.Get_Radius()endl
18、;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,Circle 类定义,例1-2 用面向对象方法编程,求圆的周长和面积,#includeclass Circle double radius;public:void Set_Radius(double r)radius=r;double Get_Radius()return radius;double Get_Girth()return 2*3.14*radius;double Get_Area()return 3.14*radius*radius;void main()C
19、ircle A,B;A.Set_Radius(6.23);cout A.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl;cout A.Area=A.Get_Area()endl;B.Set_Radius(10.5);cout B.radius=B.Get_Radius()endl;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,数据成员,例1-2 用面向对象方法编程,求圆的周长和面积,#includeclass Circle double radius;p
20、ublic:void Set_Radius(double r)radius=r;double Get_Radius()return radius;double Get_Girth()return 2*3.14*radius;double Get_Area()return 3.14*radius*radius;void main()Circle A,B;A.Set_Radius(6.23);cout A.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl;cout A.Area=A.Get_Area()endl;B.Set_Radiu
21、s(10.5);cout B.radius=B.Get_Radius()endl;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,成员函数,例1-2 用面向对象方法编程,求圆的周长和面积,#includeclass Circle double radius;public:void Set_Radius(double r)radius=r;double Get_Radius()return radius;double Get_Girth()return 2*3.14*radius;double Get_Area()retu
22、rn 3.14*radius*radius;void main()Circle A,B;A.Set_Radius(6.23);cout A.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl;cout A.Area=A.Get_Area()endl;B.Set_Radius(10.5);cout B.radius=B.Get_Radius()endl;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,建立对象(类类型变量),例1-2 用面向对象方法编程,求圆的周
23、长和面积,#includeclass Circle double radius;public:void Set_Radius(double r)radius=r;double Get_Radius()return radius;double Get_Girth()return 2*3.14*radius;double Get_Area()return 3.14*radius*radius;void main()Circle A,B;A.Set_Radius(6.23);cout A.Radius=A.Get_Radius()endl;cout A.Girth=A.Get_Girth()endl
24、;cout A.Area=A.Get_Area()endl;B.Set_Radius(10.5);cout B.radius=B.Get_Radius()endl;cout B.Girth=B.Get_Girth()endl;cout B.Area=B.Get_Area()endl;,通过对象调用类的成员函数,编辑程序,在VC集成开发环境选择新建文件命令,1.1.3 程序的编译执行,编辑程序,在弹出对话框选择文件类型,1.1.3 程序的编译执行,编辑程序,输入源程序文件名,1.1.3 程序的编译执行,编辑程序,在编辑窗口输入源程序,1.1.3 程序的编译执行,编辑程序,编译程序,选择编译命令,
25、1.1.3 程序的编译执行,用热键选择编译命令,编辑程序,编译程序,1.1.3 程序的编译执行,1.1.3 程序的编译执行,执行程序,编辑程序,编译程序,1.1.3 程序的编译执行,选择执行命令,1.1.3 程序的编译执行,执行程序,编辑程序,编译程序,热键选择执行命令,1.1.3 程序的编译执行,执行程序,编辑程序,编译程序,1.1.3 程序的编译执行,1.1.3 程序的编译执行,等待输入数据,执行程序,编辑程序,编译程序,1.1.3 程序的编译执行,运行结果,所有的语言系统都是由字符集和规则集组成的“字符”是语言的不可分解的最基本语法单位 由字符可以组成“词”,由词组成“表达式”、“句子”
26、,又由各种句子构成“函数”、“程序”,1.2 C+的字符集与词汇,C+语言的字符集是ASCII码的子集,有:26个小写字母:a b c d e f g h i j k l m n o p q r s t u v w x y z26个大写字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z10个数字:0 1 2 3 4 5 6 7 8 9其他符号:空格!#%?_|.,1.2 C+的字符集与词汇,单词是语言中有意义的最小语法单位。根据形成规则,一个单词由一个或多个字符组成。,1.2 C+的字符集与词汇,1关键字又称保留字关键字是系统预定义的单
27、词。C+不允许对关键字重定义。,1.2 C+的字符集与词汇,C+常用的关键字:auto break case char class const continue default delete elseenum explicit extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch this typedef union unsigned virtual void wh
28、ile,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,注意:,break main int 等不能用于命名程序中的自定义函数、变量、常量,(1)不能使用关键字作用户标识符;,(2)C+中,字母大小写敏感;,(3)C+没有规定标识符的长度,不同编译系统有不同的识别长度;,(4)标识符尽可能做到见文知义。,Aa 和 aa是两个不同的标识符,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,例1-3 判断以下标识符的正确性:,合法标识符有:a x1 no_1
29、 _a2c sum Name name不合法标识符有:2a x+y a,b a&b const,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,例1-3 判断以下标识符的正确性:,合法标识符有:a x1 no_1 _a2c sum Name name不合法标识符有:2a x+y a,b a&b const,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,例1-3 判断以下标识符的正确性:,以数字开头,合法标识符有:a x1 no_1 _a2c sum
30、Name name不合法标识符有:2a x+y a,b a&b const,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,例1-3 判断以下标识符的正确性:,合法标识符有:a x1 no_1 _a2c sum Name name不合法标识符有:2a x+y a,b a&b const,2标识符 由程序员定义的命名符,1.2 C+的字符集与词汇,语法:以字母或下划线开始,由字母、数字和下划线组成的符号串,例1-3 判断以下标识符的正确性:,关键字,合法标识符有:a x1 no_1 _a2c sum Name name不合法
31、标识符有:2a x+y a,b a&b const,3运算符 运算符是对数据进行操作的简洁表达,以单词的形式调用系统预定义函数,1.2 C+的字符集与词汇,例如:+加-减*乘/除 大于=大于或等于=等于!=不等于=小于或等于,4分隔符 用于在程序分隔不同的语法单位,便于编译系统的识别,1.2 C+的字符集与词汇,常用的分隔符有:空格,逗号,分号,冒号,括号,注释符等,有些单词,例如运算符,也起到分隔符的作用,例如:int a,b,c;a=b+c;,必须用空格作分隔符,4分隔符 用于在程序分隔不同的语法单位,便于编译系统的识别,1.2 C+的字符集与词汇,常用的分隔符有:空格,逗号,分号,冒号,
32、括号,注释符等,有些单词,例如运算符,也起到分隔符的作用,例如:int a,b,c;a=b+c;,5常数,常数由数据的书写形式定义它的类型和值 基本类型常数在程序运行时直接参与运算,不占用内存存储,例如:500 3.14159 0.263e-10 N,1.2 C+的字符集与词汇,例如:500 3.14159 0.263e-10 N,整数,常数由数据的书写形式定义它的类型和值 基本类型常数在程序运行时直接参与运算,不占用内存存储,5常数,1.2 C+的字符集与词汇,例如:500 3.14159 0.263e-10 N,常数由数据的书写形式定义它的类型和值 基本类型常数在程序运行时直接参与运算,不占用内存存储,5常数,1.2 C+的字符集与词汇,例如:500 3.14159 0.263e-10 N,字符,常数由数据的书写形式定义它的类型和值 基本类型常数在程序运行时直接参与运算,不占用内存存储,5常数,1.2 C+的字符集与词汇,