版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7/13/20211 1 主讲主讲 中南大学软件学院中南大学软件学院 谭长庚谭长庚 2015.92015.9 7/13/20212 Chapter 1 7/13/20213 Some Questions 1用过计算机?用过计算机? 2都用过什么软件(程序)?都用过什么软件(程序)? 3了解计算机信息的表示(补码)了解计算机信息的表示(补码),数制?数制? 4程序是?学过编程?程序设计有多难?程序是?学过编程?程序设计有多难? 7/13/20214 第一个程序:第一个程序:Hello C+ #include ”stdafx.h” #include int main() std:coutHello
2、 C+; system( pause ); return 0; 如何学习程序设计语言如何学习程序设计语言 1.1.模仿模仿 2.2.多读、写多读、写 3.3.提高自主学习的能力提高自主学习的能力 * * 主动性主动性 * * 发现问题发现问题 * * 解决问题:解决问题: * * 方法方法: :网、讨论、试网、讨论、试 * * 表达(程序表达(程序, ,算法描述)算法描述) 模仿输出模仿输出“Welcome to CSU” 输出结果:输出结果:Hello C+ 7/13/20215 扩展程序:求圆的面积扩展程序:求圆的面积,会求吗?会求吗? #include using namespace s
3、td; int main() double radius; double area; /Step 1: Read in radius-输入输入 cinradius; /Step 2:Compute area-处理处理 area = radius*radius*3.14; /Step 3:Display the area-输出输出 cout The area is ; cout area endl; 输入输入处理处理输出结果输出结果 7/13/20216 求长方形的面积:输入两条边到求长方形的面积:输入两条边到a,b,面积送,面积送s #include using namespace std;
4、int main() double a,b; double ; cina; /Step 1: Read in a ; / : Read in b ; /Step 2:Compute area cout x-y=-00000011 X-Y=-3 求补运算 :将一个补码连同符号位一起,按位求反、末位加一将一个补码连同符号位一起,按位求反、末位加一 求真值:求真值: 一个负数的补码再求补一个负数的补码再求补= =该数正数的原码(该数正数的原码(补上负号就得负数的真值补上负号就得负数的真值) 结果为补码结果为补码 7/13/202141 1.3.6 非数值信息的表示非数值信息的表示 n西文字符:西文字
5、符: nASCII码:用7位二进制数表示一个字符,最多 可以表示27=128个字符 nEBCDIC码:用8位二进制数表示一个字符,最多 可以表示28=256个字符 n汉字:应用较为广泛的是国家标准信息交换用汉 字编码(GB2312-80标准),简称国标码。是二字节 码,用二个七位二进制数编码表示一个汉字。 nUnicode:2字节字符编码,它为每种语言中的每 个字符设定了统一并且唯一的二进制编码,以满足 跨语言、跨平台进行文本转换、处理的要求。1990 年开始研发,1994年正式公布。 7/13/202142 1.3.7 十进制数的十进制数的BCD码表示码表示 nBCD(Binary Code
6、d Decimal)码是十进制数的另)码是十进制数的另 一种二进制编码形式。它有利于用二进制来精确表示一种二进制编码形式。它有利于用二进制来精确表示 十进制数。十进制数。 nBCD码有多种形式,常用的是码有多种形式,常用的是8421码,每一位十进码,每一位十进 数码用四位二进数码表示,不允许出现数码用四位二进数码表示,不允许出现10101111 四种组合。四种组合。 0 000050101100001 0000 1 000160110 110001 0001 2 001070111120001 0010 3 001181000 1230001 0010 0011 4 0100910011234
7、0001 0010 0011 0100 nBCD码常采用压缩形式存贮:一个字节存放二位码常采用压缩形式存贮:一个字节存放二位BCD码。码。 7/13/202143 1.4 程序设计语言 n程序设计的结果必然要用一种能被计算机程序设计的结果必然要用一种能被计算机 接受的语言表示出来,即编程实现接受的语言表示出来,即编程实现 (Coding)。)。 n根据计算机指令系统和人们解决问题所采根据计算机指令系统和人们解决问题所采 用的描述语言(如:数学语言)的接近程用的描述语言(如:数学语言)的接近程 度,常常把程序语言分为:度,常常把程序语言分为: n 低级语言 n 高级语言 n通常所讲的通常所讲的程
8、序设计语言程序设计语言往往指的是高级往往指的是高级 语言。语言。 7/13/202144 1.低级语言和高级语言 n低级语言低级语言:是指特定计算机能够直接理解的语言:是指特定计算机能够直接理解的语言 (或与之直接对应的语言):(或与之直接对应的语言): n机器语言:采用指令编码和数据的存储位置来表示操 作以及操作数; n汇编语言:是用符号名来表示操作和操作数位置,以 增加程序的易读性。需要翻译(汇编)成机器语言才 能执行。 n高级语言高级语言:是指人容易理解和有利于人对解题过:是指人容易理解和有利于人对解题过 程进行描述的程序语言。典型的高级语言有:程进行描述的程序语言。典型的高级语言有:
9、nFORTRAN、COBOL、Basic、Pascal、C、Ada、 Modula-2、Lisp、Prolog、Simula、Smalltalk、C+、 Java等 7/13/202145 2.低级语言与高级语言程序的比较低级语言与高级语言程序的比较 n计算计算a+b*c-d的值,的值, n用汇编语言可写成: mov ax,b mul ax,c add ax,a sub ax,d mov r,ax n用高级语言可写成: r = a+b*c-d 7/13/202146 n低级语言低级语言 n优点:写出的程序效率比较高,包括执行速度 快和占用空间少。 n缺点:程序难以设计、理解与维护,难以保证 程
10、序的正确性。另外,可移植性差。 n高级语言高级语言 n优点:程序容易设计、理解与维护,容易保证 程序正确性。可移植性好 n缺点:用其编写的程序相对于用低级语言编写 的程序效率要低,翻译成的目标代码量较大 。 7/13/202147 3.高级语言的翻译 n用高级语言书写的程序须翻译成机器语言程序用高级语言书写的程序须翻译成机器语言程序 才能在计算机上运行。翻译方式有两种:才能在计算机上运行。翻译方式有两种: n编译 n把高级语言程序(称为源程序)首先翻译成功能上等价 的机器语言程序(称为目标代码程序)或汇编语言程序 (再通过汇编程序把它翻译成目标代码程序),然后执 行目标代码程序。 n在目标代码
11、程序的执行中不再需要源程序。 n解释 n对源程序中的语句进行逐条翻译并执行,翻译完了程序 也就执行完了。 n这种翻译方式不产生目标程序,程序的每次执行都需要 源程序。 7/13/202148 n把高级语言程序翻译成机器语言程序的工把高级语言程序翻译成机器语言程序的工 作一般由程序来实现,根据翻译方式可把作一般由程序来实现,根据翻译方式可把 翻译程序分为:翻译程序分为: n编译程序编译程序 n解释程序解释程序 n一般来说,一般来说, n编译执行比解释执行效率高 n解释执行容易实现平台无关 7/13/202149 1.5 C+语言的产生 nC+是贝尔实验室的是贝尔实验室的Bjarne Strous
12、trup 为支持为支持面向对象面向对象程序设计而设计的一种程序设计而设计的一种 系统程序语言系统程序语言 /wiki/Bjarne_Stroustrup n从从C语言发展演变而来的,首先是一个更好的语言发展演变而来的,首先是一个更好的C n引入了类的机制,最初的引入了类的机制,最初的C+被称为被称为“带类的带类的C” n1983年正式取名为年正式取名为C+ n从从1989年开始年开始C+语言的标准化工作语言的标准化工作 n于于1994年制定了年制定了ANSI C+标准草案标准草案 n于于1998年年11月被国际标准化组织(月被国际标准化组织(ISO)
13、批准)批准 为国际标准,成为目前的为国际标准,成为目前的C+ 7/13/202150 1.6 C+程序的组成 n逻辑上逻辑上,一个,一个C+程序程序 n由一些函数(子程序)、类、全局变量/对象的定 义构成,其中必须有且仅有一个名字为main的函数。 n函数由函数名、参数和返回类型、局部变量/对象 的定义以及语句序列构成; n类由数据成员和成员函数构成。 n变量或对象的定义可以出现在函数的外部和内部, 而语句只能出现在函数内部。 nC+程序从函数main开始执行。 7/13/202151 /This is a simple C+ program #include /对对C+标准库中的程序实体进行
14、声明标准库中的程序实体进行声明 using namespace std; /指定使用标准库的名空间指定使用标准库的名空间std。 int main() /主函数主函数 double x,y,z; /定义局部变量定义局部变量x、y和和z cout x y; /从键盘输入数据给变量从键盘输入数据给变量x和和y z=x+y; /将将x+y送送z coutx+y=zendl; /输出结果输出结果z system( pause ); return 0; /程序结束。程序结束。 上述程序的运行结果为:上述程序的运行结果为: Enter two numbers: 7.2 9.3 7.2 + 9.3 = 16
15、.5 7/13/202152 n物理上物理上,一个,一个C+程序程序 n可以放在一个或多个源文件(模块)中 n每个源文件包含一些函数、类和外部变量/对象 的定义,其中有且仅有一个文件中包含一个函数 main。(一个工程中只能有一个main函数) n每个源文件可以分别编译。 7/13/202153 1.C+的字符集的字符集 n构成语言的构成语言的基本符号基本符号称为语言的称为语言的字符集。 nC+的字符集由下列符号构成:的字符集由下列符号构成: n大小写英文字母:az, AZ n数字:09 n特殊字符: ! # % ? “ ( ) 空格空格 横向制表横向制表 纵向制表纵向制表 换页换页 换行换行
16、 7/13/202154 2.标识符(Identifier,ID ) n标识符由字母或下划线开始,由字母、数字、下 划线组成。 student、student_name、x_1、_name1 合法合法 8bc、123不合法 n标识符通常用来给程序中的标识符通常用来给程序中的实体实体命名,程序实体命名,程序实体 包括:包括:常量常量、变量变量、函数函数、对象对象、类型类型(包括(包括 类类)、)、标号标号等。等。 n其有效长度为131个字符,长度超过31个字符者 只识别前31个字符,VC+标识符长度为1247 个字符。 7/13/202155 n在使用标识符时应注意以下几点:在使用标识符时应注意
17、以下几点: n大小写字母有区别,如:abc、Abc与ABC不同。 n关键词不能作为用户自定义的标识符,它们有特殊的作 用。 n具体编译程序可能会限制标识符的长度。 n以两个下划线开头或以一个下划线后跟一个大写字母开 头的标识符往往在C+语言内部实现中用到,程序中不 要用这些标识符作为程序的全局标识符。 n对不同种类的程序实体最好采用不同风格的标识符,以 提高程序的易读性。例如:PI(常量)、StudentType (类型)、student(变量、对象或函数等) 7/13/202156 例例: 判断下面哪些是合法的标识符:判断下面哪些是合法的标识符: MyFile Salary 94 amoun
18、t void 94Salary Salary94 $amount f3.5 Num_of_Student 7/13/202157 n关键字是指语言预定义的标识符,它们有固是指语言预定义的标识符,它们有固 定的作用和含义,在程序中不能用作其它目定的作用和含义,在程序中不能用作其它目 的。的。 例如:例如:if、for、switch等等 n关键字全部由关键字全部由小写字母小写字母组成。标准组成。标准C+ (ISO14882)定义了)定义了74个关键字,具体的个关键字,具体的 C+编译器会做一些增删。常用关键字参见编译器会做一些增删。常用关键字参见 教材的表教材的表1-1 3.关键字(keyword
19、) 7/13/202158 数据类型说数据类型说 明符与修饰明符与修饰 符符 bool char wchar_t class const double enum float int long short signed struct union unsigned void volatile 存储类型说存储类型说 明符明符 auto extern inline register static 访问说明符访问说明符friend private protected public 其它说明符其它说明符 asm explicit namespace operator template this typed
20、ef typename using virtual 语句与标号语句与标号 break case catch continue default do else for goto if return switch throw try while 运算符及逻运算符及逻 辑值辑值 delete false new sizeof true 表表1-1 C+-1 C+常用关键字及分类常用关键字及分类 ok 7/13/202159 n字面常量 用于表示在程序中直接书写的常量,又称用于表示在程序中直接书写的常量,又称 直接量(literal)。如:)。如:128、3.14、A、 “abcd”等等 。 n操作符
21、 用于描述运算。如:用于描述运算。如:+,-,*,/, =, , =,=,|, return 0; Saved on the disk stored on the disk Source code (developed by the programmer) Machine Code program Linker stored on the disk An object file (e.g., Welcome.obj) is created. An executable file (e.g., Welcome.exe) is created. 7/13/202171 4.C+集成开发环境 n出现
22、了很多出现了很多C+集成程序开发环境,如:集成程序开发环境,如: nVisual C+ nTurbo C+ nC+ Builder nDev C+,等 n在这些集成环境中,往往使用一条命令在这些集成环境中,往往使用一条命令 (菜单项)就能完成所有的步骤,并且,(菜单项)就能完成所有的步骤,并且, 一些开发环境还提供了可视化的程序设计一些开发环境还提供了可视化的程序设计 支持和功能强大的程序动态调试等工具。支持和功能强大的程序动态调试等工具。 n(Visual C+ 6.0演示)演示) 7/13/202172 在VC环境下的编程步骤 nstep 1 启动启动VC6.0 nstep2 建立项目文件
23、建立项目文件 3.选选 控控 制制 台台 应应 用用 4.输输 入入 项项 目目 名名 称称 7/13/202173 nstep3 编辑源程序编辑源程序 n点文件菜单的新建新建,选定源文件类型选定源文件类型,输入文件名,点输入文件名,点 确定确定 2.输输 入入 源源 文文 件件 名名 1.选选 c + + 源源 文文 件件 3.在此输入程序语句在此输入程序语句 7/13/202174 nstep4 点点文件文件菜单的菜单的存盘存盘 (另存为另存为可以修改路径与文件名)可以修改路径与文件名) nstep5 编译源程序编译源程序 nstep6 组建组建 nstep7 运行运行 1.点组建菜单点组
24、建菜单或或点工具栏快捷图标点工具栏快捷图标 2.观察下面的信息提示,观察下面的信息提示,0 errors,成功,成功 7/13/202175 常见的语法错误 n缺少语句结束符缺少语句结束符“;” nC+语句以;结尾,在缺;号的语句后补上。 n语句中出现有语句中出现有未知字符未知字符。 nC2018是未知字符错误编号。0 xa3、0 xbb是使用了全 角分号(中文);改为英文的即可。 7/13/202176 常见的语法错误 n未定义的标识符未定义的标识符 nC+标识符要先定义后使用,变量c没有定义,因之前有 分号。该错有时是拼写错误导致 n一个项目中出现有多个一个项目中出现有多个main函数。函
25、数。 n一个项目只能有一个main函数 n当要编一个新的程序时必须新建一个项目 7/13/202177 Trace a Program Execution #include using namespace std; int main() double radius; double area; / Step 1: Read in radius radius = 20; / Step 2: Compute area area = radius * radius * 3.14; / Step 3: Display the area cout The area is ; cout area endl;
26、 no valueradius allocate memory for radius 7/13/202178 Trace a Program Execution no valueradius memory#include using namespace std; int main() double radius; double area; / Step 1: Read in radius radius = 20; / Step 2: Compute area area = radius * radius * 3.14; / Step 3: Display the area cout The area is ; cout area endl; no valuearea allocate memory for area 7/13/202179 Trace a Program Execution 20radius no valuearea assign 20 to radius #include using namespace std; int main() double radius; double area; / Step 1: Read in radius radius = 20; / Step 2: Compute
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棚面保温发泡施工方案
- 家装防水涂料施工方案
- 工地碳渣回填施工方案
- 矿山放炮钢棚施工方案
- 外墙c型保温板施工方案
- 白玉山绿化施工方案设计
- 景观提升工程文明施工方案
- 风力发电场管理制度方案
- 月结协议合同
- 支付代理合同
- 湖北省知名中小学教联体联盟2023-2024学年八上期中数学试题(原卷版)
- 英语丨广东省2025届高三上学期10月阶段检测考英语试卷及答案
- 预防未成年人犯罪主题班会课件
- 公安机关人民警察高级执法资格考题及解析
- 部编版二年级语文上册第二单元全部集体备课教案
- 闽教版小学五年级上册英语期中试卷附答案
- 高空作业安全技术交底
- DB32 4418-2022《 居住建筑标准化外窗系统应用技术规程》
- JTS165-7-2014 游艇码头设计规范
- 《药品不良反应报告管理制度》
- 2024年创业计划书猫咖奶茶店
评论
0/150
提交评论