第四讲 选择结构
- 格式:pdf
- 大小:2.23 MB
- 文档页数:31
选择结构3种基本形式选择的三重奏咱这一辈子啊,就像走在岔路口,到处都是选择。
选择结构呢,有三种基本形式,就像咱生活里那些常见的事儿一样。
先说说顺序结构,这就好比早上起床穿衣服,得先穿上内衣再穿外衣,一步一步来,按部就班。
这是最直白、最简单的方式,就像一条直直的路,没有拐弯抹角。
接着是分支结构,这可有趣了。
就像我有次去商场买衣服,我兜里就只有一百块钱。
我看到一件漂亮的连衣裙,要八十块,可同时我又看到一件酷酷的T 恤只要五十块。
我心里就开始纠结啦,这就是分支结构。
如果我买了连衣裙,那我可能就没钱吃午饭了;要是买T 恤呢,我还能剩下点钱去买个小零食。
我在那两件衣服面前站了好久,心里像有两个小人在打架。
一个说:“买裙子吧,穿上你就是小仙女。
” 另一个说:“T 恤多实用啊,还能省点钱。
” 最后我一咬牙,还是选了T 恤,毕竟肚子饿的感觉可不好受啊。
再说说循环结构。
我减肥的时候就有这种体验。
我计划每天做五十个仰卧起坐,第一天,我鼓足了劲做完了,累得气喘吁吁。
第二天,想到还要做,心里有点犯怵,但还是坚持做了。
就这样,一天又一天,每天都重复做着仰卧起坐这个动作,这就是循环。
有时候真想放弃,可是看看镜子里的自己,又有了动力。
不断地重复这个过程,期待着有一天能穿上那些漂亮的小码衣服。
生活中的选择无处不在,这些选择结构就像隐藏在背后的小秘密,悄悄地影响着我们的每一个决定。
从每天早上吃什么,到未来要做什么工作,选择的形式一直在发挥作用。
就像我选择写这篇关于选择结构的文章一样,也是一种选择呢。
不管是顺序的按部就班,还是分支的纠结犹豫,亦或是循环的坚持重复,都是我们生活的一部分。
这就是选择结构在生活中的模样,实实在在又充满趣味。
选择结构教学设计选择结构是编程中一种重要的控制结构,它允许根据一个条件的结果来选择执行不同的代码块。
本教学设计旨在帮助学生理解选择结构的概念,并能够在编写程序时正确应用选择结构。
教学目标:1.理解选择结构的概念。
2.能够使用条件语句来编写选择结构。
3.能够解决实际问题时正确应用选择结构。
教学重点:1.选择结构的概念和使用条件语句。
2.如何根据问题需求正确地编写选择结构。
教学准备:1.计算机编程编课程教材和教学资料。
2.计算机编程软件和示例代码。
3.板书和笔。
教学过程:引入:1.通过提问和讨论来引起学生的兴趣,比如“在日常生活中,我们经常需要根据一些条件来做出不同的决策,你们能举一些例子吗?”2.引导学生思考,在编写程序时,我们也需要根据条件来执行不同的代码块,那么你们知道如何实现吗?讲解理论:3.介绍选择结构的概念和作用。
板书示例代码,比如:```if (条件)//执行代码块A} else//执行代码块B```4.解释条件语句的含义和用法。
板书示例代码,比如:```if (条件1)//执行代码块A} else if (条件2)//执行代码块B} else//执行代码块C```5.提供实际例子来帮助学生理解选择结构的应用。
比如,假设有一个促销活动,如果购买金额超过500元,可以打8折,否则不打折。
请编写一个计算应付金额的程序。
实践操作:6.给学生一些小练习来巩固所学知识。
比如,让学生编写一个程序,根据用户输入的成绩,判断是否及格并输出相应的结果。
拓展延伸:7.提供一些拓展延伸的问题来鼓励学生思考和扩展应用。
比如,让学生设计一个程序,根据用户输入的年龄判断是否可以购买酒类。
总结:8.对本节课的内容进行总结,并回顾重点知识点。
强调选择结构的重要性和应用场景。
评价:9.给学生一些习题和编程任务,让他们独立完成并提交作业。
可以设置一些测试用例来检查他们是否正确地应用了选择结构。
教学资源:1.计算机编程课程教材和教学资料。
第四讲结构化程序设计与面向对象程序设计在当今的计算机编程领域,结构化程序设计和面向对象程序设计是两种非常重要的编程方法。
它们各自有着独特的特点和优势,适用于不同的应用场景。
接下来,让我们一起深入了解这两种编程设计方法。
结构化程序设计诞生于 20 世纪 60 年代,它的出现是为了解决当时程序设计中存在的混乱和难以维护的问题。
结构化程序设计强调程序的清晰结构和逻辑流程,通过顺序、选择和循环这三种基本控制结构来构建程序。
顺序结构是最基本的,程序按照语句的先后顺序依次执行。
比如,我们先定义变量,然后进行计算,最后输出结果,这就是一个简单的顺序结构。
选择结构则用于根据不同的条件来决定程序的执行路径。
常见的有ifelse 语句和 switch 语句。
假设我们要判断一个数是奇数还是偶数,就可以使用 ifelse 语句,如果这个数除以 2 的余数为 0,就是偶数,否则就是奇数。
循环结构则允许我们重复执行一段代码,直到满足特定的条件。
比如 for 循环和 while 循环,当我们需要计算 1 到 100 的和时,就可以使用循环结构来实现。
结构化程序设计的优点是显而易见的。
它使得程序的逻辑更加清晰,易于理解和调试。
而且,由于程序的结构比较规范,代码的可读性和可维护性都得到了很大的提高。
然而,随着软件规模的不断扩大和复杂性的增加,结构化程序设计也逐渐暴露出一些局限性。
当程序变得非常复杂时,单纯依靠结构化程序设计可能会导致代码的重复度较高,模块之间的耦合度较大,不利于代码的复用和扩展。
为了解决这些问题,面向对象程序设计应运而生。
面向对象程序设计将数据和对数据的操作封装在一起,形成一个个对象。
对象具有自己的属性和方法,可以与其他对象进行交互。
在面向对象程序设计中,最重要的概念包括类、对象、封装、继承和多态。
类是对象的模板,它定义了对象所具有的属性和方法。
比如,我们可以定义一个“汽车”类,这个类包含了汽车的品牌、颜色、速度等属性,以及加速、刹车等方法。
第四讲选材要“精”有人曾打了一个形象的比喻,将文章的立意、结构和内容三者之间的关系形象地比喻为人的灵魂、骨架和肌肉。
一篇文章中,立意和结构再好,如果没有内容(即材料)去体现,也是水中月、镜中花。
一、撷取时代“浪花”,选材鲜活典型。
考生要及时捕捉到那些新生事物,敏锐地撷取时代的“浪花”,选择鲜活典型的素材。
考生也可根据对社会的观察,选取具有时代特点的人物事迹,选取人们关注的热点话题,选取不为人知的新鲜事物,选取引人深思的社会现象,使文章内容能牢牢吸引读者的眼球。
二、选取动人镜头,选材真实感人。
真实的人物、真实的故事、真实的情感,最能拨动读者感情的弦,引起读者的共鸣。
所以考生在写作时,要根据写作需要,认真选择那些能震撼人心的精彩瞬间、动人镜头和感人画面。
三、大胆转换视角,选材新颖别致。
“干花不如鲜花美。
”选材要与时俱进,具有时代气息。
由于考生生活阅历浅,不是每个考生都能捕捉到新的信息。
这时,可以大胆转换视角,弃故纳新。
有些内涵丰富的材料,即使不是新的,若能巧妙地转换视角,从新的角度来挖掘,必定出奇制胜,给人耳目一新的感觉。
四、避开人云亦云,选材独特创新。
要放弃那些“你有我有大家有”的材料,选择突出自己体验的材料,经过几轮精心地筛选,留下那些典型独特的材料,则能使文章在选材上“以一当十”,收到震撼读者的效果。
(2015,南京)巴勒斯坦诗人达维什说:“当你做早餐时想想别人/别忘了喂鸽子……”因为这世界有你,有我,也有他(它)。
请以“想想别人”为题,写一篇作文。
文体自选,不少于600字。
作文选材时可从以下几点入手:1.从关注底层人物,共享阳光的角度他们弯曲的背影,与周围的一切似乎隔有一层玻璃,格格不入。
也许他们是一群杂草,也许他们是艳丽花下的绿叶,他们的存在只是衬托他人的成就。
但他们这个群体,也是构成社会的一部分。
世界应该是公平的、无私的,我们生活在同一片天空下,共享一缕爱的阳光。
2.从关注流浪少年的角度可以运用第二人称,犹如和流浪少年对话,生动地再现孩子们四处漂泊、挨饿受冻的惨状,充分表达“我”对“别人”(这些孩子)的怜惜之情。
PROGRAM DESIGN IN C LANGUAGE第四讲选择结构Selection Structures4.1 关系运算Relational Calculation4.2 if选择结构if Selection Structure4.3 if-else选择结构if-else Selection Structure4.4 逻辑运算Logical Calculation4.5 多重选择结构Multiple-Selection Structure关系运算Relational Calculation关系运算(比较运算)•比较两个值,结果为“真”或“假”•举例:a>3•如果a=8,则结果为“真”•如果a=1,则结果为“假”用关系运算进行条件判断•关系表达式表示一个条件,根据其结果判断条件是否满足•举例:a>3•如果a=8,结果为“真”,即条件满足•如果a=1,结果为“假”,即条件不满足关系运算符Relational Operators运算符含义优先级结合性<小于6左结合<=小于或等于>大于>=大于或等于==等于7!=不等于Relational Expressions关系表达式(Relational Expressions)<表达式1> <关系运算符> <表达式2>•表达式1和表达式2可以是任何表达式•举例a>bm+n<=20c!=‘y’(x>z)==(y>z)Relational Expressions关系表达式的值是一个逻辑值:“真”或“假”•C语言没有逻辑类型,因此•用整数1 表示“真”•用整数0 表示“假”•即关系表达式的值是整数1 或0•举例•若a=1,b=2,c=3a>ba+b<=c(a>c)==(b>c)‘Y’!=‘y’0 1 1 1关系表达式的使用Use Of Relational Expressions问题:写出下面各条件的关系表达式•x为不小于-5 的整数•x为非零的数•x的平方大于m与n的和x>=-5x!=0x*x>(m+n)The if Selection Structure选择结构(Selection Structure)•用于在可选择的几个操作之间进行选择•伪代码语句举例If student’s grade is greater than or equal to 60Print “Passed”•如果条件为真(学生分数大于等于60)•那么就打印或显示“Passed”,然后程序按顺序执行下一条伪代码语句•如果条件为假•就忽略打印或显示操作,顺序执行下一条伪代码语句The if Selection Structure 选择结构是一个单入/单出结构TruePrint “Passed”grade >= 60Falseif Selection Structureif (grade>=60)printf(“Passed”);条件判断可以是任何表达式0(zero ):false非0(nonzero ):trueThe if-else Selection Structureif Selection Structure•只有在条件为真时,才会执行一个操作;否则就会跳过这个操作if-else Selection Structure•条件为真时所执行的操作与条件为假时所执行的操作不同•伪代码语句举例If student’s grade is greater than or equal to 60Print “Passed”ElsePrint “Failed”The if-else Selection Structure if-else Selection Structure•伪代码转换成C 代码Print “Passed”TruePrint “Failed”grade >= 60Falseif-else Selection Structureif (grade>=60)printf(“Passed”);elseprintf(“Failed”);条件运算符Conditional Operator条件运算符:? :•三目运算符•右结合条件表达式<expression-1>?<expression-2>:<expression-3>•举例printf(“%s”,(grade>=60)? “Passed”:“Failed”);(grade>=60)?printf(“Passed”):printf(“Failed”);嵌套选择结构Nested Selection Structure嵌套的if-else结构(Nested If-else Structure)•对多种情况进行测试•伪代码语句举例If 学生的分数大于等于90打印“A”elseIf 学生的分数大于等于80Print “B”elseIf 学生的分数大于等于70Print “C”elseIf 学生的分数大于等于60Print “D”elsePrint “E”嵌套的选择结构Nested Selection Structure嵌套的if-else结构(Nested if-else Structure)•伪代码转换成C语言if(grade>=90)printf(“A”);elseif(grade>=80)printf(“B”);elseif(grade>=80)printf(“C”);elseif(grade>=60)printf(“D”);elseprintf(“E”);if(grade>=90)printf(“A”);else if(grade>=80) printf(“B”);else if(grade>=80) printf(“C”);else if(grade>=60) printf(“D”);elseprintf(“E”);选择结构中的复合语句Compound Statement Nested In if/else选择结构的if或else体可以是复合语句if (grade>=60)printf(“Passed”);else {printf(“Failed\n”);printf(“You must take the course again!”);}复合语句可以放在程序中单一语句能够放置的任何位置关系运算的不足Shortage Of Relational Calculation 关系表达式只能表达一些简单的条件•grade>=60•total>1000•每个判断只是对一个条件进行测试•如果要对多个条件进行测试就要在独立的语句或嵌套的if 或if-else 结构中进行测试•例1:10>y>5•例2:x<-10或者x>0if (y>5)if (y<10)…;if (x<-10) …;if (x>0) …;逻辑运算Logical Calculation逻辑运算•通过逻辑运算符把简单的条件组合起来,能够形成更加复杂的条件•例1:10>y>5 的逻辑表达式(y>5)&&(y<10)•例2:x<-10或者x>0 的逻辑表达式(x<-10)||(x>0)逻辑运算符•!(逻辑非,logical NOT)•&&(逻辑与,logical AND)•||(逻辑或,logical OR)逻辑表达式Logical Expression逻辑表达式[<表达式1>] <逻辑运算符> <表达式2>•表达式1和表达式2可以是任何表达式•举例(x>5)||(x<-5)!(a<b)&&(m!=n)(a+b>c)&&(a+c>b)&&(b+c>a)逻辑表达式的值1:true0:false整数Logical Calculation 逻辑运算真值表a!a10 01a b a&&b111100010000a b a||b111101011000!&&||Logical Calculation 运算符运算优先级小结算术运算关系运算逻辑运算与、或赋值运算逻辑非从高到低逻辑表达式的使用Use Of Logical Expression将下面的条件用C语言的逻辑表达式表达•例1:1≤x≤10且x≠7x>=1&&x<=10&&x!=7•例2:y能被4整除,但不能被100整除(y%4==0)&&(y%100!=0)逻辑与和逻辑非具有短路能力•例1:gender==‘F’&&age>65•如果gender不等于’F’,整个表达式的值就是假,求值过程将停止•例2:average>=90||finalExam>=90•如果average大于等于90,整个表达式的值就是真,求值过程将停止LOGICAL CALCULATION例4-1:逻辑表达式的使用Use Of Logical Expression问题:任意输入一个字符,判断它是字母还是数字。
void main() {char c;c=getchar();if ((c>=‘A’&&c<=‘Z’)||(c>=‘a’&&c<=‘z’))printf(“%c is a letter.”, c);else if (c>=‘0’&&c<=‘9’)printf(“%c is a digit.”, c);elseprintf(“%c is neither a letter nor a digit.”, c);} /*CW04-01.C*/多重选择结构Multiple-Selection Structureswitch•在判断过程中,一个变量或表达式会分别针对其可能会取的每个整型常量值进行测试,并采取不同的动作switch(expression){ case<constant_expression_1>:action_1; [break;] case <constant_expression_2>:action_2; [break;]……case <constant_expression_n-1>:action_n-1; [break;][default:action_n; [break;]]}Multiple-Selection Structure问题•根据考试成绩的等级打印相应的分数段grade=getchar();switch(grade){ case ‘A’: printf(“85~100\n”);case ‘B’: printf(“70~84\n”);case ‘C’: printf(“60~69\n”);case ‘D’: printf(“<60\n”);default: printf(“error\n”); }若grade=‘A’85~10070~8460~69<60errorMultiple-Selection Structure (cont.)分析例4-2的结果•流程图print “60~69”print “70~84”print “85~100”print “<60”print “error”grade‘A’‘B’‘C’‘D’defaultMultiple-Selection Structure 改进例4-2•改进后的流程图print “60~69”print “70~84”print “85~100”print “<60”print “error”grade‘A’‘B’‘C’‘D’defaultMultiple-Selection Structure (cont.)switch 中的break 语句•改进后的代码switch(grade){ case ‘A’: printf(“85~100\n”); break;case ‘B’: printf(“70~84\n”); break;case ‘C’: printf(“60~69\n”); break;case ‘D’: printf(“<60\n”); break;default: printf(“error \n”);}若grade=‘A’85~100break 语句终止switch 语句的执行Multiple-Selection Structure 问题•任意输入两个数,和一个运算符,输出运算结果。