资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
昨天你有什么收获?,我也可以编写程序!,学了什么?,1、程序的框架,#include using namespace std; int main() return 0; ,学了什么?,2、定义变量,变量:先定义,再使用 变量类型:int , long long, float ,double %d %lld %f %lf %.2f int a; float b;,学了什么?,3、变量赋值 从右往左,int a,b; cina; b=10+12; b=a+2*b;,4、变量互换值 还记得酱油瓶和醋瓶的故事吗?,学了什么?,5、算数运算符,+ - * / 取整(商) % 取余 三位数x,怎样分离出它的个十百位?,学了什么?,6、输入输出,int a,b; float c; cinabc; coutab; printf(“%d%d”,a,b); printf(“%.2f”,c);,学了什么?,7、二进制与十进制,二进制 加减乘除法 二进制与十进制的转换,#include #include /数学函数库 using namespace std; int main() float a,b,c; scanf(”%f%f”, ,上机实践: 改变main程序中语句的顺序,查看输出结果。,常用数学函数,求绝对值函数int abs ( int x ) 正弦函数double sin ( double x ) 反正弦函数double asin ( double x ) ex函数double exp ( double x ) lnx函数double log ( double x ) log10x函数double log10 ( double x ) 函数double sqrt ( double x ),选择结构,重庆一中 李崎颖,结构化程序设计 之,第一课 水仙花数,温故而知新,求一个三位数每位数字之和。 a=x/100; b=(x-a*100)/10; c=x%10; 程序从上到下顺序执行: 顺序结构。 美好的一天从“水仙花”开始!,程序开始,输入一个三位数x,计算百位数字并赋值给a,输出a+b+c的值,程序结束,计算十位数字并赋值给b,计算个位数字并赋值给c,自幂数,水仙花数:是指一个3位数,每一位上的数字的立方和等于它本身。比如:153=13+53+33 自幂数:是指一个 n 位数 ( n3 ),它的每个位上的数字的 n 次幂之和等于它本身。,六位自幂数:六合数 七位自幂数:北斗七星数 八位自幂数:八仙数 九位自幂数:九九重阳数 十位自幂数:十全十美数,一位自幂数:独身数 两位自幂数:没有 三位自幂数:水仙花数 四位自幂数:四叶玫瑰数 五位自幂数:五角星数,例1:判断一个三位数是不是水仙花数。,【分析解题步骤】 1、输入一个三位数。 2、分离出每一位上的数字。 3、判断每一位数字的立方和是否等于它本身。如果等于,则输出“yes”,否则输出“no”。,根据不同情况进行的不同处理的结构叫做 选择结构。,if选择结构,一、if语句(单分支结构) 格式1: if (条件表达式) 语句1;,格式2 : if (条件表达式) 语句1; 语句2; ,最常用的条件表达式:,AB, A=B,AB, A=B,A = B,关系运算符,关系运算符用于比较数值的大小,包括 大于()、小于(=)、小于等于(=)、不等于(!=) 关系运算符的结果是整型,值只有两种:0和1。0代表关系不成立(false),1代表关系成立(true)。,int main() int n1=4,n2=5,n3; n3=n1n2; /n3的值为0 n3=n1n2; /n3的值变为1 n3=n1=4; /n3的值变为1 n3=n1!=4; /n3的值变为0 n3=n1=1+3; /n3的值变为1 ,说一说n3的值是多少?,例2:计算一个数的绝对值,【分析】如果这个数a=0,则输出这个数a;否则输出这个数的相反数-a。 if(a=0) c=a; else c=-a; printf(“%d”,c);,例3 读入a,b,若ab则交换a,b的值, 输出a,b的值。,任务1:,2.1.1任意输入一个三位数,判断它是否为水仙花数。是则输出“yes”,否则输出“no”。 可测试以下数字:153 297 371 162 407 2.1.2输入一个数,若这个数大于1并且小于100,则输出yes 2.1.3判断一个数是否为偶数,如果是则输出“yes”。 注意:题目中并没要求输出“no”,if语句可以没有else分支。 如何判断一个数是否为偶数?,水仙花数参考程序,#include using namespace std; int main() int x,a,b,c; cinx; a=x/100; b=(x-a*100)/10; c=x%10; if(a*a*a+b*b*b+c*c*c=x)printf(“yes“); else printf(“no“); return 0; ,第二课 如果否则,双分支结构-if .else语句, 形式一, 形式二,if (条件表达式),单一语句;,else,单一语句;,if (条件表达式) 语句组; else 语句组; ,世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离。,例4 从键盘输入一个数,判断它的正负。如果是正数,则输出“+”,如果是负数,则输出“” .,#include /需要思考问题出在哪里 using namespace std; int main() float a; cina; if (a0) cout“+”endl; else cout“-“endl; return 0; ,例5 临时停车问题,当临时车用户进入停车场后,停车3小时内(含3小时),收费10元,3小时以后每小时为2元。现停车X小时,你将如何根据停车时间计算应缴费用Y呢?,临时停车问题,y= 10 (x3),问题分析,流程图,解释,程序语言,例6:三个数排序,任意输入三个数,从小到大输出这三个数。 【样例输入】 23 56 12 【样例输出】 12 23 56,【分析】三个数用a、b、c表示 思路一:三个数的大小关系可能的情况有几种?依次判断每种情况。 思路二:找出最大的数和最小的数,剩下那个放中间。 ,三个数排序,思路一:三个数的大小关系可能的情况有哪几种? a=b=c a=c=b b=a=c b=c=a c=a=b c=b=a 一共6种情况,依次进行判断,如何书写条件表达式? 以a=b=c为例:(a=b)&(b=c) “&”为逻辑与运算,“并且”的意思,意为(a=b)成立并且(b=c)成立,则整个表达式成立(true),其中一个不成立,整个表达式就不成立(false)。,逻辑运算符,C+提供了三种逻辑运算符: 与运算(&)、或运算(|)、非运算(!) 其中&和|为双目运算,即要有两个运算数,左结合。 非运算为单目运算,!true=false !false=true,优先级从高到低依次为:!、&、|,逻辑表达式,1、a0并且b0: a0&b0 等价于 (a0)&(b0) 2、a100或者a100|a100)|(a50) 3、如何判断一个年份是否是闰年:年份能被4整除,但不能被100整除,或者能被400整除的年份一定是闰年。 (year%4=0&year%100!=0|year%400=0),运算符的优先级,逻辑运算符优先级从高到低: !、&、| 算术运算符优先级从高到低: *、/、%(前3个是同级运算)、+、-(后2个是同级运算) 关系运算符的结合性为从左到右,即为同级运算。 、=、=、= 赋值运算符 逻辑运算符 关系运算符 算术运算符,从低到高,说出以下表达式的值,假设x=2,y=3,c=1 xy 表达式为假,所以表达式的值为0 (xyc xy为假,值为0,01为假,所以f的值为0。.,三个数排序 思路一:枚举所有的可能性,int main() int a,b,c; _ /输入三个数 if( )printf(“%d%d%d”,a,b,c); if( )printf(“%d%d%d”,a,c,b); if( )printf(“%d%d%d”,b,a,c); if( )printf(“%d%d%d”,b,c,a); if( )printf(“%d%d%d”,c,a,b); if( )printf(“%d%d%d”,c,b,a); retrun 0; ,scanf(“%d %d %d“,ab & bc,ac & cb,ba & ac,bc & ca,ca & ab,cb & ba,三个数排序 思路二:找出最大和最小的数,#include using namespace std; int main() int a,b,c,max,min; scanf(“%d %d %d“, ,任务二:,2.2.1 任意输入三个数,从大到小排序输出。 2.2.2 判断一个年份是否是闰年,如果是,输出“yes”,如果不是,输出“no”。判断闰年的条件是:如果年份是4的倍数,但不是100的倍数,那这个年份是闰年,或者年份是400的倍数,也是闰年。,第三课 嵌套,例7:判断数的正负,输入一个数,如果是正数,输出+,如果是负数,输出-,如果是0,则输出0。,例8:传说古代的叙拉古国王 海伦二世发现公式,利用三角形的三边长来求取三角形面积。 输入三个整数,判断这三个数能否组成一个三角形的三边,可以就输出三角形的面积,不可以就输出“Cant” 提示:判断条件是,三角形任意两边之和要大于第三边。 已知三边a、b、c,求面积用海伦公式: 其中 p=(a+b+c)/2,分析: 1、输入三个数。 2、判断任意两个数之和是否大于第三个数,是,则计算面积,不是则输出“Cant”。,#include #include using namespace std; int main() float a,b,c,p,s; scanf(“%f %f %f”, ,/sqrt是开方函数,要使用它,前面 必须包含math.h头文件,任务三:,2.3.1传说古代的叙拉古国王 海伦二世发现公式,利用三角形的三边长来求取三角形面积。 输入三个整数,判断这三个数能否组成一个三角形的三边,可以就输出三角形的面积,不可以就输出“Cant” 提示:判断条件是,三角形任意两边之和要大于第三边。 已知三边a、b、c,求面积用海伦公式: 其中 p=(a+b+c)/2,第四课 好多情况,例5:从键盘输入表示星期几的数字,对应输出它的英文名称。,#include using namespace std; int main() int weekday; scanf(“%d”, ,多路分支switch的基本结构: switch(表达式) case 常量表达式1:语句序列1;break; case 常量表达式2:语句序列2;break; case 常量表达式3:语句序列3;break; default:语句序列n+1;/可以没有 ,选择结构,1、单分支选择结构:if语句; 2、双分支选择结构:if语句1; else 语句2; 3、多分支选择结构: switch(表达式) case 常量表达式1:语句序列1;break; case 常量表达式2:语句序列2;break; case 常量表达式3:语句序列3;break
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号