第三章C++简单程序设计课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sin(30)= 0.5
# include "iostream.h" #include "math.h" #define PI 3.1415926 void main() { float xx, ,yy; ;, y; cin>>x; float x=30 cout<<"input x: "; y=sin(x*PI /180); cin>>x; cout<<"sin("<<x<<")="<<y<<endl; y=sin(x*PI /180); } cout<<"sin("<<x<<")="<<y<<endl; }
运行结果: Enter the year: 2000 2000 is a leap year Enter the year: 2001 2001 is a leap year
– 形式三: if ( 表达式1 ) 语句1 格式: else if (表达式2 ) 语句2 例:if (num>=90) result=“优”; …... else if (num>=80) else if (表达式n ) 语句n+1 result=“良”; else if (num>=70) else [ 语句n ] result=“中”; else if (num>=60) result=“及格”;; else result=“不及格”;
数据的输入与输出
I/O操作通过调用函数实现(允许用户自定义输出函数)。 默认的输入设备— 键盘 默认的输出设备— 显示器 # include "stdio.h" //使用函数 scanf / printf 输入 / 输出 # include "iostream.h" //使用cout 和 cin 进行输入输出
数据的输出
• 1、无格式的输出
cout << 输出项1<<输出项2<<…<<输出项n 注:换行可用 ”\n”,也可用 endl
• 2、格式输出 P33~34 表3-1 setprecision、setw、setiosflags
数据的输入
cin是通过重载运算符 “>>”执行输入操作,在流操作 中将“>>”称为提取运算符。 格式:cin>>变量 [>>变量 变量1 变量2>>… >>变量 ]; 变量n 变量 变量 变量 例:cin>>a>>b>>c; 注意事项: 1、“>>”操作符后除了变量不得有其他 常量、字符、字符串常量、转义字符等。 2、在输入前最好加提示信息。
使用switch语句应注意的问题
• case分支可包含多个语句,且不用{ }。 • 每个case后面的常量表达式的值必须不同。 • 表达式、判断值都是int型或char型。 • 若干分支执行内容相同可共用一组语句。
条件运算符与条件表达式
• 一般形式:
表达式1?表达式2:表达式3 表达式1 必须是 bool 类型
说明: if后面的表达式类型任意 语句可以是复合语句 if(x) ⇔ if(x!=0) 注意赋值表达式和判断是否相等的区别 if(a=b)y=a; 如:if(a==b&&x==y) cout<<“a=b,x=y”; if(x) cout<<“OK”; 如:if(a>b) { t=a;a= b;b=t;}
运行结果: sum=5050
循环控制语句
• do…while语句
do <语句> while (<表达式>);
• for语句
for (<表达式1>;<表达式2>;<表达式3>) <语句>
do…while语句
先执行循环体,后判断条件的情况
例:
输入一个整数,将各位数字反转后输出。
#include <iostream.h> void main(void) { int n, right_digit, newnum = 0; cout << "Enter the number: "; cin >> n; cout << "The number in reverse order is do { right_digit = n % 10; cout << right_digit; n /= 10; } while (n != 0); cout<<endl; } ";
形式三 执行过程:
表达式1
非0
=0 =0
表达式2
非0
=0
表达式3
非0
语句1
语句2
语句3
语句4
输入两个整数,比较两个数的大小。 输入两个整数,比较两个数的大小。
#include<iostream.h> void main( ) { int x,y; cout<<"Enter x and y:"; cin>>x>>y; if (x!=y) if (x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl; else cout<<"x=y"<<endl; }
if ~ else 配对原则:缺省{ }时,else总是 和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…... else…...
例: if (a==b) if(b==c) cout<<“a==b==c \n ”; else cout<<“a!=b \n”; 修改: if (a==b) { if(b==c) if(b==c) cout<<“a==b==c\n”); cout<< a==b==c\n ); else ; cout<<“a==b==c\n”; else } else cout<<“a!=b \n”); cout<<“a!=b\n”; 实现if ~ else 正确配对方法:加{ }
switch(op) { case '+': cout<<x<<op<<y<<'='<<x+y<<endl; break; case '-': cout<< x<<op<<y<<'='<<x-y<<endl; break; case '*': cout<< x<<op<<y<<'='<<x*y<<endl; break; case '/': if(y==0.0) cout<<"error\n"; else cout<< x<<op<<y<<'='<<x/y<<endl; } }
数据的输出
cout是通用重载运算符“<<”执行输出操作,在流 操作中,将“<<”称为插入运算符。 格式:cout <<表达式1 [<<表达式2 <<… <<表达式n]; 功能:系统自动根据表达式类型输出。 设x=3,y=4,若要输出结果为:x=3, y=4 cout<<"x="<<x<<",y="<<y<<endl; 或 cout<<"x="<<x<<",y="<<y<<"\n"; 如何写?
例
求一个数的绝对值
#include <stdio.h> void main() { int x,y; cout<<"Enter an integer:"; cin>>x; if(x<0) y= -x; else y=x; cout<<“x="<<x<<“\ty="<<y<<"\n"; } 运行: Enter an integer:-12↵ X=-12 y=12
百度文库 选择结构
if语句(条件选择语句) if语句的三种形式 形式一: 格式:if (表达式) 语句 执行过程: 例:if (x>y) cout<<x<<endl;
表达式 非0 语句
=0
选择结构
形式二: 格式: if (表达式) 语句1 else 语句2 执行过程: 例:if (x>y) max=x; else max=y; 非0
C++简单程序设计
基本语句
• 基本语句是一类简单的语句,包括表达式语句、空语 句、复合语句和控制语句等。 • C++中任何一个表达式加上分号(“ ;”)便是表达式 语句。
– 例如:
a=a+5; x=3,y=5,z=8;
– 这些都是表达式语句。
• 空语句是指只有一个分号(“ ;”)的语句。 • 复合语句是由两条或两条以上的语句组成,并由一对 花括号(“{ }”)括起来的语句。 {a=x; x=y; y=a;}
• 执行顺序:
–先求解表达式1, –若表达式1的值为true,则求解表达式2, 表达式2的值为最终结果 –若表达式1的值为false,则求解表达式3, 表达式3的值为最终结果
条件运算符与条件表达式
• 注意:
–条件运算符优级高于赋值运算符,低于逻辑 运算符 –结合方向为自右至左 –表达式2、3的类型可以不同,条件表达式的 最终类型为 2 和 3 中较高的类型。
算法的基本控制结构
• 顺序结构 • 分支结构 • 循环结构
顺序结构
#include <iostream.h> Void main() { int a,b,t; cin>>a>>b; cout <<“a=“<<a<<“\tb=“<<b<<endl; t=a; a=b; b=t; cout<<“a=“<<a<<“\tb=“<<b<<endl; }
考虑下面程序的输出结果: #include <stdio.h> void main() { int x,y,t; cin>>x>>y; if(x>y) t=x; x=y; y=t; else x++; y++; cout<<x<<','<<y<<endl; }
Compile Error!
Misplaced else
表达式
=0
语句1
语句2
例:输入一个年份,判断是否闰年。
思路:判断是否为闰年,须符合以下条件之一: 1、能被4整除,但不能被100整除 2、被400整除。 (year % 4 == 0 && year % 100 != 0) ||(year % 400 == 0)
#include <iostream.h> void main(void) { int year; bool IsOK; cout << “Enter the year: “; cin >> year; IsOK = ((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)); if (IsOK) cout << year << " is a leap year" << endl; else cout << year << " is not a leap year" << endl; }
循环控制语句
• while语句
while (<表达式>) <语句>
假(0) 表达式 真(非 0) 语句 语句 当表达式的值为真(非 0)
(a)
(b)
While 语句 例3-15
求自然数1~100之和 分析:本题需要用累加算法,累加过程 是一个循环过程,可以用while语句实现。
#include<iostream.h> void main( ) { int i=1, sum=0; while(i<=100) { sum+=i; i++; } cout<<"sum="<<sum <<endl; }
Switch 语句
亦称多分支选择语句。它比用嵌套的if语句实现多 路分支问题,其程序结构清晰、易读。 一、格式 switch(e) { case c1:语句1 case c2:语句2 ┅ case cn:语句n [default:语句n+1] } 其中: 1、表达式e可以是 整型、字符型、枚举型; 2、 常量表达式ci 必须与表达式类型一致
二、执行过程 1.计算表达式e的值 2.若与常量表达式ci值一致,则从语句i 开始执行;直到遇到break语句或 switch语句的“}”为止 3.若与任何常量表达式值均不一致时, 则执行default语句,或执行后续语句
例
switch(score) { case 5: cout<<“Very good!”; case 4: cout<<“Good!”; case 3: cout<<“Pass!”; case 2: cout<<“Fail!”; default : cout<<“data error!”; }
当score为5时,输出: Very good! Good! Pass! Fail! data error!
例: 设计一个简单的计算器,完成两个数的加减乘除。 分析: ●输入两个数及运算符(如3*5) ●switch表达式: 运算符 ●常量: '+' , '-' , '*' , '/' #include <iostream.h> void main() { float x,y; char op; cout<<"input x、operator、y: "; cin>>x>>op>>y; 输入:3*5 输出:3*5=15