计算机程序设计:第5讲 程序结构设计(上)_第1页
计算机程序设计:第5讲 程序结构设计(上)_第2页
计算机程序设计:第5讲 程序结构设计(上)_第3页
计算机程序设计:第5讲 程序结构设计(上)_第4页
计算机程序设计:第5讲 程序结构设计(上)_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 第第5讲讲: 程序的结构设计程序的结构设计(上上) 2 本讲要点本讲要点v C+C+语句和程序结构语句和程序结构v 顺序结构程序设计顺序结构程序设计v 分支结构程序设计分支结构程序设计参考教材第参考教材第3章内容章内容3 3.1 C+语句和程序结构语句和程序结构lC+程序最小的独立单位是语句程序最小的独立单位是语句(statement)l类型类型 申明语句申明语句; 例:例:int a; 表达表达式语句式语句 = 表达式加上一个分号表达式加上一个分号;“;”是是C+语句的运语句的运算符算符 执行语句;例:控制、函数、表达式等语句;执行语句;例:控制、函数、表达式等语句; 空语句(;)空语句

2、(;) 复合语句复合语句:通过通过来实现多个语句组合来实现多个语句组合int a3;b=a;程程序序代码工程师又称泥瓦匠代码工程师又称泥瓦匠4 结构化与非结构化的效果5 3.1 C+语句和程序结构语句和程序结构u无结构程序:无结构程序:goto语句破坏了程序结构语句破坏了程序结构6 3.1 C+语句和程序结构语句和程序结构u结构化程序设计思想结构化程序设计思想7 3.1 C+语句和程序结构语句和程序结构u结构化程序设计思想结构化程序设计思想8 3.1 C+语句和程序结构语句和程序结构uC+程序结构的控制语句程序结构的控制语句 顺序结构:无控制语句,按书写顺序结构:无控制语句,按书写(存储存储)

3、顺序)顺序来执行来执行 选择结构:选择结构:if语句;语句;switch语句语句 循环结构:循环结构:for语句;语句;while语句;语句;do-while语语句句9 3.1 C+语句和程序结构语句和程序结构u天仙妹妹温柔开锁第1步:顺序设变量a=000;a作为密钥开锁;第2步:选择判断锁是否打开;不开进入第3步第3步:循环(接着干哦) a=a+1; a再作为密钥,.,直到打开为止;u犀利哥强悍开锁犀利哥强悍开锁10 3.1 C+语句和程序结构语句和程序结构顺序顺序分支分支循环循环11 3.2 3.2 顺序程序结构设计顺序程序结构设计l顺序结构程序是指语句执行时是按照程序存储顺序顺序结构程序

4、是指语句执行时是按照程序存储顺序l 复合语句:用大括号括起来的一组语句复合语句:用大括号括起来的一组语句 t = x ; x = y ; y = t ;复合语句的右括号后面没有分号复合语句的右括号后面没有分号复合语句中所定义变量只在复合句中有效复合语句中所定义变量只在复合句中有效在复合语句,如果内层和外层的变量同名,在复合语句,如果内层和外层的变量同名,则按照则按照局部优先局部优先的原则的原则12 3.2 顺序程序结构设计怎么就不对呀?怎么就不对呀?13 3.2 顺序程序结构设计我的地盘我做主!我的地盘我做主!14 3.2 顺序程序结构设计 例:编写一个能将三位整数颠倒过来的程序。例:编写一个

