




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C++语言程序设计》电子教案教师:李立第一章C++语言概述§1.1C++语言的简史与特点一、简史C++语言是1980年由Bell实验室开发的一种面向对象的程序设计语言,它是在C语言的基础上发展起来的。最初被称为“带类的C”,1983年更名为C++。第一章C++语言概述二、特点1、继承了C语言的优点和市场优势。2、增加了面向对象机制。3、弥补了C语言不支持代码重用、不适宜开发大型软件的不足。第一章C++语言概述§1.2简单的C++程序例1:设计一个最简单的C++程序。voidmain(){}说明一说明二说明三说明四第一章C++语言概述一、程序和程序文件1、程序:用计算机语言对程序要完成任务的描述。2、程序文件(源程序文件):存储程序的文本文件。名称为:﹡.cpp返回第一章C++语言概述二、函数和函数定义1、函数:具有特定功能的程序模块。2、函数定义格式:类型修饰符函数名(形式参数表)函数体如:doubleArea(doubler){return3.14*r*r;}注:每个C++程序都由一个或多个函数组成。返回第一章C++语言概述三、主函数(main函数)1、每个C++程序至少要有一个函数,这个不可缺少的函数就称为主函数,约定的函数名为main。2、主函数是程序的入口。一个应用程序是从主函数中第一个语句开始执行。返回第一章C++语言概述四、字母的大小写1、在C++程序中,字母的大小写具有不同的含义。如:main、Main、MAIN表示不同的名称。2、主函数的名称只能是main。返回第一章C++语言概述例2:设计一个程序,显示“同学们,你们好!”。#include<iostream.h>voidmain(){cout<<”同学们,你们好!”;}此程序的输出结果为:同学们,你们好!说明一说明二说明三说明四说明五说明六第一章C++语言概述一、C++语句1、基本语句以分号;作为结束标志。如:cout<<”同学们,你们好!”;2、复合语句用大括弧{}括起来的语句序列。{cout<<”你们好!”;cout<<”大家好!”;}返回第一章C++语言概概述二、程序序书写风风格一行中可可以有多多个语句句;一个语句句也可以以分布在在连续的的若干行行中。如:cout<<”你们好!!”;cout<<”大家好!!”;cout<<”你们好!”;返回第一章C++语言概概述三、常量量1、常量量是程序序中数据据的一种种重要的的表现形式,常常量的值值在程序序运行过过程中不不可改变。。2、常用用常量字符常量量如如::’a’字符串常常量如如::”string”整型常量量如如::345实型常量量如如::3.45返回第一章C++语言概概述四、cout和和数据的的显示输输出1、cout:连接接显示器器的C++输出出流对象象。2、<<::输出操操作符。。第一章C++语言概概述3、显示示输出语语句的格格式:cout<<表达式式【<<表达达式】;注:【】】中内内容可有有可无,,若有,可可重复多多次。如:cout<<100;屏幕输出出100cout<<100<<200<<100+200;屏幕输出出100200300第一章C++语言概概述4、插入入空格::(空格格符为’’))如:cout<<100<<’’<<200<<’’<<100+200;屏幕输出出:100200300第一章C++语言概概述5、换行输输出☆换行符号号:’\n’☆换行控制制符:endl如:cout<<100\n<<200;cout<<100<<endl<<200;则这两个个语句的的输出结结果相同同:100200返回第一章C++语言概概述五、编译译预处理理命令#include1、#::预处理理命令的的标志。。2、#include:包包含命令令;把一个文文本文件件的内容容插入到到该命令令处。3、<iostream.h>命令令参数;;给出要插插入文件件的文件件名。返回第一章C++语言概概述六、头文文件:以以h为扩扩展名的的文本文文件如果程序序文件中中引用到到的函数数、变量量、常量、对对象、数数据类型型等是由由别的文文件提供的,,则必须须在程序序文件的的开始部部分用#include命命令把有有关的头头文件包包含进来来。返回第一章C++语言概概述例3:设设计函数数hello,,通过显显示“××××,,你们好!!”,向向指定的的人问好好。#include<iostream.h>voidhello(char﹡﹡s){cout<<endl<<s<<”,你们好好!”;}voidmain(){hello(”同学们”);hello(”朋友们”);}说明一说明二第一章C++语言概概述该程序的的运行结结果,是是在屏幕幕上显示示输出::同学们,你们好好!朋友们,你们好好!第一章C++语言概概述一、函数数调用1、函数数调用的的格式::函数名((实在参参数表))2、实在在参数表表中的参参数必须须在数量量和类型型上与相应应函数定定义中的的形式参参数相一一致。3、在函函数调用用过程中中,首先先将实参参的值传传给形参。。第一章C++语言概概述4、在函函数调用用过程中中,程序序执行从从函数调调用处转移到被被调用函数定定义处,待此此函数执行完毕,,再返回到函函数调用处的的下一个语句继续续执行。返回第一章C++语语言概述二、程序的注注释两种注释形式式:☆符号“//””之后的内容容。只能占一一行。是C++特有的一种注注释形式。☆一对符号“/﹡”与“﹡﹡/”之间的的内容。可以以占多行。是从C语言继承的的一种注释形形式。返回第一章C++语语言概述例4:设计一一个函数Area,根据据给出的圆的的半径,计算出圆圆的面积。#include<iostream.h>#definePI3.1416doubleArea(doubler){returnPI**r*r;}voidmain(){doubleradius,area;cout<<endl<<”输入半径”;cin>>radius;area=Area(radius);cout<<endl<<”输出面积”<<area;}说明一说明二说明三说明四说明五说明六第一章C++语语言概述一、函数的返返回值1、函数返回回值的类型由由类型修饰符符确定。2、有返回值值的函数调用用可以作为表表达式。二、预处理命命令#define和符符号常量#define符符号常常量常常数如:#definePI3.1416返回第一章C++语语言概述三、变量及变变量的数据类类型1、变量:程程序中数据的的一种表现形形式,其值在程序运运行过程中可可以改变。2、变量必须须先定义后使使用。3、变量的定定义格式:类型修饰符变变量名名表;如:doubleradius,area;返回第一章C++语语言概述四、标识符1、为函数、、变量等命名名时所用的符符号。2、由大小写写字母、下划划线、数字这这三种字符组成,其其中第一个字字符必须是大大小写字母或下下划线。返回第一章C++语语言概述五、赋值1、赋值操作作符=2、赋值语句句的格式::变量=表达式式;如:circum=2﹡PI﹡﹡radius;返回第一章C++语语言概述六、cin和和键盘输入1、cin:连接键盘盘的输入流对对象。2、>>::输入操作符符3、键盘输入入语句的格式式:cin>>变量【>>变量】;;注:【】中中内容可有可可无,也可重重复多次。如:inta,b,c;cin>>a;cin>>a>>b>>c;返回第一章C++语语言概述§1.3程程序的编辑、、编译、连接接和运行一、应用程序序开发的四个个步骤:编辑、编译、、连接和运行行1、编辑输入、修改程程序。通过编编辑得到的程程序称为源程序。。源程序以文文本格式保存存在源程序文件中中。扩展名为为CPP。第一章C++语语言概述2、编译分析源程序文文件中的源程程序,生成目目标程序,保存在在目标程序文文件中。扩展展名为OBJ。3、连接将若干个目标标程序加以归归并、整理,,为所有的函函数、变量等等安排具体的的地址,生成成可执行程序序文件。扩展展名为EXE。第一章C++语语言概述4、运行按目的划分,,运行分为三三种:应用运行测试运行调试运行。第一章C++语语言概述示意图:编辑编译连接运行正确?开始源文件目标文件可执行文件否是结束c1.cppc1.objc1.exec2.objc3.obj应用程序的开开发是一个由由编辑开始,,经过编译、、连接和运行又又回到编辑的的反复循环的的过程。第一章C++语语言概述二、集成化编编译系统(集集成化开发环环境)1、集文字处处理、编译、、连接、项目目管理、程序排误等多多功能为一体体的软件开发发工具。2、最常用的的集成化编译译系统☆VisualC++(VC6.0)☆C++Builder4.0(CB4.0)第二章基基本数数据类型与表表达式§2.1C++数据类型概概述一、C++固固有的数据类类型1、整型类(int,short,long,char,enum,bool)2、实型类(float,double,longdouble)3、数组4、指针类(指针,引用用)5、记录类(struct,union)第二章基基本数数据类型与表表达式二、几点注意意1、基本数据据类型:整型型类和实型类类。2、C++程程序中的数据据主要体现为为常量和变量量。3、不同数据据类型的数据据存储格式不不同,所能实施的操作作也不相同。。第二章基基本数数据类型与表表达式§2.2整整型数数据一、各种整型型数据的基本本情况(见表表2-1)二、整型(int)常量量的表示1、整型常量量的表示方法法:☆十进制:无前前缀。如:12☆八进制:0前前缀。如:012☆十六进制:0x(或0X)前缀。如如:0x12☆无符号数:U(或u)后缀。如::12u第二章基基本数数据类型与表表达式2、短整型((short)常量的表表示方法:由于短整型常常量在求值过过程中会被无无条件地转换换为整型常量量,因此短整整型常量是借借助于整型常常量来表示的的。3、长整型((long))常量的表示示方法:在整型常量表表示方法的基基础上加L((或l)后缀缀。如:012L第二章基基本数数据类型与表表达式三、整型变量量的定义与初初始化1、定义格式式:类型修饰符变变量名名[=表达式式]【,变量名[=表达式]】;如:inta;inta=3;inta,b,c;inta,b=4,c=5;注:inta=3;inta;a=3;第二章基基本数数据类型与表表达式2、如果初始始化数据的类类型与所定义义的变量的类类型不一致,,该数据将被被转换为与变变量类型相同同。如:ints=109L;longy=99;第二章基基本数数据类型与表表达式§2.3字字符符型数据一、字符型数数据的基本情情况(见表2-2)二、字符型常量的的表示1、除’,”,\之外的可可显示字符用用该字符直接接表示,但必必须用’’括起起来。如:’’a’2、单引号内内用\后跟一一字母表示某某些控制字符符。第二章基基本数数据类型与表表达式3、单引号内内用\后跟一一数被无条件件地理解为八进制数,表表示该代码所所代表的字符符。如:’\15’代表CR4、单引号内内用\后跟一一16进制数数(以X或x打头)表示该代代码所代表的的字符。如:’\X0D’代表CR第二章基基本数数据类型与表表达式5、’(单引号))”(双引引号)\(反斜杠))的表示:’(单引引号):’’\’’”(双引引号):’’\”’\(反反斜杠):’\\’第二章基基本数数据类型与表表达式6、字符串常常量用双引号号括起来的字字符序列表示。如:”hello”’\0’:字符串结束符符。字符串结结束符不显式式地表示出来来,计算字符符串长度时也也不把它包含含在内,但它它占一个字节节的存储空间间。如:”hello”长度为5,但是占6个字节的存储储空间。hello’\0’第二章基基本数数据类型与表表达式三、字符型变变量的定义和和初始化类型修饰符变变量名名[=表达式式]【,变量名[=表达式]】;如:charc1,c2,c3;charc1=’x’,c2=’y’,c3=’z’;第二章基基本数数据类型与表表达式四、字符型与与整型的关系系1、在计算机机内部,每个个字符都与一一个整型的代码相对对应。如:’A’的代码是是65,’a’的代码是是97。2、在表达式式求值过程中中,所有的字字符将被转换为与其其代码等值的的整数。如:执行cout<<’A’+’B’;结果是131。第二二章章基基本本数数据据类类型型与与表表达达式式3、、在在输输入入输输出出时时,,C++的的输输入入流流和和输输出出流流可可明明确确区区分分这这两两种种数数据据类类型型。。如::cout<<’A’;输输出出结结果果为为Acout<<65;输输出出结结果果为为65第二二章章基基本本数数据据类类型型与与表表达达式式§2.4枚枚举举型型数数据据一、、枚枚举举型型数数据据的的基基本本情情况况((见见表表2-3))1、、枚枚举举是是一一种种用用户户自自定定义义的的数数据据类类型型,,使用用前前必必须须先先定定义义。。2、、枚枚举举类类型型的的值值域域由由用用户户定定义义的的一一组组符号常常量限限定。。第二章章基基本数数据类类型与与表达达式二、枚枚举类类型的的定义义和枚枚举变变量的的定义义1、枚枚举类类型的的定义义格式式enum枚枚举举名{符号号表};如:enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};第二章章基基本数数据类类型与与表达达式2、枚枚举变变量的的定义义(1))用已已定义义的枚枚举类类型名名来定定义枚枚举变变量。。如:WEEKDAYw1,w2;WEEKDAYw1=Wed,w2=Sat;(2))定义义枚举举类型型的同同时定定义枚枚举变变量。。如:enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat}w1,w2;第二章章基基本数数据类类型与与表达达式三、枚枚举型型与整整型的的关系系1、枚枚举中中的符符号常常量与与整数数有一一一对对应的的关系系,即即每个个符号号常量量对应应一个个整数数。(1))枚举举中的的符号号常量量依次次与0,1,2…对对应如:enumWEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};0123456第二章章基基本数数据类类型与与表达达式(2))任意意规定定其对对应关关系如:enumSomeDigits{ONE=1,TWO,FIVE=5,SIX,SEVEN};其中符符号常常量与与整数数的对对应关关系为为:ONE=1,TWO=2,FIVE=5,SIX=6,SEVEN=7注:可可用=为一一个符符号常常量规规定任任意的的对应应整数数;该该整数数加1就是是下一一个符符号常常量默默认的的对应应整数数。第二章章基基本数数据类类型与与表达达式2、在在表达达式求求值过过程中中,枚枚举型型被无无条件件转换换为相相应的的整型型。如:已已知今今天的的值,,求明明天是是星期期几。。WEEKDAYnextDayOf(WEEKDAYtoday){if(today==Sat)returnSun;returntoday+1;}第二章章基基本数数据类类型与与表达达式3、枚枚举型型数据据的输输入和和输出出都是是借助助于整数来来实现现的。。如:SomeDigitsdigit=TWO;cout<<digit;则则输出出结果果为2。如:WEEKDAYd;cin>>d;则要要使d的值值为Fri,应应键入入5。。第二章章基基本数数据类类型与与表达达式§2.5实实型数数据一、实实型数数据的的基本本情况况(见见表2-4)二、实实型常常量的的表示示1、双双精度度(double)常量量的表表示(1))常规规表示示法如如::32.30.323(2))科学学表示示法如如::3.23e+13.23e-1第二章章基基本数数据类类型与与表达达式2、单单精度度(float)常常量的的表示示:在双精精度常常量表表示的的基础础上加加F(或f)后后缀。。如:32.3F3.23e+1F3、长长双精精度(longdouble)常量量的表表示::在双精精度常常量表表示的的基础础上加加L(或或l)后缀缀。如:32.3L3.23e+1L第二章章基基本数数据类类型与与表达达式三、实实型变变量的的定义义和初初始化化类型修修饰符符变变量名名[=表达达式]【,变变量名名[=表达达式]】】;如:doublex,y;doublex=1.23,y=34.2;第二章章基基本数数据类类型与与表达达式§2.6符符号号常量量与常常值变变量一、符号常常量1、定义一一个符号来来代表某个个常量。如:#definePI3.14162、使用符符号常量的的好处:☆提高程序的的可读性。。☆提高程序的的可维护性性。☆提高程序的的一致性。。第二章基基本数据类类型与表达达式二、常值变变量1、在一般般变量的定定义前加上上保留字const。如:constdoublePI=3.1416;2、常值变变量在定义义时必须初初始化,且且在程序运行中中保持初始始值不变。。第二章基基本数据类类型与表达达式§2.7数数值表达式式一、无操作作符的表达达式—简单单表达式1、最简单单的表达式式:常量、、变量、函函数调用2、每个表表达式都有有一个值::☆常量的值::常量数据据本身。☆变量的值::存于该变变量空间的的数据。☆函数的值::函数返回回的数据。。3、数值表表达式:整整型类表达达式和实型型类表达式式第二章基基本数据类类型与表达达式二、算术操操作符+,-,**,/,%,+,-1、/::对于整型型和实型有有不同的意意义。(1)若两两个操作数数都是整数数,则为整整除操作((求商,舍舍余),操操作结果为为整数。如:10/3=3(2)只要要两个操作作数中有一一个为实数数,则操作作结果为实实数。如:10.0/3=3.3333第二章基基本数据类类型与表达达式2、%:只只用于整数数的求余操操作(求余余,舍商))。如:10%3=13、+,-(取正,,取负)::一元操作作符,在表表达式中可可以跟在其其他类型的的操作符的的后面,但但不能跟在在+(加号号),-((减号)后面。如:p*+qi/-3(√)P++qi--3(×)注:两个操操作符在一一起,最好好使用())如:p**(+q))i/(-3))第二章基基本数据类类型与表达达式三、位操作作符<<,>>,|,&,∧∧,~1、<<和>>((左移和右右移)如:5<<20000010100010100(20)操作数位位数如:5>>10000010100000010(2)☆左移一位相相当于乘以以2。☆右移一位相相当于整除除2。第二章基基本数据类类型与表达达式2、|,&,∧∧|:按位或或。(有1则1,全全0则0))&:按位与与。(有0则0,全全1则1))∧:按位位异或。((同则0,,异则1))例见2.7-30011|)0110——0111(7)0011&)0110——0010(2)0011∧)0110——0101(5)第二章基基本数据类类型与表达达式3、~:按按位取反。。(0变1,1变0)如:~0001100111100110四、赋值操操作符1、赋值操操作符=2、赋值语语句的格式式:变量=表达达式;如::k=7;3、赋值操操作符可连连续使用。。如:执行k=m=7;则k和和m的值都都为7。第二章基基本数据类类型与表达达式五、复合赋赋值操作符符+=,-=,*=,,/=,%=,<<=,>>=,|=,&=,^=复合赋值与与普通赋值值有严格的的对应关系系。即:变量?=表表达式变变量=变量?((表达式))(其中?表表示某个二二元操作符符)如:k+=3k=k+3s*=j-7s=s*(j-7)第二章基基本数据类类型与表达达式六、增1减减1操作符符(++,,--)1、++(前前增1,如如++i))--(前前减1,如如--i)先对变量增增1(或减减1),然然后变量以以增1(或减1))后的值参参与表达式式的计算。。(先变值,,后计算。。)第二章基基本数据类类型与表达达式例1:m=++k;例2:intk,d=5;k=++d*2;结果为:d=6,k=12k+=1;//k=k+1;m=k;d+=1;//d=d+1;k=d*2;第二章基基本数据类类型与表达达式2、++(后后增1,如如i++)--(后后减1,如如i--)变量先以原原值参与表表达式的计计算,然后后对变量增1((或减1))。(先计算,,后变值。。)第二章基基本数据类类型与表达达式例1:m=k++;例2:intk,d=5;k=d++*2;结果为:d=6,k=10m=k;k+=1;//k=k+1;k=d*2;d+=1;//d=d+1;第二章基基本数据类类型与表达达式七、sizeof操操作符1、作用::计算一数数据或数据据类型所占占空间的字节数。。2、格式例:doubled=3;cout<<sizeof(5)<<’’<<sizeof(d+2)<<’’<<sizeof(longdouble);sizeof(类型型修饰符))sizeof(表达达式)第二章基基本数据类类型与表达达式八、操作符符的优先级级和结合性性1、优先级级(见附录录A)当一个表表达式中中有多个个操作符符时,优优先级高高的先执执行。如如:22-2**5;2、结合性从右向左:一一元、赋值及及复合赋值操操作符从左向右:除除一元、赋值值及复合赋值值操作符外第二章基基本数数据类型与表表达式若表达式中相相邻的两个操操作符优先级级相同,那么先先执行哪个操操作符,就由由前一个操作符符的结合性确确定。如:k=j+=5;从左向右:先先执行前一个个操作符从右向左:先先执行后一个个操作符第二章基基本数数据类型与表表达式3、()具具有最高的优优先级,可强强制改变运算顺序。如::x+3/y(x+3)/y4、C++表表达式与数学学表达式的区区别(1)所有字字符写在同一一水平线上。。(2)算术运运算符与数学学中的运算符符在写法上有所区别。。(3)算术运运算符不能省省略。3abx*x3*a*b第二章基基本数数据类型与表表达式(4)一些运运算用函数实实现。pow:乘方方如如:sqrt:开开平方如如:log:自然然对数如如::lnxlog(x)log10::常用对数如如:lgxlog10(x)exp:以e为底的乘幂幂如:exp(2.5)sin:正弦弦如如:sinxsin(x)cos:余弦弦如如:cosxcos(x)pow(a,2*x)sqrt(a)第二章基基本数数据类型与表表达式使用这些函数数时应注意::1、参数必须须放在())中。2、在程序开开始必须加上上语句#include<math.h>(5)括号无无大、中、小小之分,全部部用小括号()来表表示,而且可可以嵌套。第二章基基本数数据类型与表表达式九、类型的自自动转换与强强制转换1、自动转换换当表达式中一一个操作符的的两个操作数数类型不同时时,其中一个个操作数的类类型将自动转转换成与另一一个操作数的的类型相同。。(1)转换的的优先顺序((见图2-1)第二章基基本数数据类型与表表达式(2)转换规规律短的向长的靠靠拢,有符号号的向无符号号的靠拢;整型向实型靠靠拢,低精度度的向高精度度的靠拢。例:4+23L-5.14L+23L-5.127L-5.127.0-5.121.9第二章基基本数数据类型与表表达式(3)转换规规律不适用的的两种操作☆只针对特定类类型的操作。。(两边向操作作符靠拢)☆赋值或复合赋赋值操作。(右边向变量量靠拢)例:intk=3;doubled=2.718;k+=d;//k=k+d;cout<<k;语句执行后的的输出结果为为5。第二章基基本数数据类型与表表达式2、强制转换换(1)利用类类型修饰符控控制类型转换换的过程。(2)格式::☆(类型修饰符符)表达式//继承C语语言格式☆类型修饰符((表达式)//C++特特有的格式如:float(j)或或(float)j、、(float)(j)int(3.14+i)或或(int)(3.14+i)3、只有兼容容的数据类型型才能相互转转换。第二章基基本数数据类型与表表达式§2.8逻逻辑辑型数据与逻逻辑表达式一、逻辑型数数据的基本情情况(见表2-5)1、逻辑型是是用来判别真真、假状态的的数据类型。。2、逻辑常量量只有两个::true((真)和false(假假)3、逻辑变量量的定义与初初始化(格式式同整型变量量)如:boolx;boolx=true;boolx,y,z;boolx=false,y=true,z=true;第二章基基本数数据类型与表表达式二、逻辑表达达式1、无操作符符的逻辑表达达式—简单逻逻辑表达式(逻辑常量、、逻辑变量和和逻辑型函数数调用)2、关系操作作符和关系表表达式(1)关系操操作符(==,!=,>,<,>=,<=)用于判断两个个操作数是否否相等或比较较两者的大小,比较结结果为false或true。如:-3!=3(值值为true)-3==3(值为false)(2)关系表表达式:由关关系操作符构构成的逻辑表达式。第二章基基本数数据类型与表表达式3、逻辑操作作符和逻辑表表达式(1)逻辑操操作符(!||&&)操作数必须是是逻辑型(或或可转换为逻逻辑型)的数数据。!:逻辑非((false变变true,,true变false)||:逻辑或或(有true则则true,全false则false)&&:逻辑与与(有false则false,全true则则true)(2)逻辑表表达式表达式的值只只能是false或true。第二章基基本数数据类型与表表达式三、复合条件件1、&&和||可用于构构造复合条件件,其左右两边的操作对对象称为子条条件。2、子条件1&&子条件2:表示两个子子条件同时成成立时这个复复合条件才成成立。称为::“子条件1且子条件2”。3、子条件1||子条件2:表示两个子子条件中至少少有一个成立立时这个复合合条件就成立立。称为:““子条件1或或子条件2””。第二章基基本数数据类型与表表达式4、复合条件件的典型应用用:判断一个数值值是否落入指指定的值域范范围内。☆若值域是一个个连续区间::用&&连接接。☆若值域是由相相互分离的多多个区间组成成:用||连接。。5、特殊情况况下,可根据据一个子条件件的值来判定复合条件件的值。E1&&E2:若E1和和E2中有一一个值为false,则该复合条件件的值为false。E1||E2:若E1和和E2中有一一个值为true,则该复合条件的的值为true。第二章基基本数数据类型与表表达式四、相反条件件1、若一个条条件为true,则另一一个条件必为false;若一个条条件为false,则则另一个条件必为true。那那么这两个条条件互为相反条件。。如:x>y和和x<=y互互为相反条件件。第二章基基本数数据类型与表表达式2、构造相反反条件的方法法☆使用!如:x>y的的相反条件为为!(x>y)☆利用配对关系系(==和!=,>和<=,<和>=)如:不用操作作符!,x<=y+3的的相反条件可表示为:x>y+3第二章基基本数数据类型与表表达式五、等价条件件1、若两个逻逻辑表达式在在任何情况下下同为false或同为为true,,则这两个表表达式所表达达的条件称为为等价条件。。如:x>y和和!(x<=y)为等价价条件第二章基基本数数据类型与表表达式2、典型的等等价形式!!EE!(x==y)x!=y!(x!=y)x==y!(x>y)x<=y!(x<=y)x>y!(x<y)x>=y!(x>=y)x<y相反条件的相相反条件等价于原条件件。第二章基基本数数据类型与表表达式!(E1&&E2)!E1||!E2!(E1||E2)!E1&&!E2E1&&E2E2&&E1E1||E2E2||E1对&&或||的分配律对&&或||的交换律第二章基基本数数据类型与表表达式3、利用等价价条件来求复复合条件的相相反条件例1:不用操操作符!,求求x==3||x<-3的相反条件件。解:!(x==3||x<-3)!(x==3)&&!(x<-3)x!=3&&x>=-3例2:不用操操作符!,求求x>=2&&x<=7的相反条件件。解:!(x>=2&&x<=7)!(x>=2)||!(x<=7)x<2||x>7第二章基基本数数据类型与表表达式六、永假条件件和永真条件件如:x<3&&x>15的值永为false,,为永假条件件。y>0||y<=0的值值永为true,为永真真条件。注:false是最简简单的永假条条件,true是最最简单的永真真条件。条件永远不成成立,值为false。。条件永远成立立,值为true。第二章基基本数数据类型与表表达式七、逻辑型数数据与其他数数据类型的关关系1、逻辑型数数据作为数值值数据使用时时,false转换为0,true转换为1。。2、字符型、、枚举型、整整型或实型数数据值作为逻逻辑值使用时时,一切0值值转换成false,一一切非0值转转换成true。3、指针值作作为逻辑值使使用时,空指指针值转换成成false,非空指针针值转换成true。总结:0就是false,非0就是true。第二章基基本数数据类型与表表达式说明:1、数值型数数据与逻辑型型数据出现在在同一表达式式中时,逻辑辑型数据无条条件地转换为为数值型数据据0或1。例:boolk=true;intj=3;cout<<endl<<j+k<<’’<<j==k;输出结果为::40第二章基基本数数据类型与表表达式2、在用数值值数据对逻辑辑变量进行初初始化或者赋值时,,任何非0值值都转换为1。例:boolk=9,h;h=5;cout<<k<<’’<<h;输出结果为::11注:逻辑型数数据的输入和和输出是借助助整数0和1来实现现的。第二章基基本数数据类型与表表达式3、逻辑操作作符&&,||,!与位位操作符&,,|,~的联联系。x&&ybool(x)&bool(y)x||ybool(x)|bool(y)!x~bool(x)例:1&&2bool(1)&bool(2)1&11第二章基基本数数据类型与表表达式八、逻辑型数数据的应用—条件操作符符与条件表达达式1、条件操作作符:?:2、格式:条条件?表达式式1:表达式式23、条件表达达式的值:若若条件成立,,条件表达式式的值就是表表达式1的值值,否则就是是表达式2的的值。第二章基基本数数据类型与表表达式例:intx,w;cin>>x;w=x>100?0:x**3;cout<<w;若输入20,,则输出60;若输入120,则输输出0;4、表达式1和表达式2应该是同一一数据类型的的表达式,若若不同则进行行类型转换。。第二章基基本数据类类型与表达达式5、表达式式1和表达达式2也可可以是条件件表达式,,即条件表达达式可以嵌嵌套。例:x>0?1:(x<0?-1:0)则:x>01x<=0x<0:-1x=0:0第二章基基本数据类类型与表达达式§2.9自自定义义类型修饰饰符1、用自定定义的标识识符来代表表一个特定定的数据类型。。2、格式::typedef类类型修饰饰符说明;;例:typedefintDISTANCE;DISTANCEi,Beijing_to_Tianjing;inti,Beijing_to_Tianjing;第二章基基本数据类类型与表达达式3、作用☆提高程序的的可读性。。☆提高程序的的可维护性性。☆避免类型使使用上的不不一致性。。例:已知程程序中用unsignedchar型数据表表示年龄,,为了增加加可读性,,决定将之之命名为AGE,则则完成命名名的定义是是:typedefunsignedcharAGE;第二二章章基基本本数数据据类类型型与与表表达达式式§2.10表表达达式式的的副副作作用用与与表表达达式式语语句句一、、表表达达式式的的副副作作用用1、、在在表表达达式式的的求求值值过过程程中中不不但但要要提提取取变变量的的值值,,还还可可能能改改变变变变量量的的值值。。如::k=m++2、、表表达达式式能能产产生生副副作作用用的的原原因因::引引入入了了具有有副副作作用用的的操操作作。。第二二章章基基本本数数据据类类型型与与表表达达式式☆赋值值((=))☆复合合赋赋值值((+=,--=,**=,/=,%=,<<=,>>=,|=,&=,^=)☆前增增1前前减减1((++,,----))☆后增增1后后减减1((++,,----))上述述操操作作所所作作用用的的对对象象必必须须是是变变量量,,因因此此这这些些操操作作也也称称为为::作用用于于变变量量的的操操作作。第二二章章基基本本数数据据类类型型与与表表达达式式3、、对对于于““作作用用于于变变量量的的操操作作””((除除后后增增1和和后后减减1)),,作作为为操操作作结结果果的的表表达达式式的的值值就就是是所所作作用用的的变变量量所所获获得得的的值值。。例::intk=3;cout<<(k+=2);cout<<’’’<<k;输出出结结果果为为::55第二二章章基基本本数数据据类类型型与与表表达达式式4、、可可对对同同一一变变量量连连续续施施加加若若干干个个““作作用用于变变量量的的操操作作””。。例::intk=3;cout<<++(k+=2);cout<<’’’<<k;输出出结结果果为为::66第二二章章基基本本数数据据类类型型与与表表达达式式注::(1))“作作用用于于变变量量的的操操作作””只只能能施施加加于变变量量对对象象。。如::(p+3)--=k,++5,100=p都都是是错错误误的的。。(2)当当若干个个“作用用于变量量的操作作”施加加于同一变量量时,除除了最后后一个外外,不得得有后增1或后减减1操作作。如:k++*=5是错错误的.第二章基基本本数据类类型与表表达式二、表达达式副作作用的应应用1、逗号号操作符符与逗号号表达式式(1)逗逗号操作作符:,(2)格格式:表达式1,表达达式2(3)逗逗号表达达式的值值:逗号号表达式式的值就是表达达式2的的值。如:由x=(i++,j)可可知:x与j同同值。第二章基基本本数据类类型与表表达式2、表达达式语句句(1)表表达式作作为语句句来使用用。(2)构构成:表表达式后后加分号号;。(3)功功能:表表达式作作为语句句使用时时,它的的功能通通过副作作用来体体现。因因此把没没有副作作用的表表达式作作为语句句使用是是无意义义的。如:x+=5;(有意意义)k+1;(无意意义)第三章C++程序序的流程程控制§3.1流流程程控制与与程序结结构一、流程程控制控制程序序中语句句的执行行顺序。。二、流程程控制方方式:顺序控制制、条件件分支控控制、循循环控制制。三、程序序结构种种类:顺序结构构、条件件分支结结构、循循环结构构。第三章C++程序序的流程程控制1、顺序序流程程序中的的语句按按先后顺顺序依此此执行。。如:(1)inti;(2)cin>>i;(3)cout<<i﹡2;计算机按按语句的的先后顺顺序依此此执行(1)((2)((3)第三章C++程序序的流程程控制2、条件件分支结结构(1)由由特定的的条件决决定执行行哪个语语句。(2)分分类☆单分支结结构☆多分支结结构(3)条条件分支支结构用用if语语句或switch语语句实现现。第三章C++程序序的流程程控制3、循环环结构(1)由由特定的的条件决决定某个个语句重重复执行的次次数。(2)分分类☆先判断后后执行结结构☆先执行后后判断结结构(3)循循环结构构用for语句句,while语句句或do…while语语句来实实现。第三章C++程序序的流程程控制说明:1、三种种程序结结构的共共同特点点:只有一个个入口和和一个出出口。2、三种种程序结结构之间间的关系系:☆衔接:一一个结构构的出口口是另一一个结构构的入口口。☆嵌套:自自身嵌套套、相互互嵌套第三章C++程序序的流程程控制§3.2条条件件分支结结构一、if语句格式1::格格式2:if(条条件)语语句1if((条件))语句1else语语句2若条件为为真,执执行语句1,,否则什什么都不不做(示意图图见图3-3))((示意图图见图3-2))若条件为为真,执执行语句1,,否则执执行语句句2第三章C++程序序的流程程控制说明:1、格式式中的条条件通常常是一个个逻辑表表达式,,若不是是,则一一切0值值转换为为false,一切非非0值转转换为true。2、格式式中的语语句1和和语句2可以是是基本语语句,也也可以是是复合语语句,但但不能不不是语句句,也不不能是多多个语句句。第三章C++程序序的流程程控制例1:if(x)cout<<”xisnon-zero”elsecout<<”xiszero”;例2:if(x==100){a=1;b=2;};else{a=-1;b=-2;};例1:if(x)cout<<”xisnon-zero”;elsecout<<”xiszero”;例2:if(x==100){a=1;b=2;}else{a=-1;b=-2;}第三章C++程序序的流程程控制二、if语句的的嵌套if语句句格式中中的语句句1和语语句2本本身也可可以是if语句句。1、if与else的的配对::从第一一个else开开始,else总是与与离它最近近的尚未配对对的if进进行配对对。例1:if(n>0)if(a>b)z=a;elsez=b;if(n>0){if(a>b)z=a;elsez=b;}第三章C++程序序的流程程控制例2:if(x>0)if(x>10)cout<<’A’;elsecout<<’B’;elseif(y<-8)if(y>-20)cout<<’C’;elsecout<<’D’;若x值为为4,y值为-55,,则输出出结果为为:B第三章C++程序序的流程程控制2、为了了提高可可读性,,必要时时可以把把嵌套位置放在在else之后后。例:if(n>0){if(a>b)z=a;}elsez=b;3、把永永真条件件或永假假条件用用于if语句,,是一种种严重的的逻辑错错误。if(n<=0)z=b;elseif(a>b)z=a;第三章C++程序序的流程程控制三、if多分支支结构通过规范范化的if嵌套套所构成成的多分分支结构构。嵌套的if语句句放在else之后第三章C++程序序的流程程控制格式:if(条件件1)语句句1elseif(条件件2)语句句2elseif(条件件3)语句句3…elseif(条件件n)语句句n【else语句n+1】注:多分支支结构中的的各个条件件都应当是是相互排斥的的,任意时时刻顶多有有一个条件得以满满足。(示示意图见图图3-8))第三章C++程序序的流程控控制例:#include<iostream.h>voidmain(){floatscore;cin>>score;if(score<0||score>100)cout<<”输入错误!!”;elseif(score<60)cout<<”不及格”;elseif(score<70)cout<<”及格”;elseif(score<80)cout<<”中等”;elseif(score<90)cout<<”良好”;elsecout<<”优秀”;第三章C++程序序的流程控控制四、switch语语句和switch多分支结结构1、switch语语句的格式式:switch(整型型表达式)){case整型常常量表达式式1:语句句序列1;;case整整型常量量表达式2:语句序序列2;…case整整型常量量表达式k:语句序序列k;【default:语句序列列k+1】】}第三章C++程序序的流程控控制2、执行顺顺序:先计算switch语句中表表达式的值值,然后在case语句中中寻找值相相等的常量量表达式,,并以此为为入口,由由此开始顺顺序执行行。如果没没有找到相相等的常常量表达式式,且default后的的语句n+1存在,,则执行语语句n+1,否则什什么都不做做。(示意图见见3-9))第三章C++程序序的流程控控制3、几点说说明:1、整型表表达式如果果不是整型型,则它的的值将自动动转换为整整型。2、整型常常量表达式式通常就是是一个整型型常量。如如果不是,,将自动转转换为整型型。3、case的作用用只是标明明一个入口口以及转入入该入口的的条件。一一旦从某个个入口进入入一个语句句序列,就就从该语句句序列开始始顺序执行行,直到以以下所有语语句序列执执行完毕时时为止。第三章C++程序序的流程控控制4、语句序序列可以是是空的,即即其中一个个语句也没有。。5、break语句句可以提前前结束switch语句的执行。第三章C++程序序的流程控控制例:根据整整型变量dayoftheweek(0-6)值输出其其表示的星星期几的英英语单词。。(无break语句句)Switch(dayoftheweek){case0:cout<<”Sunday”;case1:cout<<”Monday”;case2:cout<<”Tuesday”;case3:cout<<”Wednesday”;case4:cout<<”Thursday”;case5:cout<<”Friday”;case6:cout<<”Saturday”;default:cout<<”Unknownweekday”;};第三章C++程序序的流程控控制若dayoftheweek的值为4,则输出结果果为:ThursdayFridaySaturdayUnknownweekday第三章C++程序序的流程控控制(有break语句句)Switch(dayoftheweek){case0:cout<<”Sunday”;break;case1:cout<<”Monday”;break;case2:cout<<”Tuesday”;break;case3:cout<<”Wednesday”;break;case4:cout<<”Thursday”;break;case5:cout<<”Friday”;break;case6:cout<<”Saturday”;break;default:cout<<”Unknownweekday”;break;};第三章C++程序序的流程控控制若dayoftheweek的的值值为为4,,则输输出出结结果果为为::Thursday第三章章C++程序序的流流程控控制if多多分支支结构构和switch多多分支支结构构的相相互替代::☆替代条条件::switch语语句中中每个个非空空语句句序列列的最最后一个语语句都都为break语句句。第三章章C++程序序的流流程控控制例:switch(k)if(k==1||k==2||k==3){cout<<’A’;case1:elseif(k==4||k==5)case2:cout<<’B’;case3:cout<<’A’;break;elsecout<<’C’;case4:case5:cout<<’B’;break;default:cout<<’C’;break;}第三章章C++程序序的流流程控控制if(x>=0&&x<=2)cout<<’X’;elseif(x>=20&&x<=22)cout<<’Y’;elsecout<<’Z’;switch(x){case0:case1:case2:cout<<’X’;break;case20:case21:case22:cout<<’Y’;break;default:cout<<’Z’;}第三章章C++程序序的流流程控控制§3.3循循环环结构构一、for循环环1、for语语句构构成一一种先先判断断后执执行的的循环环结构构。2、for语语句格格式::for(循循环初初始化化;循循环条条件;;循环环参数数调整整)循环体体第三章章C++程序序的流流程控控制说明::(1))循环环条件件应当当是一一个逻逻辑表表达式式。(2))循环环初始始化和和循环环参数数调整整都应应当是具有有副作作用的的表达达式,,其中中循环环参数调调整应应当能能够影影响循循环条条件。。(3))循环环体是是一个个语句句。((可以以是一一个简单语语句、、复合合语句句或空空语句句)第三章章C++程序序的流流程控控制3、执执行过过程::(1))进行行循环环初始始化;;(2))判断断循环环条件件;(3))如果果循环环条件件为真真,则则执行行循环环体、、对循循环参参数调调整,,然后后转向向步骤骤(2);;如果果循环环条件件为假假,则则结束束循环环。第三章章C++程序序的流流程控控制4、流流程图图:循环初初始化化循环条条件??循环体体循环参参数调调整YN例:for(inti=0;i<20;i+=5)cout<<i<<’’’;执行结结果为为:051015第三章章C++程序序的流流程控控制4、几几种种特殊殊的for语句句(1))for(;循环环条件件;)循循环体体此时用用while语语句更更好。。(2))for(循环环初始始化;;循循环参参数调调整)循环环体循环条条件为为空永永真条条件无限循循环在循环环体中中用break语句句可强强制退退出在循环环体中中不用用break语语句形形成死死循环环第三章章C++程序序的流流程控控制(3))for(循循环初初始化化;循循环条条件;循环环参数数调整整)循环体体为空空,用用于延延迟一一段时时间。。第三章章C++程序序的流流程控控制例3.9输输入入10个数数,计计算并并显示示它们们的合合计。。#include<iostream.h>voidmain(){doublex,s=0;//保保存累累加结结果的的变量量应初初始化化为0cout<<”请输入入10个数数:”;for(inti=0;i<10;i++){cin>>x;s+=x;}cout<<”合计计:”<<s;}若从从键键盘盘输输入入::12345678910则结结果果为为::55第三三章章C++程程序序的的流流程程控控制制例3.10显显示示输输出出一一个个三三角角形形。。((图图见见P69))#include<iostream.h>voidmain(){for(inti=0;i<6;i++){cout<<endl;intj;for(j=0;j<5-i;j++)cout<<’’’;for(j=0;j<i+i+1;j++)cout<<’*’;}}第三三章章C++程程序序的的流流程程控控制制例3.11显显示示输输出出99乘乘法法表表。。#include<iomanip.h>voidmain(){cout<<endl<<setw(3)<<”|”;inti;for(i=1;i<10;i++)cout<<setw(3)<<i;cout<<endl<<”--+--------------------------”;for(i=1;i<10;i++){cout<<endl<<setw(2)<<i<<”|”;for(intj=1;j<10;j++)cout<<setw(3)<<i**j;}}第三三章章C++程程序序的的流流程程控控制制说明明::1、、setw::为为下下一一个个要要输输出出的的数数据据设设置置输输出宽宽度度,,宽宽度度值值由由随随后后的的参参数数给给出出。。如::cout<<1<<setw(8)<<2<<3;则输输出出结结果果为为::1232、、iomanip.h::包包含含setw等等大大多多数数操操纵纵符的的定定义义以以及及iostream.h中中的的所所有有内内容容。。第三三章章C++程程序序的的流流程程控控制制二、、while循循环环1、、while语语句句构构成成一一种种先先判判断断后后执执行行的的循环环结结构构。。2、、while语语句句格格式式::while((循循环环条条件件))循环环体体第三三章章C++程程序序的的流流程程控控制制3、、执执行行过过程程::当循循环环条条件件为为真真时时,,执行行循循环环体体,,否否则则退出出循循环环。。4、、流流程程图图((见见右右上上图图))循环环条条件件??循环环体体YN第三三章章C++程程序序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国浸没式螺旋分级机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国浴帽行业市场深度调研及竞争格局与投资研究报告
- 2025-2030中国泳池过滤设备行业市场现状分析及竞争格局与投资发展研究报告
- 2025-2030中国法定急救箱行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国沙拉机行业经营风险与未来投资动向研究报告
- 2025-2030中国汽车车辆行业市场深度调研及调查研究报告
- 2025-2030中国汽车玻璃水行业竞争优势与前景趋势洞察研究报告
- 2025-2030中国汽车内饰紧固件行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国汽车NFC系统行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国水环境治理行业发展前景及发展策略与投资风险研究报告
- 人教版三年级美术教育教学计划
- 虚拟试衣间创业计划
- 2023版《思想道德与法治》(绪论-第一章)绪论 担当复兴大任 成就时代新人;第一章 领悟人生真谛 把握人生方向 第3讲 创造有意义的人生
- 工程经济与项目管理(慕课版)
- 大型活动报备申请表(样本)
- 品质异常奖罚规定001
- 2006年上海市中考数学试题及答案(共10页)
- SF6气体检漏仪说明书
- 最新高人总结长期股权投资-通俗易懂式讲解资料
- 离心泵设计计算说明书
- 体温单绘制课件
评论
0/150
提交评论