版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第二章 编程基础,西南交通大学软件学院 计算机基础教研室,计算机程序设计基础与Visual C+,2,教学目标,1了解C+程序的基本框架; 2掌握C+的基本数据类型; 3掌握常量、变量的定义及使用方法; 4掌握C+提供的基本运算符及表达式; 5掌握数据类型的转换; 6掌握标准输入输出流; 7能够使用Visual C+ 6.0集成开发环境编辑、编译、运行程序。,3,教学内容,1C+程序的基本框架 2C+程序的开发过程 3变量与常量 4运算符与表达式 5类型转换,4,编写程序:在计算机屏幕上显示:Hello,C+!,源程序清单: / 屏幕输出Hello,C+! #include /预编译命令
2、using namespace std; / using命令 void main( ) /主函数名 /表示函数的开头 coutHello,C+!endl; /函数体 /表示函数的结束,程序基本框架,5,编程技巧,1程序中“/”符号表明本行后续字符为注释信息,该信息与程序的运行无关,在编译时被忽略。 另一种注释方法: /* */ 夹在“/*”与“*/”之间的所有字符为注释信息。 2. #include 是一条预编译命令,它告诉编译系统在编译本程序时把系统提供的头文件iostream.h的内容插入到该行的位置。所谓头文件是系统提供的能实现某些特定功能的文件,如本例中用到系统提供的输出功能,该功能在
3、iostream.h文件中实现 本程序的预编译命令也可以写成: #include 多条#include命令必须分行书写。,程序基本框架,6,编程技巧,3. C+程序由一个或多个函数组成,其中,主函数main必须有且只有一个。函数名之后必须有一对小圆括号( ),括号中可以有参数。 main函数在程序中位置可以任意,但主函数main代表了程序执行的起始点和终止点,即程序由多个函组成时,不管main函数放在什么位置,程序总是从主函数main的第一条语句开始执行,并结束于主函数的最后一条语句。 在基本程序设计中,源程序只由一个主函数main构成,程序的框架结构均为:,程序基本框架,7,编程技巧,#in
4、clude using namespace std; void main( ) 函数体 (1)“”与“”必须配对使用,“ ”之间的内容为函数体,函数体内可以包含任意多行语句。 (2)C+规定每个语句的最后以“;”结束。 (3)C+程序的书写很灵活,一行可书写多个语句,一个语句可以写成多行,但书写时首先应该考虑程序的可读性。,程序基本框架,8,编程技巧,(4)主函数的书写也可以是如下形式: int main( void ) 函数体 return 0; 4. cout是一个标准输出文件名,表示标准输出设备计算机屏幕。符号“”是插入运算符,它指示计算机把其右端用双引号括起来的字符串输送到屏幕。 注意
5、:C+是区分大小写的,所有标点也必须使用西文标点,只有双引号、注释里可以使用中文。,程序基本框架,9,开发过程中涉及到的程序,源程序: 用源语言写的,有待翻译的程序 目标程序: 也称为结果程序,是源程序通过翻译程序加工以后所生成的程序。 翻译程序: 是指一个把源程序翻译成等价的目标程序的程序。,程序开发过程,10,三种不同类型的翻译程序,汇编程序: 其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序。 编译程序: 若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为编译程序。,程序开发过程,11,三种不同类型的翻译程序,解释程序: 这也是一种翻译程序
6、,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、 执行一句,直至将整个源程序翻译并执行完毕。,程序开发过程,12,程序开发步骤,编辑 将源程序输入到计算机中,生成后缀为cpp的磁盘文件。 编译 将程序的源代码转换为机器语言代码。 链接 将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。 运行调试,程序开发过程,13,例 编程输出下列文本,* * * * * * * * * * 2008北京欢迎你! * * * * * * * * * * 源程序清单: #include using namespace std
7、; void main( ) cout* * * * * * * * * *endl; cout 2008北京欢迎你! endl; cout* * * * * * * * * *endl; ,变量与常量,14,编程技巧,1.程序处理的对象是数据,数据有数值数据、文字数据、图像数据、声音数据等多种形式,最基本、最常用的数据是数值数据和文字数据。 2.C+中数据有常量和变量之分,在程序运行过程中,值可以改变的量称为变量,值不能被改变的量称为常量。常量有字面值常量和符号常量两种,字面常量又称为常数或直接常量,是可以从其字面形式直接判别的常量。 C+中的字面常量有整型、实型、字符型、布尔型、字符串型五
8、类,变量与常量,15,整型常量,整型常量包括正整数、负整数和零。 C+中的整型常量可以用十进制、八进制和十六进制表示: 十进制:如15,-235,0 八进制:以0打头,如 07,0327,-02 十六进制:以0X或0 x打头,如-0 x7, OX5bf 了解:长整型常量的表示方法是加后缀字母l或L , 如712l,0 x5fL,变量与常量,16,实型常量,变量与常量,17,字符型常量,变量与常量,18,附录 ASC代码表,变量与常量,19,字符串型常量,变量与常量,20,布尔型常量,布尔型数据的取值: 只有 false 和 true 两种 布尔型数据也可以和数值型数据参与运算, 此时: tru
9、e相当于1 false相当于0 这种情况下,vc+6.0编译系统会给出 警告信息,建议不要这样使用布尔型数据,变量与常量,21,例计算2与3的和并显示在屏幕上,算法描述:,变量与常量,22,源程序清单,#include using namespace std; void main( ) int a,b,sum=0; a=2; b=3; sum=a+b; couta“+”b“=”sumendl; ,变量与常量,23,编程技巧,1. 无论什么数据,计算机在处理时都要先将其存放在内存中,数据在内存中存放的格式称为数据类型,不同数据类型的数据存储格式不同。程序中所有用到的数据都必须指明其数据类型。 C
10、+的数据类型分为基本数据类型和非基本数据类型两大类。基本数据类型是C+内部预定义的类型,包括整型、实型、双精度型、字符型、布尔型。非基本数据类型是指根据C+语法规则由基本数据类型构造出来的类型,如数组、指针、引用、类、结构、联合、枚举等。,变量与常量,24,编程技巧,2.变量是用于临时存放数据的内存单元,所谓变量是指在程序运行的过程中该内存单元的内容可以改变 3.变量在使用前必须先定义,即给变量命名、指定数据类型、赋初值。 (1)变量的命名 不同语言系统可使用的字符有所不同,C+中可使用的字符集: 大小写的英文字母:AZ,az 数字字符:09 特殊字符:空格 !#%.,( ) ,变量与常量,2
11、5,编程技巧, 变量的命名必须遵循C+的标识符命名规则,所谓标识符就是指在程序中声明变量、数组、函数和标号等的名称,分为系统保留字和用户自定义标识符。系统保留字又叫关键字(参见附录),有预定的含义,不允许用户重新定义,也不允许用户定义的标识符与其同名。 用户自定义标识符的规则 标识符只能包含字母、数字和下划线; 必须以字母或下划线开头; 不能使用关键字; 大小写敏感; 变量命名应符合自定义标识符的规则,见名识意,变量与常量,26,(2)变量的基本数据类型,编程技巧,27,编程技巧,C+的数据类型分为有符号型和无符号型(加前缀unsigned),默认为有符号型,无符号型数据将符号位用于表示数值,
12、扩大了变量的表数范围 指定变量的类型时,尽可能使用占用内存空间少的数据类型,但也要考虑机器的运算速度。如用long型可以得到大范围的整数但同时会降低运算速度。用short型内存占用空间比int型少,但计算机处理short型数据时必须先将其转换成基本整型int型,导致计算机耗时多,因此常使用int型变量存储整数 选择数据类型时还必须考虑溢出问题,即存放的数据超出了存储范围,使得结果出错,变量与常量,28,(3)变量的定义,变量必须“先定义,后使用”。 程序运行时,系统为定义的变量分配内存空间,用于存放对应类型的数据,因而变量名就是对应内存空间的命名。 定义变量时可以赋初值,称为变量初始化。在C+
13、中,如果不给变量提供初值,变量会包含一个无意义的值,程序员称之为“垃圾数据”,因此建议养成给变量初始化的好习惯。 注意:初值的类型必须与变量的类型相同。,变量与常量,编程技巧,29,变量定义格式,变量与常量,编程技巧,30,例 求键盘输入的两个数的和,思路分析:c+中的标准输入流cin可以接收从键盘输入的数据。本题未指定数据类型,为避免数据溢出,数据类型最好定义为double型。 算法描述:,变量与常量,31,#include using namespace std; void main( ) double a,b, sum; / 定义了三个double型变量 coutab; / 由键盘输入数
14、据分别存入变量a、b中 sum=a+b; /a与b相加的和赋给变量sum couta+b= sum endl; ,源程序清单,变量与常量,32,编程技巧,C+使用数据流,即字符序列来执行标准输入输出操作。计算机屏幕是标准输出流设备,称为cout。键盘是标准输入流设备,称为cin。我们可以把cout流看作是通过计算机屏幕发往用户的字符系列,把cin流看作是通过键盘发给计算机的字符系列。 1.cinab;中“”称为提取运算符,该语句的作用是等待从键盘输入数据,接收后依次存入变量a、b中。输入数据的个数、类型必须与接收变量依次一致,输入数据之间可以用空格、回车或Tab键分隔开,输入完所有数据后,使用
15、回车键表示输入结束。,Page 32,变量与常量,33,注意: cin流的 “”后必须是变量名。 通常在输入语句的前面应增加一条输出语句,用于提示操作者输入几个什么数据类型的数据。 .couta“+”b“=”sumendl; 中“”称为插入运算符, 该语句的作用是将变量a的值、字符串+、 变量b的值、字符串=、变量sum的值依次显示在计算机屏幕上,endl起换行输出的作用。,Page 33,编程技巧,变量与常量,34,例 从键盘输入一个圆的半径,计算并输出圆的面积和周长,算法描述:,变量与常量,35,源程序清单,#include using namespace std; void main(
16、) double r=0.0; double area=0.0; double circum=0.0; coutr; area=3.14*r*r; circum=2*3.14*r; cout面积为: area endl; cout周长为: circum endl; ,变量与常量,36,编程技巧,1. 当程序中需要多次使用某个数值时,可以使用符号常量来代替。所谓符号常量,就是用标识符代表一个常量。如程序中多处用到圆周率3.14,我们可以定义const double PI = 3.14;后面的程序中就可使用PI代替3.14,当需要修改PI的精度时只要修改定义语句为const double PI =
17、 3.14159;即可。 2.符号常量的特点是先定义后使用,而且定义时一定要赋初值,在程序中间不能改变其值。定义符号常量时习惯使用大写字母。,变量与常量,37,编程技巧,3.符号常量的定义格式:,变量与常量,38,例求键盘输入的两个非0整数的和、差、积以及平均数,算法描述:,Page 38,算术运算符与算术表达式,39,源程序清单,算术运算符与算术表达式,#include using namespace std; void main( ) int a,b; double avg=0; coutab; avg=(a+b)/2.0; couta+b=a+bendl; couta-b=a-bendl
18、; couta*b=a*bendl; cout平均数=avgendl; ,40,编程技巧,算术运算符与算术表达式,1. 对数据进行处理和计算可以通过表达式来实现。表达式可以理解为用于计算的公式,它由运算符、运算量(也称操作数)和括号组成。执行表达式所规定的运算得到的结果值便是表达式的值 2.运算符分为单目运算符、双目运算符以及三目运算符 负号为单目运算符,又称为一元运算符 +、-均为双目运算符,又称为二元运算符 极个别的运算符为三目运算符,比如条件运算符,我们将在以后为大家做以介绍,41,3.数学中的加减乘除有“有括号先算括号、先乘除后加减,”、“同级先左后右”的运算规则,其实就是运算符的优先
19、级和结合性。C+中的运算符也具有优先级和结合性 结合性是指当表达式中的多个运算符优先级相同时,是按照从左至右的顺序执行,还是从右至左的顺序执行,从左至右称为左结合,从右至左称为右结合。如,加减乘除是按照左结合规则执行,大多数运算符都是左结合方式。,编程技巧,算术运算符与算术表达式,42,编程技巧,4.基本算术运算符的功能、优先级别,Page 42,算术运算符与算术表达式,(1)为求余运算符,用于计算两个整数相除的余数 (2)/为除法运算符,当两个整型数相除时,结果是取整数舍小数,43,例写出程序的运行结果,#include using namespace std; void main() in
20、t i=5,j=5; int m=10,n=10; i+; +j; couti jendl; couti+ +jendl; m-; -n; coutm nendl; coutm-“ ”-nendl;,算术运算符与算术表达式,44,解题技巧,1.C+提供了自增(+)、自减(-)运算符,作用是使变量的值增加1或减少1。 2. 自增(+)、自减(-)运算符只能用于变量,不能用于常量。 +、-在变量的前后位置不同导致运算过程不同:若变量在前,系统会先使用变量中原有的值参与运算、输出或赋值,然后变量再自增或自减1;若变量在后,变量先自增或自减1,然后系统再使用变量的新值参与运算、输出或赋值。 . +、-
21、结合方向自右向左。如-i+表示 -(i+),算术运算符与算术表达式,45,例编程计算奖金数额,奖金按销售额的5%计算,赋值运算符与赋值表达式,算法描述:,46,源程序清单,#include using namespace std; void main( ) double sales=0.0; double bonus=0.0; coutsales; bonus=0.05*sales; cout销售额为:salesendl; cout奖金为: bonusendl; ,赋值运算符与赋值表达式,47,编程技巧,1. 在程序运行中要改变变量的值,可以使用赋值语句。“=”为赋值运算符,当程序运行时,先求
22、出赋值号右边表达式的值,然后再将结果存入赋值运算符左边的变量。 (1)不能用赋值语句给常量赋值。 (2)表达式的数据类型必须和要赋值变量的数据类型匹配,否则系统将进行隐式类型转换,编译时出现警告信息。 (3)变量每次只能存储一个值,当另一个值赋给该变量后,新值会取代原有的值。,赋值运算符与赋值表达式,48,编程技巧,(5)为了简化程序、提高编译效率,在赋值符“=”之前可以加上其它运算符,构成复合赋值运算符,如:+=, -=, *=, /=, %=等 a=b=c=5表达式值为5,a,b,c均为5 a=5+(c=6)表达式值为11,a为11,c为6 a=(b=4)+(c=6) 表达式值为10,a为
23、10,b为4,c为6 a=(b=10)/(c=2) 表达式值为5,a为5,b为10,c为2 a+=a-=a*a 相当于: a=a+(a=a-a*a),Page 48,赋值运算符与赋值表达式,49,例写出程序运行结果,逗号运算符与逗号表达式,#include using namespace std; void main() int x=0,y=2; int a=5,i=0,j=0; x=(a=3*5,a*4); y=(i=2,j=2,i+,-j); coutxendlyendl; ,50,解题技巧,1. 逗号运算符的使用格式为: 表达式1,表达式2,表达式n 运行时依次求解各个表达式的值,最后一
24、个表达式n的值作为整个表达式的值。 2.使用逗号表达式的目的一般只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值。 3.逗号运算符是所有运算符中级别最低的运算符。已学运算符的优先级顺序为: 算术运算符 赋值运算符 逗号运算符。,逗号运算符与逗号表达式,51,自动类型转换,例 写出程序运行结果: #include using namespace std; void main( ) int a1=10,a2=5,k; double b,c,s; b=38.425,c=12.0; char c1=A,c2=B; s=b+a1-c; k=c1+c2+a1+b; coutk“,”sendl;,数据类型转换,52,解题技巧,1.如果不同类型的数据参与运算或者表达式值的数据类型与要赋值变量的数据类型不一致,大多数程序设计语言使用隐含类型转换来使数据类型一致。隐含类型转换由系统自动进行,但有可能影响程序结果的准确率,所以系统会出现警告信息,编程时要避免出现此类情况。 2.隐含类型转换原则: (1)赋值号右边类型转换为赋值号左边变量的类型。,数据类型转换,53,解题技巧,(2)多种类型数据混合运算时,低类型转换为高类型,数据类型转换,54,解题技巧, 横向箭头表明必须的转换,即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术研发守秘守则承诺书(5篇)
- 企业控制制度设计模板及执行要求
- 慈善公益活动保障系统承诺函5篇
- (正式版)DB3210∕T 1074-2020 《水稻长势遥感监测技术规程》
- 2026年幼儿园保健医职业发展规划
- 2026年银行营业网点突发事件应急预案与实战演练方案
- 2026年民营医院员工培训体系构建与效果评估
- 理想课堂标杆实践指南课件
- 2021-2022学年浙江省宁波市慈溪市七年级(上)期中数学试卷-带答案详解
- nba自定义球员协议书
- 护理操作:静脉输液技巧
- DB37∕T 4855-2025 海洋污染物毒性分析用 模式鱼种 海水青鳉世代培育技术规范
- 银行长岗位面试问题集
- 合并经营协议书
- 2026年调解员岗位高频面试题
- 公司价格协议合同
- 肝硬化失代偿期治疗护理
- 中药注射剂临床使用基本原则
- T/CI 424-2024锂离子电池用复合铜箔材料轻薄化设计要求
- 南宁市网约车考试试题及答案
- 慢性心力衰竭患者心脏康复长期管理方案依从性方案
评论
0/150
提交评论