5、能将三位整数颠倒过来的程序。 算法思想算法思想: : 先取出个位数先取出个位数, , 再取出十位数再取出十位数, , 最后取出百位最后取出百位数数, , 然后按个位、十位、百位的顺序输出。然后按个位、十位、百位的顺序输出。 算法重点:学会数的分解方法算法重点:学会数的分解方法怎么又有一个怎么又有一个printf()!15 3.2 顺序程序结构设计u格式输出:格式输出: printfprintf(格式字串(格式字串, , 输出参数表输出参数表) “格式字串格式字串”用来控制输出数据格式。由用来控制输出数据格式。由“格式说明符格式说明符”和和“普通字符串普通字符串”组成:组成:“格式说明符格式说明

6、符”由由“%”%”和和“格式字符格式字符”组成组成, , 不同的格不同的格式说明符对应不同类型数据输出式说明符对应不同类型数据输出“普通字符串普通字符串”原样输出原样输出 “输出参数表输出参数表”可以是表达式、常量、变量可以是表达式、常量、变量 例如:例如:printfprintf(“i i* *j=j=%d%d* *%d%d= =%d%d”,”,i,j,ii,j,i* *j j) 格式说明字符格式说明字符(%(%字母)字母)控制不同类型数据的输出格式 d:带符号十进制整数形式输出(正数不输出符号) u:以无符号十进制整数形式输出 c:字符形式输出 s:字符串形式输出, 输出至结尾符为止 f:

7、小数形式输出16 3.2 顺序程序结构设计例:例:求一元二次 ax2+bx+c=0方程的根的程序。a,b,c的值由键盘输入,且 b2-4ac0 算法思想算法思想: 输入a,b,c的值,计算b2-4ac,算两个根,输出两个根 算法重点:学会算术函数的使用 17 3 3.3.3 分支结构程序设计分支结构程序设计 l 在实际生活中在实际生活中, , 经常会遇经常会遇到许多需要判断的问题到许多需要判断的问题, , 程序设计中将这一类问题程序设计中将这一类问题归结为分支问题归结为分支问题l 在在C+C+语言中语言中, , 用用if if 和和switchswitch语句来实现分支结语句来实现分支结构。语

8、句特点构。语句特点: : 根据所给根据所给出的条件出的条件, , 在给定的操作在给定的操作中选择一组语句去执中选择一组语句去执表达式语 句1If语句的下一语句NY语 句2老婆给当程序员的老公打电话:老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,下班顺路买一斤包子带回来,如果看到卖西瓜的,就买一个如果看到卖西瓜的,就买一个”。当晚,程序员老公手捧一个。当晚,程序员老公手捧一个包子进了家门包子进了家门老婆怒道:老婆怒道:“你怎么就买了一个包子?!你怎么就买了一个包子?!”老公答曰:老公答曰:“因为看到了卖西瓜的因为看到了卖西瓜的”。18 3 3. .3 3.1 .1 if if 语句语句

9、l 格式格式1 1(基本格式)(基本格式) if (条件条件) 语句语句1 1; else 语句语句2 2;l 功能:计算表达式的值,功能:计算表达式的值,结果为非结果为非0 0,执行语句,执行语句1 1;否则执行语句否则执行语句2 2表达式语 句1If语句的下一语句NY if语句基本格式的执行流程语 句219 20 3 3. .3 3.1 .1 if if 语句语句 l 格式格式2 2(简化格式)(简化格式) if (条件条件) 语句;语句;l 功能:计算表达式的值;功能:计算表达式的值; 非非0 0时,执行语句;否则执行时,执行语句;否则执行ifif语句的下一条语句语句的下一条语句Y(a)

10、if语句简化格式的执行流程表达式语 句If语句的下一语句N21 3 3. .3 3.1 .1 if if 语句语句l 格式格式3 3(嵌套格式)(嵌套格式) if (条件条件1 1) 语句语句1 1; else if (条件条件2 2) 语句语句2 2; else if (条件条件3 3) 语句语句3 3; . . . else if (条件条件n) 语句语句n; else 语句语句n+1; l 功能:当条件功能:当条件1 1成立时,执行语句成立时,执行语句1 1;否则;否则, , 如果如果条件条件2 2成立成立, , 执行语句执行语句2, . ., 2, . ., 直到当条件直到当条件n成立

11、时成立时, , 执行语句执行语句n, , 否则执行语句否则执行语句n+1+1。22 3 3. .3 3.1 .1 if if 语句(嵌套格式)语句(嵌套格式)表达式1表达式2表达式3表达式n语句n语句n+1语句3真假假假假语句2语句1真真真下一语句(a)语句n语句n+1假真表达式n假真语句3表达式3真假语句2表达式2真假语句1表达式1真假(b)23 3 3. .3 3.1 .1 if if 语句语句 例例: 输入一个学生成绩,当成绩90时,打印“Very Good”;当80成绩90时,打印“Good”; 当60成绩80时,打印“Pass”;当成绩60分,打印“Fail”算法思想:输入成绩,根据

12、作出不同判断,打印不同的结果算法重点:同一问题,可以采用不同结构,效率不一样24 25 例:例:编程输入公元年号,并判断是否是闰年编程输入公元年号,并判断是否是闰年l 闰年的闰年的2 2个条件:能被个条件:能被4 4整除,但不能被整除,但不能被100100整除整除; ;能被能被100100整除,又能被整除,又能被400400整除整除l 算法重点:关系表达式的应用算法重点:关系表达式的应用26 3 3. .3 3.1 .1 if if 语句语句 例:输入3个整数,将他们按从大到小的顺序输出。输入 a,b,cyacbcyabynbcnabcynacbcabacynbacnbCacba图 1 输入

13、a,b,cabynl=as=bl=bs=aclnycls csynl,s,cl,c,s图227 3 3. .3 3.1 .1 if if 语句语句28 3 3. .3 3.1 .1 if if 语句语句由上面的例子可以归纳如下由上面的例子可以归纳如下: : (1)(1)条件是条件是表达式表达式, , 它必须用以对括号括起来。表它必须用以对括号括起来。表达式的值达式的值“非非0 0”为真为真, ,“0 0”为假。为假。(2)(2)整个整个if 语句在程序中被看作是一条语句在程序中被看作是一条语句语句。(3)(3)if 语句中的各语句可以是一条简单语句语句中的各语句可以是一条简单语句, , 也可也

14、可以是由以是由 构成的一个复合语句。构成的一个复合语句。(4)(4)else总是和它上面的、离它最近的总是和它上面的、离它最近的if 语句语句(未曾未曾配对过配对过)配对。配对。“往上就近原则往上就近原则”(5)(5)格式格式3 3称为称为if 语句的嵌套格式语句的嵌套格式, , 用于解决多项用于解决多项分支问题分支问题29 3 3. .3 3. .2 2 条件运算符条件运算符 l 条件运算符是条件运算符是C+唯一的三目运算符。其格式为唯一的三目运算符。其格式为: : ? ? : : 3它的执行流程如下图所示:它的执行流程如下图所示:表达式表达式1表达式表达式2表达式表达式3if语句的下一条语

15、句语句的下一条语句图:条件表达式求值示意图图:条件表达式求值示意图30 3 3. .3 3. .2 2 条件运算符条件运算符说明说明: :l条件运算符的执行顺序是: 计算表达式1的值, 若为非0(真), 则计算表达式2, 其整个表达式的值是表达式2的值;若表达式1的值为0(假), 则计算表达式3, 其整个表达式的值是表达式3的值。l条件运算符的优先级比关系运算符和算术运算符低, 但比赋值运算符的优先级高.l结合方向是自右至左。 提问: x=0?4:0?3:5,则x为多少?x=(0?4:(0?3:5)x=0?4:5x=531 例:输入一个字母,若是大写,则转换为小写例:输入一个字母,若是大写,则

16、转换为小写32 3 3. .3 3. .2 2 条件运算符条件运算符例:编程找出例:编程找出3个个 数中最大者数中最大者33 3 3. .3 3. .3 3 switch switch 语句语句 l为提高程序的可读性为提高程序的可读性, , C+语言语言提供了另一个解决提供了另一个解决多项分支问题的语句多项分支问题的语句, , 即即switch语句。语句。l其一般格式为其一般格式为: : switch ( 表达式 ) case 常量表达式1:语句序列1;break; case 常量表达式2:语句序列2;break; . . case 常量表达式n:语句序列n;break; default: 语

17、句序列n+1; 34 3 3. .3 3. .3 3 switch switch 语句语句表达式语句1语句2语句n语句n+112ndefault图 Switch语句与break语句连用的执行流程示意图Switch语句的下一语句break;break;break;break;35 3 3. .3 3. .3 3 switch switch 语句语句说明说明: :(1)switch的表达式:整型或字符型,或枚举类型(2)每个case后的常量表达式只能是常量(3)每个case语句后的常量必须互不相同(4)case的次序不影响执行结果。(5)如果不在case的语句序列后面使用break语句,在执行完一

18、个case后面的语句后, 程序流程转到下一个case后的语句开始执行。36 3 3. .3 3. .3 3 switch switch 语句语句表达式语句1语句2语句n语句n+112ndefaultSwitch语句的下一语句图 没有break的Switch语句的执行流程示意图37 3 3. .3 3. .3 3 switch switch 语句语句lbreak 语句的格式为语句的格式为: :break;l作用是从作用是从switchswitch、forfor、whilewhile或或do-whiledo-while语句中语句中跳出来跳出来, , 终止这些语句的执行终止这些语句的执行, , 把控

19、制转到被中把控制转到被中断的循环语句或断的循环语句或switchswitch语句之后去执行。语句之后去执行。l单独使用单独使用breakbreak语句是没有意义的语句是没有意义的, , 一般地一般地, , 它都它都与循环语句或与循环语句或switchswitch语句连用。语句连用。38 3 3.3.5 .3.5 分支程序设计分支程序设计例例1 1:铁路规定的购票标准为:铁路规定的购票标准为: : 身高身高1 1米以下的儿童免票米以下的儿童免票, , 超过超过1 1米不足米不足1.41.4米的儿童购买办票米的儿童购买办票, , 超过超过1.41.4米的儿童购买全票。米的儿童购买全票。 编写一个购

20、票程序。编写一个购票程序。 算法思想:设三个变量分别为算法思想:设三个变量分别为: : 儿童的身高儿童的身高h, , 全程票价全程票价price, , 购票款为购票款为paying 39 3 3.3.5 .3.5 分支程序设计分支程序设计算法重点: switch(条件表达式)构建40 3 3. .3 3. .3 3 switch switch 语句语句l例:运输公司对客户计算运费。根据距离(例:运输公司对客户计算运费。根据距离(s s)给出一定折)给出一定折扣。折扣标准如下:扣。折扣标准如下:s250kms250km,没有折扣;,没有折扣;250s 500250s 500,2%2%折扣;折扣;

21、500s1000500s1000,5%5%折扣;折扣;1000s20001000s2000,8%8%折扣;折扣;2000s30002000s3000,10%10%折扣;折扣;3000s3000s,15%15%折扣。设每公里每折扣。设每公里每吨货物的基本运价为吨货物的基本运价为p(price)p(price),货物重,货物重w(weight)w(weight)吨,距离吨,距离s s,折扣率,折扣率d(discount)d(discount),则总运费,则总运费f(freight)f(freight)为:为:f = f = p p* *w w* *s s* *(1-d)(1-d)l算法分析算法分析

22、:折扣率的变化点均为:折扣率的变化点均为250250的倍数,用新变量的倍数,用新变量c c表示表示距离的范围距离的范围: :s250s250,c = 0c = 0;250s500250s500,c = 1c = 1 500s750 500s3000,则则c=12;否则否则:c=s/250;42 3 3.3.3.3 3 分支程序设计分支程序设计43 本讲重点提示l复合语句内定义的变量作用范围lIf 语句的3种形式l条件运算符lSwitch语句与Break语句l算法重点:数值分解问题SWITCH 的条件表达式的构建问题下讲内容下讲内容l循环结构程序设计循环结构程序设计l参考教材第参考教材第3章内容

23、章内容44 第4次实验练习1.本次作业共本次作业共3 3题,第题,第1 1、2 2题是必做题。第题是必做题。第3 3题题“犀利哥故事犀利哥故事6 6:励志成才励志成才”见下页,是选做题见下页,是选做题2.2.要求要求: :本次练习需提交实验报告。本次练习需提交实验报告。“实验报告实验报告”格式建议如格式建议如下下(1 1)实验目的)实验目的(2 2)实验环境)实验环境(3 3)实验内容(画出)实验内容(画出1 1、2 2题算法的题算法的NSNS图或流程图、程序代码图或流程图、程序代码和运行结果和运行结果(4 4)实验体会)实验体会3.3.提交时间和形式:第提交时间和形式:第7 7周周末之前交实

