d1xjtz0_1顺序程序设计

Download Report

Transcript d1xjtz0_1顺序程序设计

C++程序设计
什么是程序?
为了解决某一特定问题,用
某一种计算机语言编写的指令序
列称为程序。实际上你对计算机
做的操作都有相应的程序支持的
结果。
什么是程序设计?
程序是程序设计的结果,在执行程
序前必须先排定程序,排定以时间为进
程必须完成的各种操作叫程序设计。
程序设计=算法+程序语言
【例1】输出一行字符:“hello”。
#include<iostream>
//包含头文件名
iostream
using namespace std; //使用命名空间
std
int main()
//主函数
{
cout << " hello“<<endl;
system(“pause”); // 系统暂停
return 0; //向操作系统返回一个零值
}
程序运行显示:hello
【例2】求两个整数的和。
#include<iostream>
//包含输入输出头文件
using namespace std; //使用未命名空间std
int main()
//主函数
{
const float pi=3.14 //说明常量pi为3.14
int a,b,sum;
//说明变量a,b,sum为整型数
cin >> a >> b;
//从键盘上输入变量a、b的值
sum = a + b; //求和
cout << "Sum = " << sum << endl; //输出结果
system("pause"); //暂停输出结果
return 0;
}
假如从键盘输入为:2 6
程序运行显示:Sum = 8
#include<iostream>引用头文件是为
了能在程序中使用输入流cin和输出流
cout。
using namespace std; “使用命名空
间std”,句末有分号结束,是一条语句。
C++标准库中的类和函数是在命名空间
std中声明的。必须写,否则会出错。位
置是要放到头文件之后。
int main();其中main()表示主函数,每个C++程序必须有且只
能有一个主函数,C++程序总是从主函数开始执行的。main()函
数之前的int表示main()函数返回值为整型,这符合C++的最新标
准。在花括号内的部分是函数体,函数体由语句组成,每个语句
由分号结束。Cin与符号“>>” 结合;cout与符号“<<”结合使用
可以输出常量、变量的值及字符串。
【例3】已知一个圆的半径,求解该圆的面积和周长.令
pi=3.1415926 ;输出只有一行,先周长,后面积。(中间用空
格分开,都保留两位小数)。
#include <iostream>
//输入输出的头文件
#include <iomanip>
//包含保留小数的头文件
using namespace std; //使用未命名空间std
const double pi=3.1415926; //常量说明
int main()
//主函数
{ int r;
//整型变量说明
double c,s;
//实型变量说明
cin>>r;
//输入语句
c=2*pi*r;
//赋值语句
s=pi*r*r;
cout<<fixed<<setprecision(2)<<c<<" "<<s<<endl;
system(“pause”);
//系统暂停
return 0;
}
一.变量的定义
int—long—long long
char
bool float
double
变量的定义
#include <iostream>
using namespace std;
int main()
{
int a, b = 1 ;
//定义a,b为整型变量,并给b
赋初值
float x, y = 12.345 ; //定义单精度型变量x,y,并给y
赋初值
double x1, y1 ;
//定义双精度型变量x,y
char c1 ,c2 ;
//定义字符型变量c1,c2
cout<< "Y=" << y << endl ; //输出y的值,最后换行
system(“pause”); //系统暂停
return 0;
}
变量的定义
变量的定义格式是:
数据类型 变量1, 变量2, 变量3, ……;
其中:
(1)变量名表可以包含若干个变量,彼此之间用逗
号分开,如char c1,c2;
(2)变量名必须用标识符来标识。
(3)变量可以是C++基本数据类型,也可以为构造
类型,还可以是用户定义的数据类型。
(4)在C++中,变量的定义可放在使用之前的任何
地方。
(5)在定义变量的同时给变量赋值,即在内存中开
辟出一个空间后马上给此空间赋值。但这个空间的值并
不是固定不变的,在程序的运行中一样可以改变。
常量的定义
常量是在程序运行过程中,其值一直保持不变的量
为常量。如y=3*x中的3是不可变的,它就是常量。
C++的常量分:数字常量、字符常量、符号常量和
布尔常量。
字符常量
字符常量是用单引号括起来的一个字符,其值为ASCII代
码值。如’a’、’A’、’x’、’$’、’#’等都是合法的字符常
量。注意’a’和’A’是不同的字符常量。
字符串常量是用一对双引号括起来的字符序列。
如”a”、”aaa”、”123”、”CHINA”、”How do you
do?”、”¥1.23”等都是字符常量。
常量的定义
标识符常量
在C++中有二种方法定义标识符常量,一
种是使用编译预处理指令;另一种是使用
C++的常量说明符const。
(1)例如:
#define PRICE 30
#define PI 3.1415926
#define S “China”
(2)一般形式为:const 数据类型 符号常
量=常量值;
例如:const float pi=3.1415926; //将pi定义
为常量
常量的定义
#include<iostream>
#define pi 3.14156
#define s "china"
using namespace std;
int main( )
{ const float PI=3.14156; //变量作为常量使用
cout<<“PI="<<PI<<endl;
cout<<"10*PI="<<10*PI<<endl;
cout<<s<<endl;
PI=PI+3;
pi=pi+4;
cout<<"pi="<<pi<<endl;
cout<<"pi="<<pi<<endl;
}
三.算术运算及表达式
1、算术运算符和算术表达式
+
- *
/(取整)
%(取余)
用算术运算符连接起来的式子是算术表达式
两个整数相除结果为整数
1/2=0
5/2=2
整数才可求余,余数的符号与左边数的符号相同。
3%2=1
8%4=0
2、优先级与结合性
()
*
/
%
+
—
三.算术运算及表达式
3.自增、自减运算符++、-++:其功能是使变量的值自增1。
--:其功能是使变量值自减1。
自增1,自减1运算符均为单目运算,都具有右结合性。
可有以下几种形式:
++i:i自增1后再参与其它运算(先增后用)。
--i:i自减1后再参与其它运算(先减后用)。
i++:i参与运算后,i的值再自增1(先用后增)。
i--:i参与运算后,i的值再自减1(先用后减)。
【例】 自增、自减运算符。
#include<iostream>
using namespace std;
int main()
{
int i = 8 ;
cout << ++i <<endl ;
cout << --i <<endl;
cout << i++ <<endl;
cout << i-- <<endl;
system("pause");
}
运行结果:
9
8
8
9
4.表达式的书写格式
在C++程序中,表达式的书写也应注意。下面将数学上
的表达式与C++的表达式做一个对比:
数学表达式
合法的C++表达式
a×(-b)
a*(-b)
ab-cd
a*b-c*d
2(b+y/c)+8
2*(b+y/c)+8
x2+3x+2
x*x+3*x+2
四.赋值运算
1.赋值运算符:如 year=2008
注意:
“=”左边必须是一个变量名。
若“ = ” 两边变量类型不同,在赋值时要进行类型转换。
转换原则:根据左边变量的类型转换。
int a,b=3;
double c=1.5;
a=b-c;
四.赋值运算
2.赋值表达式
用赋值运算符将变量和表达式连接起来的式子称为赋值
表达式,一般形式为:
变量=表达式;
例如:
x=8;
y=x;
z=x+y;
说明:对于不同的变量V1、V2、……Vn,
V1=V2=……=Vn=表达式;还是一个赋值表达式,称为多重
赋值。执行时,把表达式的值按照Vn、……、V2、V1的顺
序依次赋给每个变量。如a=b=c=1,运算时,先执行c=1,然
后把它的结果赋给b,再把b的赋值表达式的结果1赋给a。
四.赋值运算
3.复合赋值运算符
由复合赋值运算符(+=,-=,*=,/=,%=)构成复合
赋值表达式,一般形式为:
V oper= E;
其中:设定 oper 表示算术运算符,E是一个表达式,V
为变量。实质上上述表达式等价于V=V oper E。例如:
a+=3; 等价于 a=a+3;
a%=2;等价于 a=a%2;
a%=b+2;等价于 a=a%(b+2);而不是 a=a%b+2
a*=x-y; 等价于 a=a*(x-y);而不是 a=a*x-y(括号不能丢)
四.赋值运算
【例题】 输出赋值表达式的运算结果。
#include <iostream>
Using namespace std;
int main()
{ int a,b,c,d,e=7;
a=b=1;
c=5;
d=a++;
d*=a+b;
//等价于d=d*(a+b)
e%=c-b;
//等价于e=e%(c-b)
cout<<a<<b<<c<<d<<e<<endl;
system(“pause”);
}
21533
五.类型转换
(一)自动类型转换
整型、实型、字符型数据间可以混合运算。在进行运算
时,不同类型的数据要先转换成同一类型的数据再进行运算。
【例如】10+'a'+1.5-0.5*'b'
五.类型转换
(二)强制类型转换
其一般形式为:
数据类型(操作数)或(数据类型)操作数
其中操作数可以是变量名或表达式,功能是把操作数的
数据类型暂时强行转换为前面指定的数据类型。例如:
double (a)
//将a转换成double型
int (x+y)
//将x+y的值转换成int型
float (5%3)
//将5%3的值转换成float型
五.类型转换
#include <iostream>
using namespace std;
int main()
{
float x=5.6,y=7.8;
float z;
z=int(x+y);
//强制转换x+y的值的类型为整型
cout<<”x+y=”<<x+y<<endl; //直接输出x+y的值(float型)
cout<<”z=”<<z<<endl;
system(“pause”);
}
x+y=13.4
z=13
六.输入语句cin
输入语句格式:
cin>>变量1>>变量2…>>变量n;
【例 3.3】变量的输入。
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
char c;
cin>>a>>b>>c;
cout<<”a=”<<a<<”,b=”<<b<<”\nc=”<<c<<”\n”;
system(“pause”);
}
假如从键盘输入为:1 2 3
六.输入语句cin
使用cin时要注意:
(1)“>>”是输入操作符。
(2)cin的功能是:当程序在运行过程中执行到cin时,程序会暂停执行
并等待用户从键盘输入相应数目的数据,用户输入完数据并回车后,cin
从输入流中取得相应的数据并依次传送给其后的变量。
(3)“>>”操作符后面除了变量名外不得有其他常量、字符、字符串常
量或转义字符等。如:
cin>>”x=”>>x; //错误,因为含有字符串”x=”
cin>>’x’>>x;
//错误,因为含有字符’x’
cin>>x>>10;
//错误,因为含有常量10
cin>>x>>endl; //错误,因为含有endl
(4)当一个cin后面跟有多个变量时,则用户输入数据的个数应与变量
的个数相同,各数据之间用一个或多个空格隔开,输入完毕后按回车键,
或者每输入一个数据后按回车键也可。
(5)在缺省的情况下,cin自动跳过输入的空格,换言之,cin不能将输
入的空格赋给字符型变量,同样地,回车键也是作为输入字符之间的分
隔符,也不能将输入的回车键字符赋给字符型变量。
七.输出语句cout
1.无格式输出:
cout<<输出项1<<输出项2…<<输出项n;
说明:
(1)“输出项”是需要输出的一些数据,这些数据可以是
变量、常量或表达式。每个输出项前都必须使用插入操作符
<<进行引导;由双引号引起来的内容,是把引号里面的内容
原样输出。
(2)在cout中,实现输出数据换行功能的方法是:既可
以使用转义字符’\n’,也可以使用表示行结束的流操作符endl。
即:cout<<“\n”; <=> cout<<endl;
七.输出语句cout
【例 3.1】 输出变量、常量与表达式。
#include <iostream>
using namespace std;
int main()
{
int a=10;
double b=20.3;
char c=’y’;
cout<<a<<’,’<<b<<’,’<<c<<’,’<<a+b<<endl;
cout<<200<<’,’<<2.5<<’,’<<”hello\n”;
system(“pause”);
}
七.输出语句cout
2.格式输出
【例题】 输出变量amount的值,小数点后面保留两位有效
数字。
#include <iostream>
#include <iomanip>
//要用到格式控制符
using namespace std;
int main()
{ double amount = 22.0/7;
cout<<amount<<endl;
cout<<setprecision (2)<<amount <<endl;
cout<<fixed<<setprecision(2)<<amount<<endl;
system(“pause”);
运行结果为:
}
3.14286
3.1
3.14
A
B
【例题题目】:交换两个变量的值。由键盘输入两个正整数a
和b,编写程序完成两个数的互换。
#include <iostream>
using namespace std;
int main()
{
long a,b,c;
cin>>a>>b;
c= a;
{等价于步骤1}
a = b;
{等价于步骤2}
b = c;
{等价于步骤3}
cout<<a<<“ ”<<b<<endl;
system(“pause”);
}
【例题题目】:倒序
【问题描述】:从键盘输入一个三位数,将其各位数字倒序
输出。
【文件输入】:输入一个三位数
【文件输出】:倒序输出此三位数
【样例输入】:123
【样例输出】:321
方法一:
#include <iostream>
using namespace std;
int main()
{
long a,b,c,x,y;
cin>>x;
a=x/100;
b=x/10%10;
c=x%10;
y=c*100+b*10+a;
cout<<y<<endl;
system(“pause”);
}
方法二:
#include <iostream>
using namespace std;
int main()
{
char a,b,c,d;
cin>>a>>b>>c;
cout<<c<<b<<a<<endl;
system(“pause”);
}
【例题题目】求商数和余数
【问题描述】输入a,b两个整数,编程求出a除以b得到的商和
余数。
【文件输入】输入一行,只有两个整数(中间有空格)。
【文件输出】输出只有一行,两个整数(中间有空格)。
【样例输入】7 3
【样例输出】2 1
#include <iostream>
using namespace std;
int main()
{
long a,b;
cin>>a>>b;
cout<<a/b<<“ ”<<a%b<<endl;
system("pause");
return 0;
}
【例题题目】求三角形的面积
【问题描述】编一程序,输入三角形的三边a、b、c(假设
这三边可以构成一个三角形),求三角形的面积s?
【文件输入】输入三角形的三边a、b、c(都为整数<= 1000)
【文件输出】输出三角形的面积s(保留两位小数)。
【样例输入】3 4 5
【样例输出】6
#include <iostream>
#include <iomanip>
#include <cmath> //使用了开平方函数sqrt
using namespace std;
int main()
{
long a,b,c;
double p,s;
cin>>a>>b>>c;
p=(double)(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<fixed<<setprecision(2)<<s<<endl;
system("pause");
return 0;
}
#include <iostream>
#include <iomanip>
#include <cmath> //使用了开平方函数sqrt
using namespace std;
int main()
{
double a,b,c,p,s;
cin>>a>>b>>c;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<fixed<<setprecision(2)<<s<<endl;
system("pause");
return 0;
}
http://mail.bashu.cn:8080/BSoiOnline