24、验报告。流程图可以周周末之前交实验报告。流程图可以手工画拍照或电脑画图软件;可提交电子版和纸张版手工画拍照或电脑画图软件;可提交电子版和纸张版4 4. .实验报告要求用实验报告要求用wordword或其他编辑软件编码,提交电子版。或其他编辑软件编码,提交电子版。5 5. .备注:主要是想通过此次实验报告撰写来熟悉备注:主要是想通过此次实验报告撰写来熟悉N NS S图或流程图或流程图的画法,以及实验报告编写格式图的画法,以及实验报告编写格式45 第4次实验必做练习第第1 1题:完成第题:完成第4 4讲中讲中“犀利哥的故事犀利哥的故事5 5:八卦疑云:八卦疑云”,编,编写程序,找出谁是八卦者?写程

25、序,找出谁是八卦者?(备注:可以采用顺序结构分支结构来完成;当然也(备注:可以采用顺序结构分支结构来完成;当然也可以提前熟悉循环结构来完成)可以提前熟悉循环结构来完成)第第2 2题:给出一个不多于题:给出一个不多于5 5位的正整数。要求:(位的正整数。要求:(1 1)求出)求出它是几位数;(它是几位数;(2 2)分别打印出每一位数字;()分别打印出每一位数字;(3 3)按)按照逆向打印各位数字。例如,原数为照逆向打印各位数字。例如,原数为321321应输出应输出123.123.(3 3)最少设计)最少设计1010个不同数据来测试运行结果个不同数据来测试运行结果46 第4次实验练习(选做)第第3题:犀利哥故事题:犀利哥故事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论